summaryrefslogtreecommitdiffstats
path: root/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/Ipv4Translator.java
diff options
context:
space:
mode:
authorMarek Gradzki <mgradzki@cisco.com>2017-11-20 15:27:44 +0100
committerMarek Gradzki <mgradzki@cisco.com>2017-11-20 17:12:59 +0100
commit868f11f4f4da49198b8102509fb0234578be25e8 (patch)
treebd77955fc9ad0e8268ce81390f28a5b4ed805c03 /vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/Ipv4Translator.java
parentc3524b9d3b8579f1aa79bf8c123299a94f4dcc18 (diff)
Refactor IP translators to use IetfInetUtil
Use efficient factory methods for ietf-inet-types DTOs where possible. Also cleans up some duplicated and unused code. Change-Id: I58f4163edba0dcd30e5e044cf701788446d86a0f Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Diffstat (limited to 'vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/Ipv4Translator.java')
-rw-r--r--vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/Ipv4Translator.java29
1 files changed, 3 insertions, 26 deletions
diff --git a/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/Ipv4Translator.java b/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/Ipv4Translator.java
index 69ef7f3ab..24f4ae9aa 100644
--- a/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/Ipv4Translator.java
+++ b/vpp-common/vpp-translate-utils/src/main/java/io/fd/hc2vpp/common/translate/util/Ipv4Translator.java
@@ -18,11 +18,9 @@ package io.fd.hc2vpp.common.translate.util;
import static com.google.common.base.Preconditions.checkNotNull;
-import com.google.common.net.InetAddresses;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
import java.util.Arrays;
import javax.annotation.Nonnull;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IetfInetUtil;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4AddressNoZone;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
@@ -57,20 +55,10 @@ public interface Ipv4Translator extends ByteDataTranslator {
*/
default byte extractPrefix(Ipv4Prefix data) {
checkNotNull(data, "Cannot extract from null");
-
return Byte.valueOf(data.getValue().substring(data.getValue().indexOf('/') + 1));
}
/**
- * Converts byte array to {@link Ipv4Prefix} with specified prefixLength
- */
- default Ipv4Prefix arrayToIpv4Prefix(final byte[] address, byte prefixLength) {
- Ipv4AddressNoZone addressPart = arrayToIpv4AddressNoZone(address);
-
- return new Ipv4Prefix(addressPart.getValue().concat("/").concat(String.valueOf(prefixLength)));
- }
-
- /**
* Parse byte array returned by VPP representing an Ipv4 address. Expects array in big endian
*
* @return Ipv4AddressNoZone containing string representation of IPv4 address constructed from submitted bytes. No
@@ -82,11 +70,7 @@ public interface Ipv4Translator extends ByteDataTranslator {
if (ip.length == 16) {
ip = Arrays.copyOfRange(ip, 0, 4);
}
- try {
- return new Ipv4AddressNoZone(InetAddresses.toAddrString(InetAddress.getByAddress(ip)));
- } catch (UnknownHostException e) {
- throw new IllegalArgumentException("Unable to parse ipv4", e);
- }
+ return new Ipv4AddressNoZone(IetfInetUtil.INSTANCE.ipv4AddressFor(ip));
}
/**
@@ -110,13 +94,6 @@ public interface Ipv4Translator extends ByteDataTranslator {
}
default Ipv4Prefix toIpv4Prefix(final byte[] address, final int prefix) {
- try {
- return new Ipv4Prefix(
- String.format("%s/%s", InetAddress.getByAddress(address).getHostAddress(),
- String.valueOf(prefix)));
- } catch (UnknownHostException e) {
- throw new IllegalArgumentException(
- "Cannot create prefix for address[" + Arrays.toString(address) + "],prefix[" + prefix + "]", e);
- }
+ return IetfInetUtil.INSTANCE.ipv4PrefixFor(address, prefix);
}
}