Do not use NotificationListener in LISP components
[lispflowmapping.git] / integrationtest / src / test / java / org / opendaylight / lispflowmapping / integrationtest / MappingServiceIntegrationTest.java
index b32cc66594095cf80b8bf10c75d5974881056671..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,9 @@ 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;
 import org.ops4j.pax.exam.junit.PaxExam;
@@ -162,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;
 
@@ -170,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
@@ -471,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;
@@ -502,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());
 
@@ -514,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());
 
@@ -551,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);
@@ -574,17 +572,26 @@ 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";
 
         final MapRequest mapRequest = new MapRequestBuilder().setSmrInvoked(false).setEidItem(Lists.newArrayList(
-                new EidItemBuilder().setEid(LispAddressUtil.asIpv4PrefixBinaryEid(prefix1, iid))
+                new EidItemBuilder()
+                        .setEidItemId(LispAddressStringifier
+                                .getString(LispAddressUtil.asIpv4PrefixBinaryEid(prefix1, iid)))
+                        .setEid(LispAddressUtil.asIpv4PrefixBinaryEid(prefix1, iid))
                         .build(),
-                new EidItemBuilder().setEid(LispAddressUtil.asIpv4PrefixBinaryEid(prefix2, iid))
+                new EidItemBuilder()
+                        .setEidItemId(LispAddressStringifier
+                                .getString(LispAddressUtil.asIpv4PrefixBinaryEid(prefix2, iid)))
+                        .setEid(LispAddressUtil.asIpv4PrefixBinaryEid(prefix2, iid))
                         .build(),
-                new EidItemBuilder().setEid(LispAddressUtil.asIpv4PrefixBinaryEid(prefix3, iid))
+                new EidItemBuilder()
+                        .setEidItemId(LispAddressStringifier
+                                .getString(LispAddressUtil.asIpv4PrefixBinaryEid(prefix3, iid)))
+                        .setEid(LispAddressUtil.asIpv4PrefixBinaryEid(prefix3, iid))
                         .build()))
                 .build();
         final MapReply mapReply = lms.handleMapRequest(mapRequest);
@@ -593,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());
@@ -623,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());
     }
@@ -1317,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));
@@ -1361,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;
@@ -1413,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();
     }
 
@@ -1691,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);
@@ -1835,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();
@@ -2265,18 +2272,21 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         etlr.setEid(registerEID);
         etlr.setRecordTtl(254);
         LocatorRecordBuilder record = new LocatorRecordBuilder();
+        record.setLocatorId("4.3.2.1");
         record.setRloc(LispAddressUtil.asIpv4Rloc("4.3.2.1"));
         record.setLocalLocator(false);
         record.setRlocProbed(false);
         record.setRouted(true);
-        record.setMulticastPriority((short) 0);
-        record.setMulticastWeight((short) 0);
-        record.setPriority((short) 0);
-        record.setWeight((short) 0);
+        record.setMulticastPriority(Uint8.valueOf(0));
+        record.setMulticastWeight(Uint8.valueOf(0));
+        record.setPriority(Uint8.valueOf(0));
+        record.setWeight(Uint8.valueOf(0));
         etlr.setLocatorRecord(new ArrayList<LocatorRecord>());
         etlr.getLocatorRecord().add(record.build());
         mapRegister.setMappingRecordItem(new ArrayList<MappingRecordItem>());
-        mapRegister.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(etlr.build()).build());
+        mapRegister.getMappingRecordItem().add(new MappingRecordItemBuilder()
+                .setMappingRecordItemId(LispAddressStringifier.getString(registerEID))
+                .setMappingRecord(etlr.build()).build());
         sendMapRegister(mapRegister.build());
         MapNotify mapNotify = receiveMapNotify();
         assertEquals(8, mapNotify.getNonce().longValue());
@@ -2291,17 +2301,22 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         mapRequest.setProbe(false);
         mapRequest.setSmr(false);
         mapRequest.setSmrInvoked(false);
-        mapRequest.getEidItem().add(new EidItemBuilder().setEid(matchedAddress).build());
+        mapRequest.getEidItem().add(new EidItemBuilder()
+                .setEidItemId(LispAddressStringifier.getString(matchedAddress))
+                .setEid(matchedAddress).build());
         mapRequest.setItrRloc(new ArrayList<ItrRloc>());
-        mapRequest.getItrRloc().add(
-                new ItrRlocBuilder().setRloc(LispAddressUtil.asIpv4Rloc(ourAddress)).build());
+        mapRequest.getItrRloc().add(new ItrRlocBuilder()
+                .setItrRlocId(ourAddress)
+                .setRloc(LispAddressUtil.asIpv4Rloc(ourAddress)).build());
         sendMapRequest(mapRequest.build());
         MapReply mapReply = receiveMapReply();
         assertEquals(4, mapReply.getNonce().longValue());
         assertEquals(record.getRloc(), mapReply.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord()
                 .get(0).getRloc());
         mapRequest.setEidItem(new ArrayList<EidItem>());
-        mapRequest.getEidItem().add(new EidItemBuilder().setEid(unMatchedAddress).build());
+        mapRequest.getEidItem().add(new EidItemBuilder()
+                .setEidItemId(LispAddressStringifier.getString(unMatchedAddress))
+                .setEid(unMatchedAddress).build());
         sendMapRequest(mapRequest.build());
         mapReply = receiveMapReply();
         assertEquals(0, mapReply.getMappingRecordItem().get(0).getMappingRecord().nonnullLocatorRecord().size());
@@ -2423,7 +2438,9 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
         MapRequestBuilder mapRequestBuilder = new MapRequestBuilder();
         mapRequestBuilder.setNonce((long) 4);
         mapRequestBuilder.setEidItem(new ArrayList<EidItem>());
-        mapRequestBuilder.getEidItem().add(new EidItemBuilder().setEid(eid).build());
+        mapRequestBuilder.getEidItem().add(new EidItemBuilder()
+                .setEidItemId(LispAddressStringifier.getString(eid))
+                .setEid(eid).build());
         mapRequestBuilder.setItrRloc(new ArrayList<ItrRloc>());
         if (srcEid != null) {
             mapRequestBuilder.setSourceEid(new SourceEidBuilder().setEid(LispAddressUtil.asIpv4Eid(srcEid)).build());
@@ -2432,7 +2449,9 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
                     .build());
         }
         mapRequestBuilder.getItrRloc().add(
-                new ItrRlocBuilder().setRloc(LispAddressUtil.asIpv4Rloc(ourAddress)).build());
+                new ItrRlocBuilder()
+                        .setItrRlocId(ourAddress)
+                        .setRloc(LispAddressUtil.asIpv4Rloc(ourAddress)).build());
         mapRequestBuilder.setAuthoritative(false);
         mapRequestBuilder.setMapDataPresent(false);
         mapRequestBuilder.setPitr(false);
@@ -2474,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());
@@ -2482,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();
@@ -2513,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();
@@ -2528,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);
     }
@@ -2551,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();
@@ -2571,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());
@@ -2587,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());
@@ -2606,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());
 
@@ -2638,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());
@@ -2672,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);
@@ -2689,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());
@@ -2699,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());
@@ -2775,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();
 
@@ -2864,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));
@@ -2877,36 +2893,22 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
 
     }
 
-    private class XtrRequestMappingListener implements OdlLispProtoListener {
-
-        @Override
-        public void onGotMapReply(GotMapReply notification) {
-        }
+    private class XtrRequestMappingListener implements Listener<XtrRequestMapping> {
+        private final String eid;
+        private final MapRequest mapRequest;
 
-        @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 {
@@ -2918,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) {