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();
     }
-
 }