Fix to properly encode several MASKED criterion into JSON.

Change-Id: I6a3b16c3382d60275de0fc0c61087e79038e5ebb
(cherry picked from commit e3c605e3cf137532af81f51f435cc5f2d81cedf5)
diff --git a/core/common/src/test/java/org/onosproject/codec/impl/CriterionJsonMatcher.java b/core/common/src/test/java/org/onosproject/codec/impl/CriterionJsonMatcher.java
index d1e1f19..9113124 100644
--- a/core/common/src/test/java/org/onosproject/codec/impl/CriterionJsonMatcher.java
+++ b/core/common/src/test/java/org/onosproject/codec/impl/CriterionJsonMatcher.java
@@ -138,7 +138,7 @@
             description.appendText("mac was " + jsonMac);
             return false;
         }
-        if (criterion.type() == Criterion.Type.ETH_DST_MASKED) {
+        if (criterion.type() == Criterion.Type.ETH_SRC_MASKED || criterion.type() == Criterion.Type.ETH_DST_MASKED) {
             final String macMask = criterion.mask().toString();
             final String jsonMacMask = jsonCriterion.get("macMask").textValue();
             if (!macMask.equals(jsonMacMask)) {
@@ -278,6 +278,15 @@
                     + Integer.toString(jsonTcpPort));
             return false;
         }
+        if (criterion.type() == Criterion.Type.TCP_SRC_MASKED || criterion.type() == Criterion.Type.TCP_DST_MASKED) {
+            final int tcpMask = criterion.mask().toInt();
+            final int jsonTcpMask = jsonCriterion.get("tcpMask").intValue();
+            if (tcpMask != jsonTcpMask) {
+                description.appendText("tcp mask was "
+                        + Integer.toString(jsonTcpMask));
+                return false;
+            }
+        }
         return true;
     }
 
@@ -295,6 +304,16 @@
                     + Integer.toString(jsonUdpPort));
             return false;
         }
+
+        if (criterion.type() == Criterion.Type.UDP_SRC_MASKED || criterion.type() == Criterion.Type.UDP_DST_MASKED) {
+            final int udpMask = criterion.mask().toInt();
+            final int jsonUdpMask = jsonCriterion.get("udpMask").intValue();
+            if (udpMask != jsonUdpMask) {
+                description.appendText("udp mask was "
+                        + Integer.toString(jsonUdpMask));
+                return false;
+            }
+        }
         return true;
     }
 
@@ -312,6 +331,15 @@
                     + Integer.toString(jsonSctpPort));
             return false;
         }
+        if (criterion.type() == Criterion.Type.SCTP_SRC_MASKED || criterion.type() == Criterion.Type.SCTP_DST_MASKED) {
+            final int sctpMask = criterion.mask().toInt();
+            final int jsonSctpMask = jsonCriterion.get("sctpMask").intValue();
+            if (sctpMask != jsonSctpMask) {
+                description.appendText("sctp mask was "
+                        + Integer.toString(jsonSctpMask));
+                return false;
+            }
+        }
         return true;
     }
 
@@ -676,6 +704,7 @@
             case ETH_DST:
             case ETH_DST_MASKED:
             case ETH_SRC:
+            case ETH_SRC_MASKED:
                 return matchCriterion((EthCriterion) criterion);
 
             case ETH_TYPE:
@@ -703,15 +732,21 @@
                 return matchCriterion((IPCriterion) criterion);
 
             case TCP_SRC:
+            case TCP_SRC_MASKED:
             case TCP_DST:
+            case TCP_DST_MASKED:
                 return matchCriterion((TcpPortCriterion) criterion);
 
             case UDP_SRC:
+            case UDP_SRC_MASKED:
             case UDP_DST:
+            case UDP_DST_MASKED:
                 return matchCriterion((UdpPortCriterion) criterion);
 
             case SCTP_SRC:
+            case SCTP_SRC_MASKED:
             case SCTP_DST:
+            case SCTP_DST_MASKED:
                 return matchCriterion((SctpPortCriterion) criterion);
 
             case ICMPV4_TYPE: