ONOS-6604 More criterion translators for PiFlowRuleTranslationService

Change-Id: I9399f75fe467971d6d012ddad47a72c58df02d69
This commit is contained in:
zhiyong ke 2017-07-12 11:41:38 +08:00 committed by Carmelo Cascone
parent 48f99fa704
commit 897fd2de22
2 changed files with 17 additions and 3 deletions

View File

@ -55,6 +55,8 @@ import org.onosproject.net.flow.criteria.VlanPcpCriterion;
import org.onosproject.net.flow.criteria.ArpHaCriterion;
import org.onosproject.net.flow.criteria.ArpOpCriterion;
import org.onosproject.net.flow.criteria.ArpPaCriterion;
import org.onosproject.net.flow.criteria.IPEcnCriterion;
import org.onosproject.net.flow.criteria.MetadataCriterion;
import org.onosproject.net.pi.impl.CriterionTranslators.EthCriterionTranslator;
import org.onosproject.net.pi.impl.CriterionTranslators.EthTypeCriterionTranslator;
@ -91,6 +93,8 @@ import org.onosproject.net.pi.impl.CriterionTranslators.VlanPcpCriterionTranslat
import org.onosproject.net.pi.impl.CriterionTranslators.ArpHaCriterionTranslator;
import org.onosproject.net.pi.impl.CriterionTranslators.ArpOpCriterionTranslator;
import org.onosproject.net.pi.impl.CriterionTranslators.ArpPaCriterionTranslator;
import org.onosproject.net.pi.impl.CriterionTranslators.IPEcnCriterionTranslator;
import org.onosproject.net.pi.impl.CriterionTranslators.MetadataCriterionTranslator;
import org.onosproject.net.pi.model.PiMatchType;
import org.onosproject.net.pi.runtime.PiExactFieldMatch;
@ -148,6 +152,8 @@ final class CriterionTranslatorHelper {
.put(ArpHaCriterion.class, new ArpHaCriterionTranslator())
.put(ArpOpCriterion.class, new ArpOpCriterionTranslator())
.put(ArpPaCriterion.class, new ArpPaCriterionTranslator())
.put(IPEcnCriterion.class, new IPEcnCriterionTranslator())
.put(MetadataCriterion.class, new MetadataCriterionTranslator())
.build();
private CriterionTranslatorHelper() {

View File

@ -54,6 +54,7 @@ import org.onosproject.net.flow.criteria.ArpOpCriterion;
import org.onosproject.net.flow.criteria.ArpPaCriterion;
import org.onosproject.net.flow.criteria.IPv6NDLinkLayerAddressCriterion;
import org.onosproject.net.flow.criteria.IPv6NDTargetAddressCriterion;
import org.onosproject.net.flow.criteria.IPEcnCriterion;
import static org.onlab.util.ImmutableByteSequence.ByteSequenceTrimException;
import static org.onlab.util.ImmutableByteSequence.copyFrom;
@ -487,7 +488,14 @@ final class CriterionTranslators {
}
}
/**
* Translator of IPEcnCriterion.
*/
static final class IPEcnCriterionTranslator extends AbstractCriterionTranslator {
@Override
public void init(Criterion criterion, int bitWidth) throws ByteSequenceTrimException {
IPEcnCriterion c = (IPEcnCriterion) criterion;
initAsExactMatch(copyFrom(c.ipEcn()), bitWidth);
}
}
}