[AETHER-38] Moves T3 utils to ONOS utils

Change-Id: I8eebc7934df2018507742b187bb64ee9b425fca7
diff --git a/utils/misc/src/main/java/org/onlab/packet/MacAddress.java b/utils/misc/src/main/java/org/onlab/packet/MacAddress.java
index db74bf0..2a89a55 100644
--- a/utils/misc/src/main/java/org/onlab/packet/MacAddress.java
+++ b/utils/misc/src/main/java/org/onlab/packet/MacAddress.java
@@ -284,4 +284,35 @@
         Matcher matcher = MAC_PATTERN.matcher(mac);
         return matcher.matches();
     }
+
+    /**
+     * Checks if the Mac Address is inside a range defined by macAddr and mask.
+     *
+     * @param macAddr the mac address
+     * @param maskAddr the mask
+     * @return true if in range, false otherwise.
+     */
+    public boolean inRange(MacAddress macAddr, MacAddress maskAddr) {
+        byte[] min = macAddr.toBytes();
+        byte[] mask = maskAddr.toBytes();
+        boolean inRange = true;
+
+        int i = 0;
+
+        //if mask is 00 stop
+        while (inRange && i < mask.length && (mask[i] & 0xFF) != 0) {
+            int ibmac = this.address[i] & 0xFF;
+            int ibmin = min[i] & 0xFF;
+            int ibmask = mask[i] & 0xFF;
+            if (ibmask == 255) {
+                inRange = ibmac == ibmin;
+            } else if (ibmac < ibmin || ibmac >= ibmask) {
+                inRange = false;
+                break;
+            }
+            i++;
+        }
+
+        return inRange;
+    }
 }