Add MacAddress.isLinkLocal()
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/MacAddress.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/MacAddress.java
index aaa31eb..f7950c3 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/MacAddress.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/MacAddress.java
@@ -26,6 +26,9 @@
public static final MacAddress NO_MASK = MacAddress.of(0xFFFFFFFFFFFFFFFFl);
public static final MacAddress FULL_MASK = MacAddress.of(0x0);
+ private static final long LINK_LOCAL_MASK = 0xfffffffffff0L;
+ private static final long LINK_LOCAL_VALUE = 0x0180c2000000L;
+
private MacAddress(final long rawValue) {
this.rawValue = rawValue;
}
@@ -114,6 +117,14 @@
return (rawValue & (0x01L << 40)) != 0;
}
+ /**
+ * Returns {@code true} if the MAC address is a link local address.
+ * @return {@code true} if the MAC address is a link local address.
+ */
+ public boolean isLinkLocal() {
+ return (rawValue & LINK_LOCAL_MASK) == LINK_LOCAL_VALUE;
+ }
+
@Override
public int getLength() {
return MacAddrLen;
diff --git a/java_gen/pre-written/src/test/java/org/projectfloodlight/openflow/types/MacAddressTest.java b/java_gen/pre-written/src/test/java/org/projectfloodlight/openflow/types/MacAddressTest.java
index 3ccceb3..3e56c9f 100644
--- a/java_gen/pre-written/src/test/java/org/projectfloodlight/openflow/types/MacAddressTest.java
+++ b/java_gen/pre-written/src/test/java/org/projectfloodlight/openflow/types/MacAddressTest.java
@@ -140,4 +140,15 @@
assertFalse(MacAddress.of(0x05FFFFFFFFFFFFL).isMulticast());
assertFalse(MacAddress.of("FF:FF:FF:FF:FF:FF").isMulticast());
}
+
+ @Test
+ public void testIsLinkLocal() {
+ assertTrue(MacAddress.of("01:80:C2:00:00:00").isLinkLocal());
+ assertTrue(MacAddress.of("01:80:C2:00:00:0f").isLinkLocal());
+ assertFalse(MacAddress.of("01:80:C2:00:00:50").isLinkLocal());
+ assertFalse(MacAddress.of("01:80:C2:00:10:00").isLinkLocal());
+ assertFalse(MacAddress.of("01:80:C2:40:00:01").isLinkLocal());
+ assertFalse(MacAddress.of("00:80:C2:f0:00:00").isLinkLocal());
+ assertFalse(MacAddress.of("FE:80:C2:00:00:00").isLinkLocal());
+ }
}