add isMulticast in IPAddress
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPAddress.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPAddress.java
index e1f739d..ad21e06 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPAddress.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPAddress.java
@@ -40,6 +40,13 @@
*/
public abstract boolean isBroadcast();
+
+ /**
+ * Checks if the IPAddress is the multicast address
+ * @return boolean true or false
+ */
+ public abstract boolean isMulticast();
+
/**
* Perform a low level AND operation on the bits of two IPAddress objects
* @param other IPAddress
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv4Address.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv4Address.java
index 1530629..c9a1fec 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv4Address.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv4Address.java
@@ -90,6 +90,14 @@
return this.equals(NO_MASK);
}
+ /**
+ * IPv4 multicast addresses are defined by the leading address bits of 1110
+ */
+ @Override
+ public boolean isMulticast() {
+ return ((rawValue >>> 24) & 0xFF) == 0xE0;
+ }
+
@Override
public IPv4Address and(IPv4Address other) {
Preconditions.checkNotNull(other, "other must not be null");
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6Address.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6Address.java
index 4660fc5..a402908 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6Address.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6Address.java
@@ -115,6 +115,14 @@
return this.equals(NO_MASK);
}
+ /**
+ * IPv4 multicast addresses are defined by the prefix ff00::/8
+ */
+ @Override
+ public boolean isMulticast() {
+ return (raw1 >>> 56) == 0xFFL;
+ }
+
@Override
public IPv6Address and(IPv6Address other) {
Preconditions.checkNotNull(other, "other must not be null");
diff --git a/java_gen/pre-written/src/test/java/org/projectfloodlight/openflow/types/IPAddressTest.java b/java_gen/pre-written/src/test/java/org/projectfloodlight/openflow/types/IPAddressTest.java
index 2ba4528..c4d40ab 100644
--- a/java_gen/pre-written/src/test/java/org/projectfloodlight/openflow/types/IPAddressTest.java
+++ b/java_gen/pre-written/src/test/java/org/projectfloodlight/openflow/types/IPAddressTest.java
@@ -130,4 +130,15 @@
}
}
+ @Test
+ public void testMulticastIp() {
+ IPAddress<?> ip0 = IPAddress.of("1.2.3.4");
+ IPAddress<?> ip1 = IPAddress.of("224.0.0.0");
+ IPAddress<?> ip2 = IPAddress.of("feff::1");
+ IPAddress<?> ip3 = IPAddress.of("ff00::1");
+ assertTrue(!ip0.isMulticast());
+ assertTrue(ip1.isMulticast());
+ assertTrue(!ip2.isMulticast());
+ assertTrue(ip3.isMulticast());
+ }
}