Add IT for mapping change events
[lispflowmapping.git] / mappingservice / lisp-proto / src / main / java / org / opendaylight / lispflowmapping / lisp / util / MapRequestUtil.java
index b626aadd8638c9ce6b09e0e3fe3b1263b743dcb1..304de4bed995d49dd0ac0929ee970c6784e072a9 100644 (file)
@@ -8,13 +8,17 @@
 package org.opendaylight.lispflowmapping.lisp.util;
 
 import com.google.common.net.InetAddresses;
+
 import java.net.InetAddress;
+import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.Random;
 
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv6;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv4Binary;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv6Binary;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.MapRequest;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.maprequest.ItrRloc;
@@ -39,6 +43,22 @@ public final class MapRequestUtil {
         InetAddress selectedItrRloc = null;
         for (ItrRloc itr : request.getItrRloc()) {
             Address addr = itr.getRloc().getAddress();
+            if (addr instanceof Ipv4Binary) {
+                try {
+                    selectedItrRloc = InetAddress.getByAddress(((Ipv4Binary) addr).getIpv4Binary().getValue());
+                } catch (UnknownHostException e) {
+                    LOG.debug("Cannot convert Ipv6Binary to InetAddress", e);
+                }
+                break;
+            }
+            if (addr instanceof Ipv6Binary) {
+                try {
+                    selectedItrRloc = InetAddress.getByAddress(((Ipv6Binary) addr).getIpv6Binary().getValue());
+                } catch (UnknownHostException e) {
+                    LOG.debug("Cannot convert Ipv6Binary to InetAddress", e);
+                }
+                break;
+            }
             if (addr instanceof Ipv4) {
                 selectedItrRloc = InetAddresses.forString(((Ipv4) addr).getIpv4().getValue());
                 break;