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 f7950c3..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,8 +26,8 @@
     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 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;
@@ -118,11 +118,11 @@
     }
 
     /**
-     * Returns {@code true} if the MAC address is a link local address.
-     * @return {@code true} if the MAC address is a link local address.
+     * 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 isLinkLocal() {
-        return (rawValue & LINK_LOCAL_MASK) == LINK_LOCAL_VALUE;
+    public boolean isLLDPAddress() {
+        return (rawValue & LLDP_MAC_ADDRESS_MASK) == LLDP_MAC_ADDRESS_VALUE;
     }
 
     @Override
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 3e56c9f..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
@@ -142,13 +142,13 @@
     }
 
     @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());
+    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());
     }
 }
