Adding eth masking in match

Change-Id: I95e0ee66b1c6c139de7672f9bc04871fd0ead6d7
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 1fa4717..8ead323 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
@@ -615,12 +615,26 @@
                 builder.matchMetadata(metadata);
                 break;
             case ETH_DST:
-                mac = MacAddress.valueOf(match.get(MatchField.ETH_DST).getLong());
-                builder.matchEthDst(mac);
+                if (match.isPartiallyMasked(MatchField.ETH_DST)) {
+                    Masked<org.projectfloodlight.openflow.types.MacAddress> maskedMac =
+                            match.getMasked(MatchField.ETH_DST);
+                    builder.matchEthDstMasked(MacAddress.valueOf(maskedMac.getValue().getLong()),
+                                              MacAddress.valueOf(maskedMac.getMask().getLong()));
+                } else {
+                    mac = MacAddress.valueOf(match.get(MatchField.ETH_DST).getLong());
+                    builder.matchEthDst(mac);
+                }
                 break;
             case ETH_SRC:
-                mac = MacAddress.valueOf(match.get(MatchField.ETH_SRC).getLong());
-                builder.matchEthSrc(mac);
+                if (match.isPartiallyMasked(MatchField.ETH_SRC)) {
+                    Masked<org.projectfloodlight.openflow.types.MacAddress> maskedMac =
+                            match.getMasked(MatchField.ETH_SRC);
+                    builder.matchEthSrcMasked(MacAddress.valueOf(maskedMac.getValue().getLong()),
+                                              MacAddress.valueOf(maskedMac.getMask().getLong()));
+                } else {
+                    mac = MacAddress.valueOf(match.get(MatchField.ETH_SRC).getLong());
+                    builder.matchEthSrc(mac);
+                }
                 break;
             case ETH_TYPE:
                 int ethType = match.get(MatchField.ETH_TYPE).getValue();