Implement some of the missing Selector and Match Conditions
Work toward ONOS-509
The following match conditions are added/implemented:
- IPV6_EXTHDR
Also, fixed the match criteria for the optical signal type
to represent unsigned 8 bits integer (per spec).
Change-Id: I925db19cb43c5d9f589c1f090b6a75faabe0a19b
diff --git a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowEntryBuilder.java b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowEntryBuilder.java
index 95e37d0..04ff897 100644
--- a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowEntryBuilder.java
+++ b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowEntryBuilder.java
@@ -410,7 +410,6 @@
case IPV4_SRC:
if (match.isPartiallyMasked(MatchField.IPV4_SRC)) {
Masked<IPv4Address> maskedIp = match.getMasked(MatchField.IPV4_SRC);
-
ip4Prefix = Ip4Prefix.valueOf(
maskedIp.getValue().getInt(),
maskedIp.getMask().asCidrMaskLength());
@@ -419,13 +418,11 @@
match.get(MatchField.IPV4_SRC).getInt(),
Ip4Prefix.MAX_MASK_LENGTH);
}
-
builder.matchIPSrc(ip4Prefix);
break;
case IPV4_DST:
if (match.isPartiallyMasked(MatchField.IPV4_DST)) {
Masked<IPv4Address> maskedIp = match.getMasked(MatchField.IPV4_DST);
-
ip4Prefix = Ip4Prefix.valueOf(
maskedIp.getValue().getInt(),
maskedIp.getMask().asCidrMaskLength());
@@ -434,7 +431,6 @@
match.get(MatchField.IPV4_DST).getInt(),
Ip4Prefix.MAX_MASK_LENGTH);
}
-
builder.matchIPDst(ip4Prefix);
break;
case TCP_SRC:
@@ -519,6 +515,10 @@
builder.matchMplsLabel((int) match.get(MatchField.MPLS_LABEL)
.getValue());
break;
+ case IPV6_EXTHDR:
+ builder.matchIPv6ExthdrFlags((int) match.get(MatchField.IPV6_EXTHDR)
+ .getValue());
+ break;
case OCH_SIGID:
builder.matchLambda(match.get(MatchField.OCH_SIGID).getChannelNumber());
break;
@@ -539,5 +539,4 @@
}
return builder.build();
}
-
}