Implement some of the missing Selector and Match Conditions
Work toward ONOS-509
The following match conditions are added/implemented:
- IN_PHY_PORT
- IP_DSCP
- IP_ECN
- METADATA
Change-Id: I6f529ee90b2b9e0d5046f83c034e8be3faf86d8b
diff --git a/web/api/src/main/java/org/onosproject/codec/impl/CriterionCodec.java b/web/api/src/main/java/org/onosproject/codec/impl/CriterionCodec.java
index 9d714b0..3c6d4d7 100644
--- a/web/api/src/main/java/org/onosproject/codec/impl/CriterionCodec.java
+++ b/web/api/src/main/java/org/onosproject/codec/impl/CriterionCodec.java
@@ -43,10 +43,17 @@
switch (criterion.type()) {
case IN_PORT:
+ case IN_PHY_PORT:
final Criteria.PortCriterion portCriterion = (Criteria.PortCriterion) criterion;
result.put("port", portCriterion.port().toLong());
break;
+ case METADATA:
+ final Criteria.MetadataCriterion metadataCriterion =
+ (Criteria.MetadataCriterion) criterion;
+ result.put("metadata", metadataCriterion.metadata());
+ break;
+
case ETH_DST:
case ETH_SRC:
final Criteria.EthCriterion ethCriterion = (Criteria.EthCriterion) criterion;
@@ -71,6 +78,18 @@
result.put("priority", vlanPcpCriterion.priority());
break;
+ case IP_DSCP:
+ final Criteria.IPDscpCriterion ipDscpCriterion =
+ (Criteria.IPDscpCriterion) criterion;
+ result.put("ipDscp", ipDscpCriterion.ipDscp());
+ break;
+
+ case IP_ECN:
+ final Criteria.IPEcnCriterion ipEcnCriterion =
+ (Criteria.IPEcnCriterion) criterion;
+ result.put("ipEcn", ipEcnCriterion.ipEcn());
+ break;
+
case IP_PROTO:
final Criteria.IPProtocolCriterion iPProtocolCriterion =
(Criteria.IPProtocolCriterion) criterion;