From 98143cfc18f95eb4057587c1bdb4aa3b5e3b2e20 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 6 Jan 2020 18:41:24 +0100 Subject: [PATCH] Add IPv4 address bridges to primitive int Interfacing Ipv4Address(NoZone) with plain int is useful when we we want to interface with byte streams, such as DataInput or Netty's ByteBuf. This adds the methods to do so. JIRA: MDSAL-509 Change-Id: Icce95e4a94ae41be4fc2aee352f83655ea55e89f Signed-off-by: Robert Varga --- .../model/ietf/util/AbstractIetfInetUtil.java | 56 +++++++++++++++++++ .../ietf/util/AbstractIetfInetUtilTest.java | 26 ++++++++- 2 files changed, 81 insertions(+), 1 deletion(-) diff --git a/model/ietf/ietf-type-util/src/main/java/org/opendaylight/mdsal/model/ietf/util/AbstractIetfInetUtil.java b/model/ietf/ietf-type-util/src/main/java/org/opendaylight/mdsal/model/ietf/util/AbstractIetfInetUtil.java index a67cc8f13e..88da958305 100644 --- a/model/ietf/ietf-type-util/src/main/java/org/opendaylight/mdsal/model/ietf/util/AbstractIetfInetUtil.java +++ b/model/ietf/ietf-type-util/src/main/java/org/opendaylight/mdsal/model/ietf/util/AbstractIetfInetUtil.java @@ -250,6 +250,16 @@ public abstract class AbstractIetfInetUtil>> 24).append('.') + .append(bits >>> 16 & 0xFF).append('.') + .append(bits >>> 8 & 0xFF).append('.') + .append(bits & 0xFF) + .toString(); + } + static String addressStringV4(final byte @NonNull[] bytes) { final StringBuilder sb = new StringBuilder(15); appendIpv4String(sb, bytes); diff --git a/model/ietf/ietf-type-util/src/test/java/org/opendaylight/mdsal/model/ietf/util/AbstractIetfInetUtilTest.java b/model/ietf/ietf-type-util/src/test/java/org/opendaylight/mdsal/model/ietf/util/AbstractIetfInetUtilTest.java index ba19adc47f..dee4d2d45d 100644 --- a/model/ietf/ietf-type-util/src/test/java/org/opendaylight/mdsal/model/ietf/util/AbstractIetfInetUtilTest.java +++ b/model/ietf/ietf-type-util/src/test/java/org/opendaylight/mdsal/model/ietf/util/AbstractIetfInetUtilTest.java @@ -175,4 +175,28 @@ public class AbstractIetfInetUtilTest { }).when(ipClass).getValue(); UTIL.inet6AddressFor(ipClass); } -} \ No newline at end of file + + @Test + public void testIpv4AddressForBits() { + assertEquals("1.2.3.4", UTIL.ipv4AddressFor(0x01020304).getValue()); + assertEquals("255.255.255.255", UTIL.ipv4AddressFor(0xFFFFFFFF).getValue()); + } + + @Test + public void testIpv4AddressNoZoneForBits() { + assertEquals("1.2.3.4", UTIL.ipv4AddressNoZoneFor(0x01020304).getValue()); + assertEquals("255.255.255.255", UTIL.ipv4AddressNoZoneFor(0xFFFFFFFF).getValue()); + } + + @Test + public void testIpv4AddressBits() { + assertEquals(0x01020304, UTIL.ipv4AddressBits(new IpClass("1.2.3.4"))); + assertEquals(0xFFFFFFFF, UTIL.ipv4AddressBits(new IpClass("255.255.255.255"))); + } + + @Test + public void testIpv4AddressNoZoneBits() { + assertEquals(0x01020304, UTIL.ipv4AddressNoZoneBits(new IpClass("1.2.3.4"))); + assertEquals(0xFFFFFFFF, UTIL.ipv4AddressNoZoneBits(new IpClass("255.255.255.255"))); + } +} -- 2.36.6