Do not use NotificationListener in LISP components
[lispflowmapping.git] / integrationtest / src / test / java / org / opendaylight / lispflowmapping / integrationtest / MappingServiceIntegrationTest.java
index 6744053904e63e881101ed0562d5dd21ee13011a..72ea2154ec7aee22f60fd5383e31b1e903418b37 100644 (file)
@@ -33,6 +33,7 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.configure
 import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFilePut;
 import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.keepRuntimeFolder;
 
+import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 import java.io.File;
@@ -47,6 +48,7 @@ import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 import javax.inject.Inject;
@@ -71,6 +73,7 @@ import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil;
 import org.opendaylight.lispflowmapping.lisp.util.MappingRecordUtil;
 import org.opendaylight.lispflowmapping.lisp.util.MaskUtil;
 import org.opendaylight.lispflowmapping.type.sbplugin.IConfigLispSouthboundPlugin;
+import org.opendaylight.mdsal.binding.api.NotificationService.Listener;
 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.IpPrefix;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
@@ -104,18 +107,11 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.Ipv4AddressBinary;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.Ipv4PrefixBinaryAfi;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv4PrefixBinaryBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.AddMapping;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.GotMapNotify;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.GotMapReply;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.MapNotify;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.MapRegister;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.MapReply;
 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.MappingKeepAlive;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.MessageType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.OdlLispProtoListener;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.RequestMapping;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.XtrReplyMapping;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.XtrRequestMapping;
 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.eid.container.EidBuilder;
@@ -125,11 +121,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lo
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.locatorrecords.LocatorRecordBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.authkey.container.MappingAuthkey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.authkey.container.MappingAuthkeyBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.container.MappingRecord;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.container.MappingRecord.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.container.MappingRecordBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.list.MappingRecordItem;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.list.MappingRecordItemBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping._record.container.MappingRecord;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping._record.container.MappingRecord.Action;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping._record.container.MappingRecordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping._record.list.MappingRecordItem;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping._record.list.MappingRecordItemBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapregisternotification.MapRegisterBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.maprequest.ItrRloc;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.maprequest.ItrRlocBuilder;
@@ -138,6 +134,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.ma
 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.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.MappingOrigin;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint32;
 import org.opendaylight.yangtools.yang.common.Uint8;
 import org.ops4j.io.FileUtils;
 import org.ops4j.pax.exam.Option;
@@ -163,7 +161,6 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
     private byte[] mapRegisterPacketWithoutNotify;
     String lispBindAddress = "127.0.0.1";
     static final String ourAddress = "127.0.0.2";
-    private Rloc locatorEid;
     private DatagramSocket socket;
     private byte[] mapRegisterPacketWithAuthenticationAndMapNotify;
 
@@ -171,7 +168,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
     public static final String YANG = "org.opendaylight.yangtools";
     private static final int MULTI_SITE_SLEEP_TIME = 2;
     private static final int MAX_NOTIFICATION_RETRYS = 20;
-    private static final MappingAuthkey NULL_AUTH_KEY = new MappingAuthkeyBuilder().setKeyType(0).build();
+    private static final MappingAuthkey NULL_AUTH_KEY = new MappingAuthkeyBuilder().setKeyType(Uint16.ZERO).build();
 
     // This is temporary, since the properties in the pom file are not picked up
     @Override
@@ -472,7 +469,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         long timeout = ConfigIni.getInstance().getSmrTimeout();
         ConfigIni.getInstance().setSmrRetryCount(5);
 
-        final InstanceIdType iid = new InstanceIdType(1L);
+        final InstanceIdType iid = new InstanceIdType(Uint32.ONE);
         final Eid eid1 = LispAddressUtil.asIpv4Eid("1.1.1.1", 1L);
         final Eid subscriberEid = LispAddressUtil.asIpv4Eid("2.2.2.2", 1L);
         final int expectedSmrs1 = 2;
