Bump upstreams
[lispflowmapping.git] / mappingservice / lisp-proto / src / main / java / org / opendaylight / lispflowmapping / lisp / serializer / address / Ipv4Serializer.java
index ba09ebaeb33cfa4ee20fd3623cecb54dcbb28d38..4ac25f82748e1bfbf57c57fb68b6b5c761ee7da7 100644 (file)
@@ -8,13 +8,12 @@
 package org.opendaylight.lispflowmapping.lisp.serializer.address;
 
 import java.net.Inet4Address;
-import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.nio.ByteBuffer;
-
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.afn.safi.rev130704.AddressFamily;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
+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.IpAddress;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv4Afi;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.LispAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.SimpleAddress;
@@ -24,12 +23,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.ei
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.EidBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.rloc.container.Rloc;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.rloc.container.RlocBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
- * @author Lorand Jakab
+ * Class to (de)serialize IPv4 addresses from/to String representation.
  *
+ * @author Lorand Jakab
  */
-public class Ipv4Serializer extends LispAddressSerializer {
+public final class Ipv4Serializer extends LispAddressSerializer {
+
+    protected static final Logger LOG = LoggerFactory.getLogger(Ipv4Serializer.class);
 
     private static final Ipv4Serializer INSTANCE = new Ipv4Serializer();
 
@@ -62,6 +66,7 @@ public class Ipv4Serializer extends LispAddressSerializer {
         try {
             buffer.put(Inet4Address.getByName(address.getIpv4().getValue()).getAddress());
         } catch (UnknownHostException e) {
+            LOG.debug("Unknown host {}", address.getIpv4().getValue(), e);
         }
     }
 
@@ -70,13 +75,14 @@ public class Ipv4Serializer extends LispAddressSerializer {
         try {
             buffer.put(Inet4Address.getByName(address.getIpAddress().getIpv4Address().getValue()).getAddress());
         } catch (UnknownHostException e) {
+            LOG.debug("Unknown host {}", address.getIpAddress().getIpv4Address().getValue(), e);
         }
     }
 
     @Override
     protected Eid deserializeEidData(ByteBuffer buffer, LispAddressSerializerContext ctx) {
         EidBuilder eb = new EidBuilder();
-        eb.setAddressType(Ipv4Afi.class);
+        eb.setAddressType(Ipv4Afi.VALUE);
         eb.setVirtualNetworkId(getVni(ctx));
         eb.setAddress(new Ipv4Builder().setIpv4(deserializeData(buffer)).build());
         return eb.build();
@@ -85,7 +91,7 @@ public class Ipv4Serializer extends LispAddressSerializer {
     @Override
     protected Rloc deserializeRlocData(ByteBuffer buffer) {
         RlocBuilder rb = new RlocBuilder();
-        rb.setAddressType(Ipv4Afi.class);
+        rb.setAddressType(Ipv4Afi.VALUE);
         rb.setVirtualNetworkId(null);
         rb.setAddress(new Ipv4Builder().setIpv4(deserializeData(buffer)).build());
         return rb.build();
@@ -96,19 +102,13 @@ public class Ipv4Serializer extends LispAddressSerializer {
         return new SimpleAddress(new IpAddress(deserializeData(buffer)));
     }
 
-    private Ipv4Address deserializeData(ByteBuffer buffer) {
+    private static Ipv4Address deserializeData(ByteBuffer buffer) {
         byte[] ipBuffer = new byte[4];
-        InetAddress address = null;
         buffer.get(ipBuffer);
-        try {
-            address = InetAddress.getByAddress(ipBuffer);
-        } catch (UnknownHostException e) {
-        }
-        return new Ipv4Address(address.getHostAddress());
+        return IetfInetUtil.ipv4AddressFor(ipBuffer);
     }
 
     protected interface Length {
         int IPV4 = 4;
     }
-
 }