Merge into master from pull request #196:
Add MacAddress.isLinkLocal() (https://github.com/floodlight/loxigen/pull/196)
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..27d5b66 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 LLDP_MAC_ADDRESS_MASK = 0xfffffffffff0L;
+ private static final long LLDP_MAC_ADDRESS_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 an LLDP mac address.
+ * @return {@code true} if the MAC address is an LLDP mac address.
+ */
+ public boolean isLLDPAddress() {
+ return (rawValue & LLDP_MAC_ADDRESS_MASK) == LLDP_MAC_ADDRESS_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..a13fdd4 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 testIsLLDPAddress() {
+ assertTrue(MacAddress.of("01:80:C2:00:00:00").isLLDPAddress());
+ assertTrue(MacAddress.of("01:80:C2:00:00:0f").isLLDPAddress());
+ assertFalse(MacAddress.of("01:80:C2:00:00:50").isLLDPAddress());
+ assertFalse(MacAddress.of("01:80:C2:00:10:00").isLLDPAddress());
+ assertFalse(MacAddress.of("01:80:C2:40:00:01").isLLDPAddress());
+ assertFalse(MacAddress.of("00:80:C2:f0:00:00").isLLDPAddress());
+ assertFalse(MacAddress.of("FE:80:C2:00:00:00").isLLDPAddress());
+ }
}