@@ -503,9 +500,9 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         final MapReply mapReply1 = lms.handleMapRequest(
                 new MapRequestBuilder(requests1.get(0))
                         .setSourceEid(new SourceEidBuilder().setEid(subscriberEid).build())
-                        .setItrRloc(Lists.newArrayList(new ItrRlocBuilder()
+                        .setItrRloc(List.of(new ItrRlocBuilder()
                                 .setRloc(LispAddressUtil.asIpv4Rloc(subscriberSrcRloc1)).build()))
-                        .setEidItem(Lists.newArrayList(new EidItemBuilder().setEid(eid1).build()))
+                        .setEidItem(List.of(new EidItemBuilder().setEid(eid1).build()))
                         .setSmrInvoked(true)
                         .setSmr(false).build());
 
@@ -515,9 +512,9 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         final MapReply mapReply2 = lms.handleMapRequest(
                 new MapRequestBuilder(requests2.get(0))
                         .setSourceEid(new SourceEidBuilder().setEid(subscriberEid).build())
-                        .setItrRloc(Lists.newArrayList(new ItrRlocBuilder()
+                        .setItrRloc(List.of(new ItrRlocBuilder()
                                 .setRloc(LispAddressUtil.asIpv4Rloc(subscriberSrcRloc2)).build()))
-                        .setEidItem(Lists.newArrayList(new EidItemBuilder().setEid(eid1).build()))
+                        .setEidItem(List.of(new EidItemBuilder().setEid(eid1).build()))
                         .setSmrInvoked(true)
                         .setSmr(false).build());
 
@@ -552,7 +549,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
             LOG.error("Unknown address {}.", address, e);
         }
 
-        final List<MapRequest> requests = Lists.newArrayList();
+        final List<MapRequest> requests = new ArrayList<>();
         byte[][] buffers = reader.getBuffers(expectedSmrs);
         for (byte[] buf : buffers) {
             ByteBuffer packet = ByteBuffer.wrap(buf);
@@ -575,7 +572,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
     }
 
     private void testMultipleMappings() throws UnknownHostException {
-        final InstanceIdType iid = new InstanceIdType(1L);
+        final InstanceIdType iid = new InstanceIdType(Uint32.ONE);
         final String prefix1 = "1.1.127.10/32"; // prefix from the intersection of NB and SB gaps
         final String prefix2 = "1.1.200.255/32"; // prefix with existing mapping in NB
         final String prefix3 = "1.3.255.255/32";
@@ -603,17 +600,17 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         final String resultPrefix1 = "1.1.64.0";
         final Address resultNegMapping1 = new Ipv4PrefixBinaryBuilder()
                 .setIpv4AddressBinary(new Ipv4AddressBinary(InetAddress.getByName(resultPrefix1).getAddress()))
-                .setIpv4MaskLength((short) 18).build();
+                .setIpv4MaskLength(Uint8.valueOf(18)).build();
 
         final String resultPrefix2 = "1.1.128.0";
         final Address resultMapping2 = new Ipv4PrefixBinaryBuilder()
                 .setIpv4AddressBinary(new Ipv4AddressBinary(InetAddress.getByName(resultPrefix2).getAddress()))
-                .setIpv4MaskLength((short) 17).build();
+                .setIpv4MaskLength(Uint8.valueOf(17)).build();
 
         final String resultPrefix3 = "1.3.0.0";
         final Address resultNegMapping3 = new Ipv4PrefixBinaryBuilder()
                 .setIpv4AddressBinary(new Ipv4AddressBinary(InetAddress.getByName(resultPrefix3).getAddress()))
-                .setIpv4MaskLength((short) 16).build();
+                .setIpv4MaskLength(Uint8.valueOf(16)).build();
 
         assertEquals(resultNegMapping1, mapReply.getMappingRecordItem().get(0).getMappingRecord().getEid()
                 .getAddress());
@@ -633,7 +630,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         // expected negative mapping
         final Address resultNegMapping = new Ipv4PrefixBinaryBuilder()
                 .setIpv4AddressBinary(new Ipv4AddressBinary(InetAddress.getByName("1.1.64.0").getAddress()))
-                .setIpv4MaskLength((short) 18).build();
+                .setIpv4MaskLength(Uint8.valueOf(18)).build();
         assertEquals(resultNegMapping, mapReply.getMappingRecordItem().get(0).getMappingRecord().getEid()
                 .getAddress());
     }
@@ -1327,7 +1324,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
 
     private void insertNBMappings(long iid, String ... prefixes) {
         LOG.debug("Adding Northbound mappings in VNI {} for prefixes: {}", iid, prefixes);
-        final InstanceIdType iiType = new InstanceIdType(iid);
+        final InstanceIdType iiType = new InstanceIdType(Uint32.valueOf(iid));
         for (String prefix : prefixes) {
             MappingRecord record = newMappingRecord(prefix, iiType);
             mapService.addMapping(MappingOrigin.Northbound, record.getEid(), null, new MappingData(record));
@@ -1371,14 +1368,14 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
     }
 
     private void allowNullAuthenticationForAllIPv4(long iid) {
-        final InstanceIdType iiType = new InstanceIdType(iid);
+        final InstanceIdType iiType = new InstanceIdType(Uint32.valueOf(iid));
         Eid allIPs = LispAddressUtil.asIpv4PrefixBinaryEid("0.0.0.0/0", iiType);
         mapService.addAuthenticationKey(allIPs, NULL_AUTH_KEY);
     }
 
     private void insertSBMappings(boolean negative, long iid, String... prefixes) {
         LOG.debug("Adding Southbound mappings in VNI {} for prefixes: {}", iid, prefixes);
-        final InstanceIdType iiType = new InstanceIdType(iid);
+        final InstanceIdType iiType = new InstanceIdType(Uint32.valueOf(iid));
 
         for (String prefix : prefixes) {
             MappingRecord record;
@@ -1423,7 +1420,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
     }
 
     private MapRequest newMapRequest(long iid, String prefix) {
-        final Eid prefixBinary = LispAddressUtil.asIpv4PrefixBinaryEid(prefix, new InstanceIdType(iid));
+        final Eid prefixBinary = LispAddressUtil.asIpv4PrefixBinaryEid(prefix, new InstanceIdType(Uint32.valueOf(iid)));
         return MappingServiceIntegrationTestUtil.getDefaultMapRequestBuilder(prefixBinary).build();
     }
 
@@ -1701,7 +1698,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
 
         assertTrue(true);
         Eid addressFromNetwork = reply.getMappingRecordItem().get(0).getMappingRecord().getEid();
-        assertEquals(MacAfi.class, addressFromNetwork.getAddressType());
+        assertEquals(MacAfi.VALUE, addressFromNetwork.getAddressType());
         String macAddressFromReply = ((Mac) addressFromNetwork.getAddress()).getMac().getValue();
 
         assertEquals(macAddress, macAddressFromReply);
@@ -1845,7 +1842,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         sendPacket(mapRegisterPacketWithoutNotify);
 
         MapRequest smr = receiveMapRequest();
-        assertTrue(smr.isSmr());
+        assertTrue(smr.getSmr());
         Eid sourceEid = smr.getSourceEid().getEid();
         assertTrue(LispAddressUtil.asIpv4Eid("153.16.254.1").equals(sourceEid));
         Eid smrEid = smr.getEidItem().get(0).getEid();
@@ -2496,7 +2493,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         builder.setDest(new SimpleAddress(new MacAddress(macString)));
 
         EidBuilder eb = new EidBuilder();
-        eb.setAddressType(SourceDestKeyLcaf.class);
+        eb.setAddressType(SourceDestKeyLcaf.VALUE);
         eb.setVirtualNetworkId(null);
         eb.setAddress(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105
                 .lisp.address.address.SourceDestKeyBuilder().setSourceDestKey(builder.build()).build());
@@ -2504,7 +2501,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         MapReply reply = registerAddressAndQuery(eb.build());
 
         Eid fromNetwork = reply.getMappingRecordItem().get(0).getMappingRecord().getEid();
-        assertEquals(SourceDestKeyLcaf.class, fromNetwork.getAddressType());
+        assertEquals(SourceDestKeyLcaf.VALUE, fromNetwork.getAddressType());
         SourceDestKey sourceDestFromNetwork = (SourceDestKey) fromNetwork.getAddress();
 
         SimpleAddress receivedAddr1 = sourceDestFromNetwork.getSourceDestKey().getSource();
@@ -2535,7 +2532,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         MapReply reply = queryForAddress(srcDst, null);
 
         Eid fromNetwork = reply.getMappingRecordItem().get(0).getMappingRecord().getEid();
-        assertEquals(SourceDestKeyLcaf.class, fromNetwork.getAddressType());
+        assertEquals(SourceDestKeyLcaf.VALUE, fromNetwork.getAddressType());
         SourceDestKey sourceDestFromNetwork = (SourceDestKey) fromNetwork.getAddress();
 
         IpPrefix receivedAddr1 = sourceDestFromNetwork.getSourceDestKey().getSource().getIpPrefix();
@@ -2550,14 +2547,14 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         // srcEid/dstEid match
         reply = queryForAddress(LispAddressUtil.asIpv4PrefixBinaryEid("20.20.20.1/32"), "10.10.10.1");
         fromNetwork = reply.getMappingRecordItem().get(0).getMappingRecord().getEid();
-        assertEquals(Ipv4PrefixBinaryAfi.class, fromNetwork.getAddressType());
+        assertEquals(Ipv4PrefixBinaryAfi.VALUE, fromNetwork.getAddressType());
 
         assertEquals(LispAddressUtil.asIpv4PrefixBinaryEid(ipPrefix2), fromNetwork);
 
         // dstEid match only
         reply = queryForAddress(LispAddressUtil.asIpv4PrefixBinaryEid("20.20.20.1/32"), "1.2.3.4");
         fromNetwork = reply.getMappingRecordItem().get(0).getMappingRecord().getEid();
-        assertEquals(Ipv4PrefixBinaryAfi.class, fromNetwork.getAddressType());
+        assertEquals(Ipv4PrefixBinaryAfi.VALUE, fromNetwork.getAddressType());
 
         assertEquals(LispAddressUtil.asIpv4PrefixBinaryEid(ipPrefix2), fromNetwork);
     }
@@ -2573,7 +2570,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         MapReply reply = registerAddressAndQuery(kv);
 
         Eid fromNetwork = reply.getMappingRecordItem().get(0).getMappingRecord().getEid();
-        assertEquals(KeyValueAddressLcaf.class, fromNetwork.getAddressType());
+        assertEquals(KeyValueAddressLcaf.VALUE, fromNetwork.getAddressType());
         KeyValueAddress keyValueFromNetwork = (KeyValueAddress) fromNetwork.getAddress();
 
         SimpleAddress receivedAddr1 = keyValueFromNetwork.getKeyValueAddress().getKey();
@@ -2593,14 +2590,13 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         cleanUP();
         String macString = "01:02:03:04:05:06";
         String ipString = "10.20.255.30";
-        List<SimpleAddress> addresses = new ArrayList<SimpleAddress>();
-        addresses.add(new SimpleAddress(new IpAddress(new Ipv4Address(ipString))));
-        addresses.add(new SimpleAddress(new MacAddress(macString)));
         AfiListBuilder listbuilder = new AfiListBuilder();
-        listbuilder.setAddressList(addresses);
+        listbuilder.setAddressList(ImmutableSet.of(
+                new SimpleAddress(new IpAddress(new Ipv4Address(ipString))),
+                new SimpleAddress(new MacAddress(macString))));
 
         EidBuilder eb = new EidBuilder();
-        eb.setAddressType(AfiListLcaf.class);
+        eb.setAddressType(AfiListLcaf.VALUE);
         eb.setVirtualNetworkId(null);
         eb.setAddress(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105
                 .lisp.address.address.AfiListBuilder().setAfiList(listbuilder.build()).build());
@@ -2609,11 +2605,12 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
 
         Eid receivedAddress = reply.getMappingRecordItem().get(0).getMappingRecord().getEid();
 
-        assertEquals(AfiListLcaf.class, receivedAddress.getAddressType());
+        assertEquals(AfiListLcaf.VALUE, receivedAddress.getAddressType());
 
         AfiList listAddrFromNetwork = (AfiList) receivedAddress.getAddress();
-        SimpleAddress receivedAddr1 = (SimpleAddress) listAddrFromNetwork.getAfiList().getAddressList().get(0);
-        SimpleAddress receivedAddr2 = (SimpleAddress) listAddrFromNetwork.getAfiList().getAddressList().get(1);
+        Iterator<SimpleAddress> addrList = listAddrFromNetwork.getAfiList().getAddressList().iterator();
+        SimpleAddress receivedAddr1 = addrList.next();
+        SimpleAddress receivedAddr2 = addrList.next();
 
         assertNotNull(receivedAddr1.getIpAddress().getIpv4Address());
         assertNotNull(receivedAddr2.getMacAddress());
@@ -2628,15 +2625,15 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         int instanceId = 6;
 
         EidBuilder eb = new EidBuilder();
-        eb.setAddressType(Ipv4PrefixAfi.class);
-        eb.setVirtualNetworkId(new InstanceIdType((long) instanceId));
+        eb.setAddressType(Ipv4PrefixAfi.VALUE);
+        eb.setVirtualNetworkId(new InstanceIdType(Uint32.valueOf(instanceId)));
         eb.setAddress(new Ipv4PrefixBuilder().setIpv4Prefix(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns
                 .yang.ietf.inet.types.rev130715.Ipv4Prefix(ipString)).build());
 
         MapReply reply = registerAddressAndQuery(eb.build());
 
         Eid receivedAddress = reply.getMappingRecordItem().get(0).getMappingRecord().getEid();
-        assertEquals(Ipv4PrefixAfi.class, receivedAddress.getAddressType());
+        assertEquals(Ipv4PrefixAfi.VALUE, receivedAddress.getAddressType());
 
         assertEquals(ipString, ((Ipv4Prefix) receivedAddress.getAddress()).getIpv4Prefix().getValue());
 
@@ -2660,29 +2657,29 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         elpBuilder.getHop().add(hop2);
 
         EidBuilder eb = new EidBuilder();
-        eb.setAddressType(ExplicitLocatorPathLcaf.class);
+        eb.setAddressType(ExplicitLocatorPathLcaf.VALUE);
         eb.setVirtualNetworkId(null);
         eb.setAddress(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105
                 .lisp.address.address.ExplicitLocatorPathBuilder().setExplicitLocatorPath(elpBuilder.build()).build());
 
         MapReply reply = registerAddressAndQuery(eb.build());
 
-        assertEquals(ExplicitLocatorPathLcaf.class, reply.getMappingRecordItem().get(0).getMappingRecord().getEid()
+        assertEquals(ExplicitLocatorPathLcaf.VALUE, reply.getMappingRecordItem().get(0).getMappingRecord().getEid()
                 .getAddressType());
 
         ExplicitLocatorPath receivedAddress = (ExplicitLocatorPath) reply.getMappingRecordItem().get(0)
                 .getMappingRecord().getEid().getAddress();
 
-        Hop receivedHop1 = (Hop) receivedAddress.getExplicitLocatorPath().getHop().get(0);
-        Hop receivedHop2 = (Hop) receivedAddress.getExplicitLocatorPath().getHop().get(1);
+        Hop receivedHop1 = receivedAddress.getExplicitLocatorPath().getHop().get(0);
+        Hop receivedHop2 = receivedAddress.getExplicitLocatorPath().getHop().get(1);
 
-        assertEquals(true, receivedHop1.getLrsBits().isLookup());
-        assertEquals(false, receivedHop1.getLrsBits().isRlocProbe());
-        assertEquals(true, receivedHop1.getLrsBits().isStrict());
+        assertEquals(true, receivedHop1.getLrsBits().getLookup());
+        assertEquals(false, receivedHop1.getLrsBits().getRlocProbe());
+        assertEquals(true, receivedHop1.getLrsBits().getStrict());
 
-        assertEquals(false, receivedHop2.getLrsBits().isLookup());
-        assertEquals(true, receivedHop2.getLrsBits().isRlocProbe());
-        assertEquals(false, receivedHop2.getLrsBits().isStrict());
+        assertEquals(false, receivedHop2.getLrsBits().getLookup());
+        assertEquals(true, receivedHop2.getLrsBits().getRlocProbe());
+        assertEquals(false, receivedHop2.getLrsBits().getStrict());
 
         assertNotNull(receivedHop1.getAddress().getIpAddress().getIpv4Address());
         assertNotNull(receivedHop2.getAddress().getMacAddress());
@@ -2694,12 +2691,12 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
     public void registerAndQuery__ApplicationData() throws SocketTimeoutException {
         cleanUP();
         String ipString = "1.2.3.4";
-        short protocol = 1;
+        final Uint8 protocol = Uint8.ONE;
         int ipTOs = 2;
-        int localPortLow = 3;
-        int localPortHigh = 4;
-        int remotePortLow = 4;
-        int remotePortHigh = 5;
+        final Uint16 localPortLow = Uint16.valueOf(3);
+        final Uint16 localPortHigh = Uint16.valueOf(4);
+        final Uint16 remotePortLow = Uint16.valueOf(4);
+        final Uint16 remotePortHigh = Uint16.valueOf(5);
 
         ApplicationDataBuilder builder = new ApplicationDataBuilder();
         builder.setIpTos(ipTOs);
@@ -2711,7 +2708,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         builder.setAddress(new SimpleAddress(new IpAddress(new Ipv4Address(ipString))));
 
         EidBuilder eb = new EidBuilder();
-        eb.setAddressType(ApplicationDataLcaf.class);
+        eb.setAddressType(ApplicationDataLcaf.VALUE);
         eb.setVirtualNetworkId(null);
         eb.setAddress(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105
                 .lisp.address.address.ApplicationDataBuilder().setApplicationData(builder.build()).build());
@@ -2721,19 +2718,16 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
 
         Eid receivedAddress = reply.getMappingRecordItem().get(0).getMappingRecord().getEid();
 
-        assertEquals(ApplicationDataLcaf.class, receivedAddress.getAddressType());
+        assertEquals(ApplicationDataLcaf.VALUE, receivedAddress.getAddressType());
 
         ApplicationData receivedApplicationDataAddress = (ApplicationData) receivedAddress.getAddress();
-        assertEquals(protocol, receivedApplicationDataAddress.getApplicationData().getProtocol().intValue());
+        assertEquals(protocol, receivedApplicationDataAddress.getApplicationData().getProtocol());
         assertEquals(ipTOs, receivedApplicationDataAddress.getApplicationData().getIpTos().intValue());
-        assertEquals(localPortLow, receivedApplicationDataAddress.getApplicationData().getLocalPortLow().getValue()
-                .intValue());
-        assertEquals(localPortHigh, receivedApplicationDataAddress.getApplicationData().getLocalPortHigh().getValue()
-                .intValue());
-        assertEquals(remotePortLow, receivedApplicationDataAddress.getApplicationData().getRemotePortLow().getValue()
-                .intValue());
-        assertEquals(remotePortHigh, receivedApplicationDataAddress.getApplicationData().getRemotePortHigh().getValue()
-                .intValue());
+        assertEquals(localPortLow, receivedApplicationDataAddress.getApplicationData().getLocalPortLow().getValue());
+        assertEquals(localPortHigh, receivedApplicationDataAddress.getApplicationData().getLocalPortHigh().getValue());
+        assertEquals(remotePortLow, receivedApplicationDataAddress.getApplicationData().getRemotePortLow().getValue());
+        assertEquals(remotePortHigh,
+                receivedApplicationDataAddress.getApplicationData().getRemotePortHigh().getValue());
 
         SimpleAddress ipAddressReceived = receivedApplicationDataAddress.getApplicationData().getAddress();
         assertEquals(ipString, ipAddressReceived.getIpAddress().getIpv4Address().getValue());
@@ -2797,7 +2791,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         // mapping expires after 1 second
         ConfigIni.getInstance().setRegistrationValiditySb(1000L);
 
-        final Eid eid = LispAddressUtil.asIpv4PrefixBinaryEid("1.2.3.4/32", new InstanceIdType(10L));
+        final Eid eid = LispAddressUtil.asIpv4PrefixBinaryEid("1.2.3.4/32", new InstanceIdType(Uint32.TEN));
         final MappingRecord mappingRecord = MappingServiceIntegrationTestUtil.getDefaultMappingRecordBuilder(eid)
                 .setRecordTtl(1000).build();
 
@@ -2886,12 +2880,12 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         int port = 4350;
 
         RlocBuilder rb = new RlocBuilder();
-        rb.setAddressType(ApplicationDataLcaf.class);
+        rb.setAddressType(ApplicationDataLcaf.VALUE);
         rb.setVirtualNetworkId(null);
         rb.setAddress(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105
                 .lisp.address.address.ApplicationDataBuilder()
                 .setApplicationData(new ApplicationDataBuilder().setAddress(new SimpleAddress(new IpAddress(
-                new Ipv4Address(rloc)))).setLocalPortLow(new PortNumber(port)).build()).build());
+                new Ipv4Address(rloc)))).setLocalPortLow(new PortNumber(Uint16.valueOf(port))).build()).build());
         Rloc adLcaf = rb.build();
 
         LOG.info("testNonProxyOtherPort:" + LispAddressStringifier.getString(adLcaf));
@@ -2899,36 +2893,22 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
 
     }
 
-    private class XtrRequestMappingListener implements OdlLispProtoListener {
+    private class XtrRequestMappingListener implements Listener<XtrRequestMapping> {
+        private final String eid;
+        private final MapRequest mapRequest;
 
-        @Override
-        public void onGotMapReply(GotMapReply notification) {
-        }
-
-        @Override
-        public void onAddMapping(AddMapping notification) {
-        }
-
-        @Override
-        public void onXtrReplyMapping(XtrReplyMapping notification) {
-        }
-
-        @Override
-        public void onRequestMapping(RequestMapping notification) {
+        private XtrRequestMappingListener(String eid, MapRequest mapRequest) {
+            this.eid = eid;
+            this.mapRequest = mapRequest;
         }
 
         @Override
-        public void onGotMapNotify(GotMapNotify notification) {
+        public void onNotification(XtrRequestMapping notification) {
+            assertEquals(((Ipv4Prefix) mapRequest.getEidItem().get(0).getEid().getAddress())
+                .getIpv4Prefix().getValue(), eid);
+            notificationCalled = true;
+            LOG.warn("notification arrived");
         }
-
-        @Override
-        public void onXtrRequestMapping(XtrRequestMapping notification) {
-        }
-
-        @Override
-        public void onMappingKeepAlive(MappingKeepAlive notification) {
-        }
-
     }
 
     public void testRecievingNonProxyOnXtrPort() throws SocketTimeoutException, SocketException, Throwable {
@@ -2940,26 +2920,19 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         int port = LispMessage.XTR_PORT_NUM;
 
         RlocBuilder rb = new RlocBuilder();
-        rb.setAddressType(ApplicationDataLcaf.class);
+        rb.setAddressType(ApplicationDataLcaf.VALUE);
         rb.setVirtualNetworkId(null);
         rb.setAddress(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105
                 .lisp.address.address.ApplicationDataBuilder()
                 .setApplicationData(new ApplicationDataBuilder().setAddress(new SimpleAddress(new IpAddress(
-                new Ipv4Address(rloc)))).setLocalPortLow(new PortNumber(port)).build()).build());
+                new Ipv4Address(rloc)))).setLocalPortLow(new PortNumber(Uint16.valueOf(port))).build()).build());
         Rloc adLcaf = rb.build();
 
         final MapRequest mapRequest = createNonProxyMapRequest(eid, adLcaf);
-        ((LispMappingService) lms).getNotificationService().registerNotificationListener(
-                new XtrRequestMappingListener() {
-
-            @Override
-            public void onXtrRequestMapping(XtrRequestMapping notification) {
-                assertEquals(((Ipv4Prefix) mapRequest.getEidItem().get(0).getEid().getAddress())
-                        .getIpv4Prefix().getValue(), eid);
-                notificationCalled = true;
-                LOG.warn("notification arrived");
-            }
-        });
+        final var handler = new XtrRequestMappingListener(eid, mapRequest);
+
+        ((LispMappingService) lms).getNotificationService().registerListener(XtrRequestMapping.class, handler);
+
         sendMapRequest(mapRequest, port);
         for (int i = 0; i < MAX_NOTIFICATION_RETRYS; i++) {
             if (notificationCalled) {