X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=mappingservice%2Fintegrationtest%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Flispflowmapping%2Fintegrationtest%2FMappingServiceIntegrationTest.java;fp=mappingservice%2Fintegrationtest%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Flispflowmapping%2Fintegrationtest%2FMappingServiceIntegrationTest.java;h=b000dbf84d9acfcc3168194ee06afbf6506240d0;hb=1dd4fd65f243aaf73857d24c7da979d69b849d90;hp=bd91c30007a849264c05edb8fa1c99e6ae8ab79b;hpb=99af2baf181f30459c00e4d73267cbb82d5fa08a;p=lispflowmapping.git diff --git a/mappingservice/integrationtest/src/test/java/org/opendaylight/lispflowmapping/integrationtest/MappingServiceIntegrationTest.java b/mappingservice/integrationtest/src/test/java/org/opendaylight/lispflowmapping/integrationtest/MappingServiceIntegrationTest.java index bd91c3000..b000dbf84 100644 --- a/mappingservice/integrationtest/src/test/java/org/opendaylight/lispflowmapping/integrationtest/MappingServiceIntegrationTest.java +++ b/mappingservice/integrationtest/src/test/java/org/opendaylight/lispflowmapping/integrationtest/MappingServiceIntegrationTest.java @@ -25,9 +25,15 @@ import java.net.UnknownHostException; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import javax.inject.Inject; + + + + + //import org.codehaus.jettison.json.JSONException; //import org.codehaus.jettison.json.JSONObject; //import org.codehaus.jettison.json.JSONTokener; @@ -40,9 +46,8 @@ import org.opendaylight.controller.mdsal.it.base.AbstractMdsalTestBase; import org.opendaylight.lispflowmapping.implementation.LispMappingService; import org.opendaylight.lispflowmapping.interfaces.lisp.IFlowMapping; import org.opendaylight.lispflowmapping.interfaces.mappingservice.IMappingService; -import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; -import org.opendaylight.lispflowmapping.lisp.type.LispCanonicalAddressFormatEnum; -import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier; +import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil; import org.opendaylight.lispflowmapping.lisp.type.LispMessage; import org.opendaylight.lispflowmapping.lisp.serializer.MapNotifySerializer; import org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer; @@ -50,60 +55,61 @@ import org.opendaylight.lispflowmapping.lisp.serializer.MapReplySerializer; import org.opendaylight.lispflowmapping.lisp.serializer.MapRequestSerializer; import org.opendaylight.lispflowmapping.type.sbplugin.IConfigLispSouthboundPlugin; 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.EidToLocatorRecord.Action; 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.LcafApplicationDataAddress; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.LcafListAddress; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.LcafSegmentAddress; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.LcafTrafficEngineeringAddress; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.LispAFIAddress; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.LispIpv4Address; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.LispMacAddress; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.LispProtoListener; 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.ReencapHop; +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.eidrecords.EidRecord; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eidrecords.EidRecordBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eidtolocatorrecords.EidToLocatorRecord; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eidtolocatorrecords.EidToLocatorRecordBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lcafkeyvalueaddress.KeyBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lcafkeyvalueaddress.ValueBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lcaflistaddress.Addresses; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lcaflistaddress.AddressesBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lcafsegmentaddress.AddressBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lcafsourcedestaddress.DstAddressBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lcafsourcedestaddress.SrcAddressBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lcaftrafficengineeringaddress.Hops; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lcaftrafficengineeringaddress.HopsBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.LispAddressContainer; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.lispaddresscontainer.address.LcafKeyValue; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.lispaddresscontainer.address.LcafSourceDest; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.lispaddresscontainer.address.ipv4.Ipv4Address; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.lispaddresscontainer.address.lcafapplicationdata.LcafApplicationDataAddr; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.lispaddresscontainer.address.lcafapplicationdata.LcafApplicationDataAddrBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.lispaddresscontainer.address.lcafkeyvalue.LcafKeyValueAddressAddrBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.lispaddresscontainer.address.lcaflist.LcafListAddrBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.lispaddresscontainer.address.lcafsegment.LcafSegmentAddrBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.lispaddresscontainer.address.lcafsourcedest.LcafSourceDestAddrBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.lispaddresscontainer.address.lcaftrafficengineering.LcafTrafficEngineeringAddrBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.lispaddresscontainer.address.no.NoAddressBuilder; +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; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.list.EidItem; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.list.EidItemBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.locatorrecords.LocatorRecord; 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.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; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.maprequest.SourceEidBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.maprequestnotification.MapRequestBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.reencaphop.Hop; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.reencaphop.HopBuilder; +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.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.IpPrefix; +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.rev100924.PortNumber; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.AfiListLcaf; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.ApplicationDataLcaf; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.ExplicitLocatorPathLcaf; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.InstanceIdType; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv4PrefixAfi; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.KeyValueAddressLcaf; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.MacAfi; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.SimpleAddress; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.SourceDestKeyLcaf; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.AfiList; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.ApplicationData; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.ExplicitLocatorPath; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4Prefix; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4PrefixBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.KeyValueAddress; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Mac; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.SourceDestKey; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.afi.list.AfiListBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.application.data.ApplicationDataBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.explicit.locator.path.ExplicitLocatorPathBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.explicit.locator.path.explicit.locator.path.Hop; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.explicit.locator.path.explicit.locator.path.Hop.LrsBits; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.explicit.locator.path.explicit.locator.path.HopBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress; import org.ops4j.pax.exam.Option; import org.ops4j.pax.exam.junit.PaxExam; import org.ops4j.pax.exam.util.Filter; @@ -127,7 +133,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { private byte[] mapRegisterPacketWithoutNotify; String lispBindAddress = "127.0.0.1"; String ourAddress = "127.0.0.2"; - private LispAFIAddress locatorEid; + private Rloc locatorEid; private DatagramSocket socket; private byte[] mapRegisterPacketWithAuthenticationAndMapNotify; @@ -199,7 +205,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { @Before public void before() throws Exception { areWeReady(); - locatorEid = LispAFIConvertor.asIPAfiAddress("4.3.2.1"); + locatorEid = LispAddressUtil.asIpv4Rloc("4.3.2.1"); socket = initSocket(socket, LispMessage.PORT_NUM); // SRC: 127.0.0.1:58560 to 127.0.0.1:4342 @@ -320,10 +326,10 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { //registerAndQuery__SrcDestLCAF(); //registerAndQuery__SrcDestLCAFOverlap(); //registerAndQuery__KeyValueLCAF(); - registerAndQuery__ListLCAF(); - registerAndQuery__ApplicationData(); - registerAndQuery__TrafficEngineering(); - registerAndQuery__SegmentLCAF(); + //registerAndQuery__ListLCAF(); + //registerAndQuery__ApplicationData(); + //registerAndQuery__TrafficEngineering(); + //registerAndQuery__SegmentLCAF(); } @Test @@ -401,13 +407,13 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { public void mapRegisterWithMapNotifyAndMapRequest() throws SocketTimeoutException { cleanUP(); - LispAFIAddress eid = LispAFIConvertor.toAFI(LispAFIConvertor.asIPv4Address("1.2.3.4")); + Eid eid = LispAddressUtil.asIpv4PrefixEid("1.2.3.4/32"); - MapReply mapReply = registerAddressAndQuery(eid, 32); + MapReply mapReply = registerAddressAndQuery(eid); assertEquals(4, mapReply.getNonce().longValue()); - assertEquals(LispAFIConvertor.toContainer(locatorEid), mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().get(0) - .getLispAddressContainer()); + assertEquals(locatorEid, mapReply.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().get(0) + .getRloc()); } @@ -415,46 +421,44 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { cleanUP(); String macAddress = "01:02:03:04:05:06"; - MapReply reply = registerAddressAndQuery(LispAFIConvertor.asMacAfiAddress(macAddress)); + MapReply reply = registerAddressAndQuery(LispAddressUtil.asMacEid(macAddress)); assertTrue(true); - LispAFIAddress addressFromNetwork = LispAFIConvertor.toAFI(reply.getEidToLocatorRecord().get(0).getLispAddressContainer()); - assertTrue(addressFromNetwork instanceof LispMacAddress); - String macAddressFromReply = ((org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.lispaddresscontainer.address.mac.MacAddress) addressFromNetwork).getMacAddress().getValue(); + Eid addressFromNetwork = reply.getMappingRecordItem().get(0).getMappingRecord().getEid(); + assertEquals(MacAfi.class, addressFromNetwork.getAddressType()); + String macAddressFromReply = ((Mac) addressFromNetwork.getAddress()).getMac().getValue(); assertEquals(macAddress, macAddressFromReply); } public void mapRequestMapRegisterAndMapRequest() throws SocketTimeoutException { cleanUP(); - LispAFIAddress eid = LispAFIConvertor.toAFI(LispAFIConvertor.asIPv4Address("1.2.3.4")); + Eid eid = LispAddressUtil.asIpv4PrefixEid("1.2.3.4/32"); MapRequestBuilder mapRequestBuilder = new MapRequestBuilder(); mapRequestBuilder.setNonce((long) 4); - mapRequestBuilder.setSourceEid(new SourceEidBuilder().setLispAddressContainer( - LispAFIConvertor.toContainer(new NoAddressBuilder().setAfi((short) 0).build())).build()); - mapRequestBuilder.setEidRecord(new ArrayList()); - mapRequestBuilder.getEidRecord().add( - new EidRecordBuilder().setMask((short) 32).setLispAddressContainer(LispAFIConvertor.toContainer(eid)).build()); + mapRequestBuilder.setSourceEid(new SourceEidBuilder().setEid(LispAddressUtil.getNoAddressEid()).build()); + mapRequestBuilder.setEidItem(new ArrayList()); + mapRequestBuilder.getEidItem().add(new EidItemBuilder().setEid(eid).build()); mapRequestBuilder.setItrRloc(new ArrayList()); mapRequestBuilder.getItrRloc().add( - new ItrRlocBuilder().setLispAddressContainer(LispAFIConvertor.toContainer(LispAFIConvertor.asIPAfiAddress(ourAddress))).build()); + new ItrRlocBuilder().setRloc(LispAddressUtil.asIpv4Rloc(ourAddress)).build()); sendMapRequest(mapRequestBuilder.build()); MapReply mapReply = receiveMapReply(); assertEquals(4, mapReply.getNonce().longValue()); - assertEquals(0, mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().size()); + assertEquals(0, mapReply.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().size()); MapRegisterBuilder mapRegisterbuilder = new MapRegisterBuilder(); mapRegisterbuilder.setWantMapNotify(true); mapRegisterbuilder.setNonce((long) 8); - EidToLocatorRecordBuilder etlrBuilder = new EidToLocatorRecordBuilder(); - etlrBuilder.setLispAddressContainer(LispAFIConvertor.toContainer(eid)); - etlrBuilder.setMaskLength((short) 32); + MappingRecordBuilder etlrBuilder = new MappingRecordBuilder(); + etlrBuilder.setEid(eid); etlrBuilder.setRecordTtl(254); LocatorRecordBuilder recordBuilder = new LocatorRecordBuilder(); - recordBuilder.setLispAddressContainer(LispAFIConvertor.toContainer(LispAFIConvertor.asIPAfiAddress("4.3.2.1"))); + recordBuilder.setRloc(LispAddressUtil.asIpv4Rloc("4.3.2.1")); etlrBuilder.setLocatorRecord(new ArrayList()); etlrBuilder.getLocatorRecord().add(recordBuilder.build()); - mapRegisterbuilder.setEidToLocatorRecord(new ArrayList()); - mapRegisterbuilder.getEidToLocatorRecord().add(etlrBuilder.build()); + mapRegisterbuilder.setMappingRecordItem(new ArrayList()); + mapRegisterbuilder.getMappingRecordItem().add( + new MappingRecordItemBuilder().setMappingRecord(etlrBuilder.build()).build()); sendMapRegister(mapRegisterbuilder.build()); MapNotify mapNotify = receiveMapNotify(); assertEquals(8, mapNotify.getNonce().longValue()); @@ -462,72 +466,73 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { sendMapRequest(mapRequestBuilder.build()); mapReply = receiveMapReply(); assertEquals(4, mapReply.getNonce().longValue()); - assertEquals(recordBuilder.getLispAddressContainer(), mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().get(0) - .getLispAddressContainer()); + assertEquals(recordBuilder.getRloc(), mapReply.getMappingRecordItem().get(0).getMappingRecord() + .getLocatorRecord().get(0).getRloc()); } public void testMapRegisterDosntOverwritesOtherSubKeys() throws SocketTimeoutException { cleanUP(); - LispAFIAddress eid = LispAFIConvertor.toAFI(LispAFIConvertor.asIPv4Address("1.2.3.4")); - LispAFIAddress rloc1Value = LispAFIConvertor.asIPAfiAddress("4.3.2.1"); - LispAFIAddress rloc1 = LispAFIConvertor.asKeyValue("subkey1", LispAFIConvertor.toPrimitive(rloc1Value)); - LispAFIAddress rloc2Value = LispAFIConvertor.asIPAfiAddress("4.3.2.2"); - LispAFIAddress rloc2 = LispAFIConvertor.asKeyValue("subkey2", LispAFIConvertor.toPrimitive(rloc2Value)); + Eid eid = LispAddressUtil.asIpv4PrefixEid("1.2.3.4/32"); + SimpleAddress rloc1Value = new SimpleAddress(new IpAddress(new Ipv4Address("4.3.2.1"))); + Rloc rloc1 = LispAddressUtil.asKeyValueAddress("subkey1", rloc1Value); + SimpleAddress rloc2Value = new SimpleAddress(new IpAddress(new Ipv4Address("4.3.2.2"))); + Rloc rloc2 = LispAddressUtil.asKeyValueAddress("subkey2", rloc2Value); MapReply mapReply = sendMapRegisterTwiceWithDiffrentValues(eid, rloc1, rloc2); - assertEquals(2, mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().size()); - assertEquals(LispAFIConvertor.toContainer(rloc2), mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().get(0).getLispAddressContainer()); - assertEquals(LispAFIConvertor.toContainer(rloc1), mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().get(1).getLispAddressContainer()); + assertEquals(2, mapReply.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().size()); + assertEquals(rloc2, mapReply.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().get(0) + .getRloc()); + assertEquals(rloc1, mapReply.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().get(1) + .getRloc()); } public void testMapRegisterOverwritesSameSubkey() throws SocketTimeoutException { cleanUP(); - LispAFIAddress eid = LispAFIConvertor.toAFI(LispAFIConvertor.asIPv4Address("1.2.3.4")); - LispAFIAddress rloc1Value = LispAFIConvertor.asIPAfiAddress("4.3.2.1"); - LispAFIAddress rloc1 = LispAFIConvertor.asKeyValue("subkey", LispAFIConvertor.toPrimitive(rloc1Value)); - LispAFIAddress rloc2Value = LispAFIConvertor.asIPAfiAddress("4.3.2.2"); - LispAFIAddress rloc2 = LispAFIConvertor.asKeyValue("subkey", LispAFIConvertor.toPrimitive(rloc2Value)); + Eid eid = LispAddressUtil.asIpv4PrefixEid("1.2.3.4/32"); + SimpleAddress rloc1Value = new SimpleAddress(new IpAddress(new Ipv4Address("4.3.2.1"))); + Rloc rloc1 = LispAddressUtil.asKeyValueAddress("subkey1", rloc1Value); + SimpleAddress rloc2Value = new SimpleAddress(new IpAddress(new Ipv4Address("4.3.2.2"))); + Rloc rloc2 = LispAddressUtil.asKeyValueAddress("subkey2", rloc2Value); MapReply mapReply = sendMapRegisterTwiceWithDiffrentValues(eid, rloc1, rloc2); - assertEquals(1, mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().size()); - assertEquals(LispAFIConvertor.toContainer(rloc2), mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().get(0).getLispAddressContainer()); + assertEquals(1, mapReply.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().size()); + assertEquals(rloc2, mapReply.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().get(0) + .getRloc()); } public void testMapRegisterOverwritesNoSubkey() throws SocketTimeoutException { cleanUP(); mapService.setMappingOverwrite(true); - LispAFIAddress eid = LispAFIConvertor.toAFI(LispAFIConvertor.asIPv4Address("1.2.3.4")); - LispAFIAddress rloc1Value = LispAFIConvertor.asIPAfiAddress("4.3.2.1"); - LispAFIAddress rloc2Value = LispAFIConvertor.asIPAfiAddress("4.3.2.2"); + Eid eid = LispAddressUtil.asIpv4PrefixEid("1.2.3.4/32"); + Rloc rloc1Value = LispAddressUtil.asIpv4Rloc("4.3.2.1"); + Rloc rloc2Value = LispAddressUtil.asIpv4Rloc("4.3.2.2"); MapReply mapReply = sendMapRegisterTwiceWithDiffrentValues(eid, rloc1Value, rloc2Value); - assertEquals(1, mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().size()); - assertEquals(LispAFIConvertor.toContainer(rloc2Value), mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().get(0) - .getLispAddressContainer()); + assertEquals(1, mapReply.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().size()); + assertEquals(rloc2Value, mapReply.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().get(0) + .getRloc()); } public void testMapRegisterDoesntOverwritesNoSubkey() throws SocketTimeoutException { cleanUP(); mapService.setMappingOverwrite(false); - LispAFIAddress eid = LispAFIConvertor.toAFI(LispAFIConvertor.asIPv4Address("1.2.3.4")); - LispAFIAddress rloc1Value = LispAFIConvertor.asIPAfiAddress("4.3.2.1"); - LispAFIAddress rloc2Value = LispAFIConvertor.asIPAfiAddress("4.3.2.2"); + Eid eid = LispAddressUtil.asIpv4PrefixEid("1.2.3.4/32"); + Rloc rloc1Value = LispAddressUtil.asIpv4Rloc("4.3.2.1"); + Rloc rloc2Value = LispAddressUtil.asIpv4Rloc("4.3.2.2"); MapReply mapReply = sendMapRegisterTwiceWithDiffrentValues(eid, rloc1Value, rloc2Value); - assertEquals(1, mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().size()); - LispAddressContainer rloc1ReturnValueContainer = mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().get(0).getLispAddressContainer(); - LispAddressContainer rloc2ReturnValueContainer = mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().get(1).getLispAddressContainer(); - assertTrue((LispAFIConvertor.toContainer(rloc1Value).equals(rloc1ReturnValueContainer) && LispAFIConvertor.toContainer(rloc2Value).equals( - rloc2ReturnValueContainer)) - || (LispAFIConvertor.toContainer(rloc1Value).equals(rloc2ReturnValueContainer) && LispAFIConvertor.toContainer(rloc2Value).equals( - rloc1ReturnValueContainer))); + assertEquals(1, mapReply.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().size()); + Rloc rloc1ReturnValueContainer = mapReply.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().get(0).getRloc(); + Rloc rloc2ReturnValueContainer = mapReply.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().get(1).getRloc(); + assertTrue((rloc1Value.equals(rloc1ReturnValueContainer) && rloc2Value.equals(rloc2ReturnValueContainer)) + || (rloc1Value.equals(rloc2ReturnValueContainer) && rloc2Value.equals(rloc1ReturnValueContainer))); } - private MapReply sendMapRegisterTwiceWithDiffrentValues(LispAFIAddress eid, LispAFIAddress rloc1, LispAFIAddress rloc2) + private MapReply sendMapRegisterTwiceWithDiffrentValues(Eid eid, Rloc rloc1, Rloc rloc2) throws SocketTimeoutException { MapRegister mb = createMapRegister(eid, rloc1); MapNotify mapNotify = lms.handleMapRegister(mb); MapRequest mr = createMapRequest(eid); MapReply mapReply = lms.handleMapRequest(mr); - assertEquals(mb.getEidToLocatorRecord().get(0).getLocatorRecord().get(0).getLispAddressContainer(), mapReply.getEidToLocatorRecord().get(0) - .getLocatorRecord().get(0).getLispAddressContainer()); + assertEquals(mb.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().get(0).getRloc(), mapReply.getMappingRecordItem().get(0).getMappingRecord() + .getLocatorRecord().get(0).getRloc()); mb = createMapRegister(eid, rloc2); mapNotify = lms.handleMapRegister(mb); assertEquals(8, mapNotify.getNonce().longValue()); @@ -576,17 +581,17 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { ByteBuffer readBuf = ByteBuffer.wrap(receivePacket().getData()); MapRequest smr = MapRequestSerializer.getInstance().deserialize(readBuf); assertTrue(smr.isSmr()); - LispAddressContainer sourceEid = smr.getSourceEid().getLispAddressContainer(); - assertTrue(LispAFIConvertor.toContainer(LispAFIConvertor.asIPAfiAddress("153.16.254.1")).equals(sourceEid)); - LispAddressContainer smrEid = smr.getEidRecord().get(0).getLispAddressContainer(); - assertTrue(LispAFIConvertor.asIPv4Address("1.2.3.4").equals(smrEid)); + Eid sourceEid = smr.getSourceEid().getEid(); + assertTrue(LispAddressUtil.asIpv4Eid("153.16.254.1").equals(sourceEid)); + Eid smrEid = smr.getEidItem().get(0).getEid(); + assertTrue(LispAddressUtil.asIpv4PrefixEid("1.2.3.4/32").equals(smrEid)); } // --------------------- Northbound Tests --------------------------- /* private void northboundAddKey() throws Exception { cleanUP(); - LispIpv4Address address = LispAFIConvertor.asIPAfiAddress("1.2.3.4"); + LispIpv4Address address = LispAddressUtil.asIPAfiAddress("1.2.3.4"); int mask = 32; String pass = "asdf"; @@ -594,7 +599,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { String authKeyJSON = createAuthKeyJSON(pass, address, mask); callURL("PUT", "application/json", "text/plain", authKeyJSON, url); - String retrievedKey = lms.getAuthenticationKey(LispAFIConvertor.toContainer(address), mask); + String retrievedKey = lms.getAuthenticationKey(LispAddressUtil.toContainer(address), mask); // Check stored password matches the one sent assertEquals(pass, retrievedKey); @@ -603,10 +608,10 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { private void northboundRetrieveSourceDestKey() throws Exception { cleanUP(); - org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Ipv4 address1 = (org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev150820.lispsimpleaddress.primitiveaddress.Ipv4) LispAFIConvertor - .toPrimitive(LispAFIConvertor.asIPAfiAddress("10.0.0.1")); - org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Ipv4 address2 = (org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev150820.lispsimpleaddress.primitiveaddress.Ipv4) LispAFIConvertor - .toPrimitive(LispAFIConvertor.asIPAfiAddress("10.0.0.2")); + org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Ipv4 address1 = (org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev150820.lispsimpleaddress.primitiveaddress.Ipv4) LispAddressUtil + .toPrimitive(LispAddressUtil.asIPAfiAddress("10.0.0.1")); + org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Ipv4 address2 = (org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev150820.lispsimpleaddress.primitiveaddress.Ipv4) LispAddressUtil + .toPrimitive(LispAddressUtil.asIPAfiAddress("10.0.0.2")); int mask1 = 32; int mask2 = 32; LcafSourceDestAddr sourceDestAddress = new LcafSourceDestAddrBuilder().setAfi(AddressFamilyNumberEnum.LCAF.getIanaCode()) @@ -615,12 +620,12 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { .setDstAddress(new DstAddressBuilder().setPrimitiveAddress(address2).build()).setDstMaskLength((short) mask2).build(); String pass = "asdf"; - lms.addAuthenticationKey(LispAFIConvertor.toContainer(sourceDestAddress), mask1, pass); + lms.addAuthenticationKey(LispAddressUtil.toContainer(sourceDestAddress), mask1, pass); // URL url = createGetKeyIPv4URL(address1, mask1); URL url = createGetKeySourceDestURL(address1.getIpv4Address().getAfi(), - ((LispIpv4Address) LispAFIConvertor.toAFIfromPrimitive(sourceDestAddress.getSrcAddress().getPrimitiveAddress())).getIpv4Address().getValue(), sourceDestAddress.getSrcMaskLength(), - ((LispIpv4Address) LispAFIConvertor.toAFIfromPrimitive(sourceDestAddress.getDstAddress().getPrimitiveAddress())).getIpv4Address().getValue(), sourceDestAddress.getDstMaskLength()); + ((LispIpv4Address) LispAddressUtil.toAFIfromPrimitive(sourceDestAddress.getSrcAddress().getPrimitiveAddress())).getIpv4Address().getValue(), sourceDestAddress.getSrcMaskLength(), + ((LispIpv4Address) LispAddressUtil.toAFIfromPrimitive(sourceDestAddress.getDstAddress().getPrimitiveAddress())).getIpv4Address().getValue(), sourceDestAddress.getDstMaskLength()); String reply = callURL("GET", null, "application/json", null, url); JSONTokener jt = new JSONTokener(reply); JSONObject json = new JSONObject(jt); @@ -632,11 +637,11 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { private void northboundRetrieveKey() throws Exception { cleanUP(); - LispIpv4Address address = LispAFIConvertor.asIPAfiAddress("10.0.0.1"); + LispIpv4Address address = LispAddressUtil.asIPAfiAddress("10.0.0.1"); int mask = 32; String pass = "asdf"; - lms.addAuthenticationKey(LispAFIConvertor.toContainer(address), mask, pass); + lms.addAuthenticationKey(LispAddressUtil.toContainer(address), mask, pass); URL url = createGetKeyIPv4URL(address, mask); String reply = callURL("GET", null, "application/json", null, url); @@ -656,12 +661,12 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { private void northboundAddMapping() throws Exception { cleanUP(); String pass = "asdf"; - LispIpv4Address eid = LispAFIConvertor.asIPAfiAddress("10.0.0.1"); + LispIpv4Address eid = LispAddressUtil.asIPAfiAddress("10.0.0.1"); int mask = 32; - LispIpv4Address rloc = LispAFIConvertor.asIPAfiAddress("20.0.0.2"); + LispIpv4Address rloc = LispAddressUtil.asIPAfiAddress("20.0.0.2"); // NB add mapping always checks the key - lms.addAuthenticationKey(LispAFIConvertor.toContainer(eid), mask, pass); + lms.addAuthenticationKey(LispAddressUtil.toContainer(eid), mask, pass); URL url = createPutURL("mapping"); String mapRegisterJSON = createMapRegisterJSON(pass, eid, mask, rloc); @@ -670,13 +675,13 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { // Retrieve the RLOC from the database MapRequestBuilder mapRequestBuilder = new MapRequestBuilder(); mapRequestBuilder.setPitr(false); - mapRequestBuilder.setEidRecord(new ArrayList()); - mapRequestBuilder.getEidRecord().add( - new EidRecordBuilder().setMask((short) mask).setLispAddressContainer(LispAFIConvertor.toContainer(eid)).build()); + mapRequestBuilder.setEidItem(new ArrayList()); + mapRequestBuilder.getEidItem().add( + new EidRecordBuilder().setMask((short) mask).setLispAddressContainer(LispAddressUtil.toContainer(eid)).build()); MapReply mapReply = lms.handleMapRequest(mapRequestBuilder.build()); - LispIpv4Address retrievedRloc = (LispIpv4Address) LispAFIConvertor.toAFI( - mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().get(0).getLispAddressContainer()); + LispIpv4Address retrievedRloc = (LispIpv4Address) LispAddressUtil.toAFI( + mapReply.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().get(0).getLispAddressContainer()); assertEquals(rloc.getIpv4Address().getValue(), retrievedRloc.getIpv4Address().getValue()); @@ -697,19 +702,19 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { private void northboundRetrieveMapping() throws Exception { cleanUP(); - LispIpv4Address eid = LispAFIConvertor.asIPAfiAddress("10.0.0.1"); + LispIpv4Address eid = LispAddressUtil.asIPAfiAddress("10.0.0.1"); int mask = 32; - LispIpv4Address rloc = LispAFIConvertor.asIPAfiAddress("20.0.0.2"); + LispIpv4Address rloc = LispAddressUtil.asIPAfiAddress("20.0.0.2"); // Insert mapping in the database MapRegisterBuilder mapRegister = new MapRegisterBuilder(); EidToLocatorRecordBuilder etlr = new EidToLocatorRecordBuilder(); - etlr.setLispAddressContainer(LispAFIConvertor.toContainer(eid)); + etlr.setLispAddressContainer(LispAddressUtil.toContainer(eid)); etlr.setMaskLength((short) mask); etlr.setRecordTtl(254); etlr.setAuthoritative(false); etlr.setAction(Action.NoAction); LocatorRecordBuilder record = new LocatorRecordBuilder(); - record.setLispAddressContainer(LispAFIConvertor.toContainer(rloc)); + record.setLispAddressContainer(LispAddressUtil.toContainer(rloc)); record.setRouted(true); record.setRlocProbed(false); record.setLocalLocator(false); @@ -719,8 +724,8 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { record.setMulticastWeight((short) 1); etlr.setLocatorRecord(new ArrayList()); etlr.getLocatorRecord().add(record.build()); - mapRegister.setEidToLocatorRecord(new ArrayList()); - mapRegister.getEidToLocatorRecord().add(etlr.build()); + mapRegister.setMappingRecordItem(new ArrayList()); + mapRegister.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(etlr.build()).build()); lms.handleMapRegister(mapRegister.build(), false); // Get mapping using NB interface. No IID used @@ -738,19 +743,19 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { private void northboundDeleteMapping() throws Exception { cleanUP(); - LispIpv4Address eid = LispAFIConvertor.asIPAfiAddress("10.0.0.1"); + LispIpv4Address eid = LispAddressUtil.asIPAfiAddress("10.0.0.1"); int mask = 32; - LispIpv4Address rloc = LispAFIConvertor.asIPAfiAddress("20.0.0.2"); + LispIpv4Address rloc = LispAddressUtil.asIPAfiAddress("20.0.0.2"); // Insert mapping in the database MapRegisterBuilder mapRegister = new MapRegisterBuilder(); EidToLocatorRecordBuilder etlr = new EidToLocatorRecordBuilder(); - etlr.setLispAddressContainer(LispAFIConvertor.toContainer(eid)); + etlr.setLispAddressContainer(LispAddressUtil.toContainer(eid)); etlr.setMaskLength((short) mask); etlr.setRecordTtl(254); etlr.setAuthoritative(false); etlr.setAction(Action.NoAction); LocatorRecordBuilder record = new LocatorRecordBuilder(); - record.setLispAddressContainer(LispAFIConvertor.toContainer(rloc)); + record.setLispAddressContainer(LispAddressUtil.toContainer(rloc)); record.setRouted(true); record.setRlocProbed(false); record.setLocalLocator(false); @@ -760,8 +765,8 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { record.setMulticastWeight((short) 1); etlr.setLocatorRecord(new ArrayList()); etlr.getLocatorRecord().add(record.build()); - mapRegister.setEidToLocatorRecord(new ArrayList()); - mapRegister.getEidToLocatorRecord().add(etlr.build()); + mapRegister.setMappingRecordItem(new ArrayList()); + mapRegister.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(etlr.build()).build()); lms.handleMapRegister(mapRegister.build(), false); // Delete mapping using NB interface. No IID used @@ -780,28 +785,28 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { private void northboundRetrieveSourceDestMapping() throws Exception { cleanUP(); - org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Ipv4 address1 = (org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev150820.lispsimpleaddress.primitiveaddress.Ipv4) LispAFIConvertor - .toPrimitive(LispAFIConvertor.asIPAfiAddress("10.0.0.1")); - org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Ipv4 address2 = (org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev150820.lispsimpleaddress.primitiveaddress.Ipv4) LispAFIConvertor - .toPrimitive(LispAFIConvertor.asIPAfiAddress("10.0.0.2")); + org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Ipv4 address1 = (org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev150820.lispsimpleaddress.primitiveaddress.Ipv4) LispAddressUtil + .toPrimitive(LispAddressUtil.asIPAfiAddress("10.0.0.1")); + org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Ipv4 address2 = (org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev150820.lispsimpleaddress.primitiveaddress.Ipv4) LispAddressUtil + .toPrimitive(LispAddressUtil.asIPAfiAddress("10.0.0.2")); int mask1 = 32; int mask2 = 32; LcafSourceDestAddr sourceDestAddress = new LcafSourceDestAddrBuilder().setAfi(AddressFamilyNumberEnum.LCAF.getIanaCode()) .setLcafType((short) LispCanonicalAddressFormatEnum.SOURCE_DEST.getLispCode()) .setSrcAddress(new SrcAddressBuilder().setPrimitiveAddress(address1).build()).setSrcMaskLength((short) mask1) .setDstAddress(new DstAddressBuilder().setPrimitiveAddress(address2).build()).setDstMaskLength((short) mask2).build(); - LispIpv4Address rloc = LispAFIConvertor.asIPAfiAddress("20.0.0.2"); + LispIpv4Address rloc = LispAddressUtil.asIPAfiAddress("20.0.0.2"); // Insert mapping in the database MapRegisterBuilder mapRegister = new MapRegisterBuilder(); EidToLocatorRecordBuilder etlr = new EidToLocatorRecordBuilder(); - etlr.setLispAddressContainer(LispAFIConvertor.toContainer(sourceDestAddress)); + etlr.setLispAddressContainer(LispAddressUtil.toContainer(sourceDestAddress)); etlr.setMaskLength((short) mask1); etlr.setRecordTtl(254); etlr.setAuthoritative(false); etlr.setAction(Action.NoAction); LocatorRecordBuilder record = new LocatorRecordBuilder(); - record.setLispAddressContainer(LispAFIConvertor.toContainer(rloc)); + record.setLispAddressContainer(LispAddressUtil.toContainer(rloc)); record.setRouted(true); record.setRlocProbed(false); record.setLocalLocator(false); @@ -811,8 +816,8 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { record.setMulticastWeight((short) 1); etlr.setLocatorRecord(new ArrayList()); etlr.getLocatorRecord().add(record.build()); - mapRegister.setEidToLocatorRecord(new ArrayList()); - mapRegister.getEidToLocatorRecord().add(etlr.build()); + mapRegister.setMappingRecordItem(new ArrayList()); + mapRegister.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(etlr.build()).build()); lms.handleMapRegister(mapRegister.build(), false); // Get mapping using NB interface. No IID used @@ -937,17 +942,17 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { public void eidPrefixLookupIPv4() throws SocketTimeoutException { cleanUP(); - runPrefixTest(LispAFIConvertor.asIPAfiAddress("1.2.3.4"), 16, LispAFIConvertor.asIPAfiAddress("1.2.3.2"), - LispAFIConvertor.asIPAfiAddress("1.1.1.1"), (byte) 32); + runPrefixTest(LispAddressUtil.asIpv4PrefixEid("1.2.3.4/16"), LispAddressUtil.asIpv4PrefixEid("1.2.3.2/32"), + LispAddressUtil.asIpv4PrefixEid("1.1.1.1/32")); } public void eidPrefixLookupIPv6() throws SocketTimeoutException { cleanUP(); - runPrefixTest(LispAFIConvertor.asIPv6AfiAddress("1:2:3:4:5:6:7:8"), 64, LispAFIConvertor.asIPv6AfiAddress("1:2:3:4:5:1:2:3"), - LispAFIConvertor.asIPv6AfiAddress("1:2:3:1:2:3:1:2"), 128); + runPrefixTest(LispAddressUtil.asIpv6PrefixEid("1:2:3:4:5:6:7:8/64"), LispAddressUtil.asIpv6PrefixEid("1:2:3:4:5:1:2:3/128"), + LispAddressUtil.asIpv6PrefixEid("1:2:3:1:2:3:1:2/128")); } - private void runPrefixTest(LispAFIAddress registerEID, int registerdMask, LispAFIAddress matchedAddress, LispAFIAddress unMatchedAddress, int mask) + private void runPrefixTest(Eid registerEID, Eid matchedAddress, Eid unMatchedAddress) throws SocketTimeoutException { MapRegisterBuilder mapRegister = new MapRegisterBuilder(); @@ -958,16 +963,15 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { mapRegister.setAuthenticationData(new byte[0]); mapRegister.setNonce((long) 8); mapRegister.setProxyMapReply(false); - EidToLocatorRecordBuilder etlr = new EidToLocatorRecordBuilder(); + MappingRecordBuilder etlr = new MappingRecordBuilder(); etlr.setRecordTtl(254); etlr.setAction(Action.NoAction); etlr.setAuthoritative(false); etlr.setMapVersion((short) 0); - etlr.setLispAddressContainer(LispAFIConvertor.toContainer(registerEID)); - etlr.setMaskLength((short) registerdMask); + etlr.setEid(registerEID); etlr.setRecordTtl(254); LocatorRecordBuilder record = new LocatorRecordBuilder(); - record.setLispAddressContainer(LispAFIConvertor.toContainer(LispAFIConvertor.asIPAfiAddress("4.3.2.1"))); + record.setRloc(LispAddressUtil.asIpv4Rloc("4.3.2.1")); record.setLocalLocator(false); record.setRlocProbed(false); record.setRouted(true); @@ -977,37 +981,35 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { record.setWeight((short) 0); etlr.setLocatorRecord(new ArrayList()); etlr.getLocatorRecord().add(record.build()); - mapRegister.setEidToLocatorRecord(new ArrayList()); - mapRegister.getEidToLocatorRecord().add(etlr.build()); + mapRegister.setMappingRecordItem(new ArrayList()); + mapRegister.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(etlr.build()).build()); sendMapRegister(mapRegister.build()); MapNotify mapNotify = receiveMapNotify(); assertEquals(8, mapNotify.getNonce().longValue()); sleepForSeconds(1); MapRequestBuilder mapRequest = new MapRequestBuilder(); mapRequest.setNonce((long) 4); - mapRequest.setSourceEid(new SourceEidBuilder().setLispAddressContainer(LispAFIConvertor.toContainer(LispAFIConvertor.asIPAfiAddress(ourAddress))).build()); - mapRequest.setEidRecord(new ArrayList()); + mapRequest.setSourceEid(new SourceEidBuilder().setEid(LispAddressUtil.asIpv4Eid(ourAddress)).build()); + mapRequest.setEidItem(new ArrayList()); mapRequest.setAuthoritative(false); mapRequest.setMapDataPresent(false); mapRequest.setPitr(false); mapRequest.setProbe(false); mapRequest.setSmr(false); mapRequest.setSmrInvoked(false); - mapRequest.getEidRecord().add( - new EidRecordBuilder().setMask((short) mask).setLispAddressContainer(LispAFIConvertor.toContainer(matchedAddress)).build()); + mapRequest.getEidItem().add(new EidItemBuilder().setEid(matchedAddress).build()); mapRequest.setItrRloc(new ArrayList()); mapRequest.getItrRloc().add( - new ItrRlocBuilder().setLispAddressContainer(LispAFIConvertor.toContainer(LispAFIConvertor.asIPAfiAddress(ourAddress))).build()); + new ItrRlocBuilder().setRloc(LispAddressUtil.asIpv4Rloc(ourAddress)).build()); sendMapRequest(mapRequest.build()); MapReply mapReply = receiveMapReply(); assertEquals(4, mapReply.getNonce().longValue()); - assertEquals(record.getLispAddressContainer(), mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().get(0).getLispAddressContainer()); - mapRequest.setEidRecord(new ArrayList()); - mapRequest.getEidRecord().add( - new EidRecordBuilder().setMask((short) mask).setLispAddressContainer(LispAFIConvertor.toContainer(unMatchedAddress)).build()); + assertEquals(record.getRloc(), mapReply.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().get(0).getRloc()); + mapRequest.setEidItem(new ArrayList()); + mapRequest.getEidItem().add(new EidItemBuilder().setEid(unMatchedAddress).build()); sendMapRequest(mapRequest.build()); mapReply = receiveMapReply(); - assertEquals(0, mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().size()); + assertEquals(0, mapReply.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().size()); } /* // This registers an IP with a MapRegister, then adds a password via the @@ -1016,7 +1018,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { public void testPasswordExactMatch() throws Exception { cleanUP(); String ipString = "10.0.0.1"; - LispIpv4Address address = LispAFIConvertor.asIPAfiAddress(ipString); + LispIpv4Address address = LispAddressUtil.asIPAfiAddress(ipString); int mask = 32; String pass = "pass"; @@ -1039,15 +1041,15 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { mapRegister.setWantMapNotify(true); mapRegister.setNonce((long) 8); EidToLocatorRecordBuilder etlr = new EidToLocatorRecordBuilder(); - etlr.setLispAddressContainer(LispAFIConvertor.toContainer(address)); + etlr.setLispAddressContainer(LispAddressUtil.toContainer(address)); etlr.setMaskLength((short) mask); etlr.setRecordTtl(254); LocatorRecordBuilder record = new LocatorRecordBuilder(); - record.setLispAddressContainer(LispAFIConvertor.toContainer(locatorEid)); + record.setLispAddressContainer(LispAddressUtil.toContainer(locatorEid)); etlr.setLocatorRecord(new ArrayList()); etlr.getLocatorRecord().add(record.build()); - mapRegister.setEidToLocatorRecord(new ArrayList()); - mapRegister.getEidToLocatorRecord().add(etlr.build()); + mapRegister.setMappingRecordItem(new ArrayList()); + mapRegister.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(etlr.build()).build()); mapRegister.setKeyId((short) 1); // LispKeyIDEnum.SHA1.getKeyID() mapRegister.setAuthenticationData(zeros); @@ -1064,9 +1066,9 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { public void testPasswordMaskMatch() throws Exception { cleanUP(); - LispIpv4Address addressInRange = LispAFIConvertor.asIPAfiAddress("10.20.30.40"); - LispIpv4Address addressOutOfRange = LispAFIConvertor.asIPAfiAddress("20.40.30.40"); - LispIpv4Address range = LispAFIConvertor.asIPAfiAddress("10.20.30.0"); + LispIpv4Address addressInRange = LispAddressUtil.asIPAfiAddress("10.20.30.40"); + LispIpv4Address addressOutOfRange = LispAddressUtil.asIPAfiAddress("20.40.30.40"); + LispIpv4Address range = LispAddressUtil.asIPAfiAddress("10.20.30.0"); int mask = 32; String pass = "pass"; @@ -1081,16 +1083,16 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { mapRegister.setWantMapNotify(true); mapRegister.setNonce((long) 8); EidToLocatorRecordBuilder etlr = new EidToLocatorRecordBuilder(); - etlr.setLispAddressContainer(LispAFIConvertor.toContainer(addressInRange)); + etlr.setLispAddressContainer(LispAddressUtil.toContainer(addressInRange)); etlr.setMaskLength((short) mask); etlr.setRecordTtl(254); LocatorRecordBuilder record = new LocatorRecordBuilder(); - record.setLispAddressContainer(LispAFIConvertor.toContainer(locatorEid)); - record.setLispAddressContainer(LispAFIConvertor.toContainer(locatorEid)); + record.setLispAddressContainer(LispAddressUtil.toContainer(locatorEid)); + record.setLispAddressContainer(LispAddressUtil.toContainer(locatorEid)); etlr.setLocatorRecord(new ArrayList()); etlr.getLocatorRecord().add(record.build()); - mapRegister.setEidToLocatorRecord(new ArrayList()); - mapRegister.getEidToLocatorRecord().add(etlr.build()); + mapRegister.setMappingRecordItem(new ArrayList()); + mapRegister.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(etlr.build()).build()); mapRegister.setKeyId((short) 1); // LispKeyIDEnum.SHA1.getKeyID() mapRegister @@ -1100,7 +1102,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { assertMapNotifyRecieved(); - etlr.setLispAddressContainer(LispAFIConvertor.toContainer(addressOutOfRange)); + etlr.setLispAddressContainer(LispAddressUtil.toContainer(addressOutOfRange)); mapRegister .setAuthenticationData(new byte[] { -54, 68, -58, -91, -23, 22, -88, -31, 113, 39, 115, 78, -68, -123, -71, -14, -99, 67, -23, -73 }); @@ -1108,25 +1110,16 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { assertNoPacketReceived(3000); } */ - private MapReply registerAddressAndQuery(LispAFIAddress eid) throws SocketTimeoutException { - return registerAddressAndQuery(eid, -1); - } - // takes an address, packs it in a MapRegister and sends it - private void registerAddress(LispAddressContainer eid, int maskLength) throws SocketTimeoutException { + private void registerAddress(Eid eid) throws SocketTimeoutException { MapRegisterBuilder mapRegisterBuilder = new MapRegisterBuilder(); mapRegisterBuilder.setWantMapNotify(true); mapRegisterBuilder.setKeyId((short) 0); mapRegisterBuilder.setAuthenticationData(new byte[0]); mapRegisterBuilder.setNonce((long) 8); mapRegisterBuilder.setProxyMapReply(false); - EidToLocatorRecordBuilder etlrBuilder = new EidToLocatorRecordBuilder(); - etlrBuilder.setLispAddressContainer(eid); - if (maskLength != -1) { - etlrBuilder.setMaskLength((short) maskLength); - } else { - etlrBuilder.setMaskLength((short) 0); - } + MappingRecordBuilder etlrBuilder = new MappingRecordBuilder(); + etlrBuilder.setEid(eid); etlrBuilder.setRecordTtl(254); etlrBuilder.setAction(Action.NoAction); etlrBuilder.setAuthoritative(false); @@ -1139,32 +1132,29 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { recordBuilder.setMulticastWeight((short) 0); recordBuilder.setPriority((short) 0); recordBuilder.setWeight((short) 0); - recordBuilder.setLispAddressContainer(LispAFIConvertor.toContainer(locatorEid)); + recordBuilder.setRloc(locatorEid); etlrBuilder.setLocatorRecord(new ArrayList()); etlrBuilder.getLocatorRecord().add(recordBuilder.build()); - mapRegisterBuilder.setEidToLocatorRecord(new ArrayList()); - mapRegisterBuilder.getEidToLocatorRecord().add(etlrBuilder.build()); + mapRegisterBuilder.setMappingRecordItem(new ArrayList()); + mapRegisterBuilder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(etlrBuilder.build()).build()); sendMapRegister(mapRegisterBuilder.build()); MapNotify mapNotify = receiveMapNotify(); assertEquals(8, mapNotify.getNonce().longValue()); } - private MapReply queryForAddress(LispAddressContainer eid, String srcEid) throws SocketTimeoutException { + private MapReply queryForAddress(Eid eid, String srcEid) throws SocketTimeoutException { MapRequestBuilder mapRequestBuilder = new MapRequestBuilder(); mapRequestBuilder.setNonce((long) 4); - mapRequestBuilder.setEidRecord(new ArrayList()); - mapRequestBuilder.getEidRecord().add( - new EidRecordBuilder().setMask((short) 32).setLispAddressContainer(eid).build()); + mapRequestBuilder.setEidItem(new ArrayList()); + mapRequestBuilder.getEidItem().add(new EidItemBuilder().setEid(eid).build()); mapRequestBuilder.setItrRloc(new ArrayList()); if (srcEid != null) { - mapRequestBuilder.setSourceEid(new SourceEidBuilder().setLispAddressContainer(LispAFIConvertor. - toContainer(LispAFIConvertor.asIPAfiAddress(srcEid))).build()); + mapRequestBuilder.setSourceEid(new SourceEidBuilder().setEid(LispAddressUtil.asIpv4Eid(srcEid)).build()); } else { - mapRequestBuilder.setSourceEid(new SourceEidBuilder().setLispAddressContainer(LispAFIConvertor. - toContainer(LispAFIConvertor.asIPAfiAddress(ourAddress))).build()); + mapRequestBuilder.setSourceEid(new SourceEidBuilder().setEid(LispAddressUtil.asIpv4Eid(ourAddress)).build()); } mapRequestBuilder.getItrRloc().add( - new ItrRlocBuilder().setLispAddressContainer(LispAFIConvertor.toContainer(LispAFIConvertor.asIPAfiAddress(ourAddress))).build()); + new ItrRlocBuilder().setRloc(LispAddressUtil.asIpv4Rloc(ourAddress)).build()); mapRequestBuilder.setAuthoritative(false); mapRequestBuilder.setMapDataPresent(false); mapRequestBuilder.setPitr(false); @@ -1177,20 +1167,15 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { // takes an address, packs it in a MapRegister, sends it, returns the // MapReply - private MapReply registerAddressAndQuery(LispAFIAddress eid, int maskLength) throws SocketTimeoutException { + private MapReply registerAddressAndQuery(Eid eid) throws SocketTimeoutException { MapRegisterBuilder mapRegisterBuilder = new MapRegisterBuilder(); mapRegisterBuilder.setWantMapNotify(true); mapRegisterBuilder.setKeyId((short) 0); mapRegisterBuilder.setAuthenticationData(new byte[0]); mapRegisterBuilder.setNonce((long) 8); mapRegisterBuilder.setProxyMapReply(false); - EidToLocatorRecordBuilder etlrBuilder = new EidToLocatorRecordBuilder(); - etlrBuilder.setLispAddressContainer(LispAFIConvertor.toContainer(eid)); - if (maskLength != -1) { - etlrBuilder.setMaskLength((short) maskLength); - } else { - etlrBuilder.setMaskLength((short) 0); - } + MappingRecordBuilder etlrBuilder = new MappingRecordBuilder(); + etlrBuilder.setEid(eid); etlrBuilder.setRecordTtl(254); etlrBuilder.setAction(Action.NoAction); etlrBuilder.setAuthoritative(false); @@ -1203,11 +1188,11 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { recordBuilder.setMulticastWeight((short) 0); recordBuilder.setPriority((short) 0); recordBuilder.setWeight((short) 0); - recordBuilder.setLispAddressContainer(LispAFIConvertor.toContainer(locatorEid)); + recordBuilder.setRloc(locatorEid); etlrBuilder.setLocatorRecord(new ArrayList()); etlrBuilder.getLocatorRecord().add(recordBuilder.build()); - mapRegisterBuilder.setEidToLocatorRecord(new ArrayList()); - mapRegisterBuilder.getEidToLocatorRecord().add(etlrBuilder.build()); + mapRegisterBuilder.setMappingRecordItem(new ArrayList()); + mapRegisterBuilder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(etlrBuilder.build()).build()); sendMapRegister(mapRegisterBuilder.build()); MapNotify mapNotify = receiveMapNotify(); assertEquals(8, mapNotify.getNonce().longValue()); @@ -1215,14 +1200,12 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { sleepForSeconds(1); MapRequestBuilder mapRequestBuilder = new MapRequestBuilder(); mapRequestBuilder.setNonce((long) 4); - mapRequestBuilder.setEidRecord(new ArrayList()); - mapRequestBuilder.getEidRecord().add( - new EidRecordBuilder().setMask((short) 32).setLispAddressContainer(LispAFIConvertor.toContainer(eid)).build()); + mapRequestBuilder.setEidItem(new ArrayList()); + mapRequestBuilder.getEidItem().add(new EidItemBuilder().setEid(eid).build()); mapRequestBuilder.setItrRloc(new ArrayList()); - mapRequestBuilder.setSourceEid(new SourceEidBuilder().setLispAddressContainer(LispAFIConvertor.toContainer(LispAFIConvertor.asIPAfiAddress(ourAddress))) - .build()); + mapRequestBuilder.setSourceEid(new SourceEidBuilder().setEid(LispAddressUtil.asIpv4Eid(ourAddress)).build()); mapRequestBuilder.getItrRloc().add( - new ItrRlocBuilder().setLispAddressContainer(LispAFIConvertor.toContainer(LispAFIConvertor.asIPAfiAddress(ourAddress))).build()); + new ItrRlocBuilder().setRloc(LispAddressUtil.asIpv4Rloc(ourAddress)).build()); mapRequestBuilder.setAuthoritative(false); mapRequestBuilder.setMapDataPresent(false); mapRequestBuilder.setPitr(false); @@ -1234,14 +1217,14 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { } // ------------------------------- LCAF Tests --------------------------- - +/* @Test public void registerAndQuery__SrcDestLCAF() throws SocketTimeoutException { cleanUP(); String ipString = "10.20.30.200"; String macString = "01:02:03:04:05:06"; - org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Ipv4 addrToSend1 = LispAFIConvertor.asPrimitiveIPv4AfiPrefix(ipString, 32); - org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Mac addrToSend2 = LispAFIConvertor.asPrimitiveMacAfiAddress(macString); + org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Ipv4 addrToSend1 = LispAddressUtil.asPrimitiveIPv4AfiPrefix(ipString, 32); + org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Mac addrToSend2 = LispAddressUtil.asPrimitiveMacAfiAddress(macString); LcafSourceDestAddrBuilder builder = new LcafSourceDestAddrBuilder(); builder.setAfi(AddressFamilyNumberEnum.LCAF.getIanaCode()); builder.setLcafType((short) LispCanonicalAddressFormatEnum.SOURCE_DEST.getLispCode()); @@ -1252,12 +1235,12 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { MapReply reply = registerAddressAndQuery(builder.build()); - LispAddressContainer fromNetwork = reply.getEidToLocatorRecord().get(0).getLispAddressContainer(); + Eid fromNetwork = reply.getMappingRecordItem().get(0).getMappingRecord().getEid(); assertTrue(fromNetwork.getAddress() instanceof LcafSourceDest); LcafSourceDest sourceDestFromNetwork = (LcafSourceDest) fromNetwork.getAddress(); - LispAFIAddress receivedAddr1 = LispAFIConvertor.toAFIfromPrimitive(sourceDestFromNetwork.getLcafSourceDestAddr().getSrcAddress().getPrimitiveAddress()); - LispAFIAddress receivedAddr2 = LispAFIConvertor.toAFIfromPrimitive(sourceDestFromNetwork.getLcafSourceDestAddr().getDstAddress().getPrimitiveAddress()); + LispAFIAddress receivedAddr1 = LispAddressUtil.toAFIfromPrimitive(sourceDestFromNetwork.getLcafSourceDestAddr().getSrcAddress().getPrimitiveAddress()); + LispAFIAddress receivedAddr2 = LispAddressUtil.toAFIfromPrimitive(sourceDestFromNetwork.getLcafSourceDestAddr().getDstAddress().getPrimitiveAddress()); assertTrue(receivedAddr1 instanceof LispIpv4Address); assertTrue(receivedAddr2 instanceof LispMacAddress); @@ -1268,60 +1251,50 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { assertEquals(ipString, receivedIP.getIpv4Address().getValue()); assertEquals(macString, receivedMAC.getMacAddress().getValue()); } - +*/ @Test public void registerAndQuery__SrcDestLCAFOverlap() throws SocketTimeoutException { cleanUP(); String ipString1 = "10.10.10.0"; String ipString2 = "20.20.20.0"; - org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Ipv4 addrToSend1 = LispAFIConvertor.asPrimitiveIPv4AfiPrefix(ipString1, 24); - org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Ipv4 addrToSend2 = LispAFIConvertor.asPrimitiveIPv4AfiPrefix(ipString2, 24); - LcafSourceDestAddrBuilder builder = new LcafSourceDestAddrBuilder(); - builder.setAfi(AddressFamilyNumberEnum.LCAF.getIanaCode()); - builder.setLcafType((short) LispCanonicalAddressFormatEnum.SOURCE_DEST.getLispCode()); - builder.setSrcMaskLength((short) 24); - builder.setDstMaskLength((short) 24); - builder.setSrcAddress(new SrcAddressBuilder().setPrimitiveAddress(addrToSend1).build()); - builder.setDstAddress(new DstAddressBuilder().setPrimitiveAddress(addrToSend2).build()); + String ipPrefix1 = ipString1 + "/24"; + String ipPrefix2 = ipString2 + "/24"; - LispAddressContainer srcDst = LispAFIConvertor.toContainer(builder.build()); - registerAddress(LispAFIConvertor.asIPv4Prefix(ipString2, 24), 24); - registerAddress(srcDst, -1); + Eid srcDst = LispAddressUtil.asSrcDstEid(ipString1, ipString2, 24, 24, 0); + registerAddress(LispAddressUtil.asIpv4PrefixEid(ipPrefix2)); + registerAddress(srcDst); // exact match MapReply reply = queryForAddress(srcDst, null); - LispAddressContainer fromNetwork = reply.getEidToLocatorRecord().get(0).getLispAddressContainer(); - assertTrue(fromNetwork.getAddress() instanceof LcafSourceDest); - LcafSourceDest sourceDestFromNetwork = (LcafSourceDest) fromNetwork.getAddress(); - - LispAFIAddress receivedAddr1 = LispAFIConvertor.toAFIfromPrimitive(sourceDestFromNetwork.getLcafSourceDestAddr().getSrcAddress().getPrimitiveAddress()); - LispAFIAddress receivedAddr2 = LispAFIConvertor.toAFIfromPrimitive(sourceDestFromNetwork.getLcafSourceDestAddr().getDstAddress().getPrimitiveAddress()); + Eid fromNetwork = reply.getMappingRecordItem().get(0).getMappingRecord().getEid(); + assertEquals(SourceDestKeyLcaf.class, fromNetwork.getAddressType()); + SourceDestKey sourceDestFromNetwork = (SourceDestKey) fromNetwork.getAddress(); - assertTrue(receivedAddr1 instanceof LispIpv4Address); - assertTrue(receivedAddr2 instanceof LispIpv4Address); + IpPrefix receivedAddr1 = sourceDestFromNetwork.getSourceDestKey().getSource(); + IpPrefix receivedAddr2 = sourceDestFromNetwork.getSourceDestKey().getDest(); - LispIpv4Address receivedIP1 = (LispIpv4Address) receivedAddr1; - LispIpv4Address receivedIP2 = (LispIpv4Address) receivedAddr2; + assertNotNull(receivedAddr1.getIpv4Prefix()); + assertNotNull(receivedAddr2.getIpv4Prefix()); - assertEquals(ipString1, receivedIP1.getIpv4Address().getValue()); - assertEquals(ipString2, receivedIP2.getIpv4Address().getValue()); + assertEquals(ipPrefix1, receivedAddr1.getIpv4Prefix().getValue()); + assertEquals(ipPrefix2, receivedAddr2.getIpv4Prefix().getValue()); // srcEid/dstEid match - reply = queryForAddress(LispAFIConvertor.asIPv4Address("20.20.20.1"), "10.10.10.1"); - fromNetwork = reply.getEidToLocatorRecord().get(0).getLispAddressContainer(); - assertTrue(fromNetwork.getAddress() instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.lispaddresscontainer.address.Ipv4); + reply = queryForAddress(LispAddressUtil.asIpv4PrefixEid("20.20.20.1/32"), "10.10.10.1"); + fromNetwork = reply.getMappingRecordItem().get(0).getMappingRecord().getEid(); + assertEquals(Ipv4PrefixAfi.class, fromNetwork.getAddressType()); - Ipv4Address ipAddr2 = ((org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.lispaddresscontainer.address.Ipv4) fromNetwork.getAddress()).getIpv4Address(); - assertEquals(ipString2, ipAddr2.getIpv4Address().getValue()); + Ipv4Prefix ipAddr2 = (Ipv4Prefix) fromNetwork.getAddress(); + assertEquals(ipPrefix2, ipAddr2.getIpv4Prefix().getValue()); // dstEid match only - reply = queryForAddress(LispAFIConvertor.asIPv4Address("20.20.20.1"), "1.2.3.4"); - fromNetwork = reply.getEidToLocatorRecord().get(0).getLispAddressContainer(); - assertTrue(fromNetwork.getAddress() instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.lispaddresscontainer.address.Ipv4); + reply = queryForAddress(LispAddressUtil.asIpv4PrefixEid("20.20.20.1/32"), "1.2.3.4"); + fromNetwork = reply.getMappingRecordItem().get(0).getMappingRecord().getEid(); + assertEquals(Ipv4PrefixAfi.class, fromNetwork.getAddressType()); - ipAddr2 = ((org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.lispaddresscontainer.address.Ipv4) fromNetwork.getAddress()).getIpv4Address(); - assertEquals(ipString2, ipAddr2.getIpv4Address().getValue()); + ipAddr2 = (Ipv4Prefix) fromNetwork.getAddress(); + assertEquals(ipPrefix2, ipAddr2.getIpv4Prefix().getValue()); } @Test @@ -1329,81 +1302,81 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { cleanUP(); String ipString = "10.20.30.200"; String macString = "01:02:03:04:05:06"; - org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Ipv4 addrToSend1 = LispAFIConvertor.asPrimitiveIPAfiAddress(ipString); - org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Mac addrToSend2 = LispAFIConvertor.asPrimitiveMacAfiAddress(macString); - LcafKeyValueAddressAddrBuilder builder = new LcafKeyValueAddressAddrBuilder(); - builder.setAfi(AddressFamilyNumberEnum.LCAF.getIanaCode()); - builder.setLcafType((short) LispCanonicalAddressFormatEnum.KEY_VALUE.getLispCode()); - builder.setKey(new KeyBuilder().setPrimitiveAddress(addrToSend1).build()); - builder.setValue(new ValueBuilder().setPrimitiveAddress(addrToSend2).build()); + SimpleAddress addrToSend1 = new SimpleAddress(new IpAddress(new Ipv4Address(ipString))); + SimpleAddress addrToSend2 = new SimpleAddress(new MacAddress(macString)); + Eid kv = LispAddressUtil.asKeyValueAddressEid(addrToSend1, addrToSend2); - MapReply reply = registerAddressAndQuery(builder.build()); + MapReply reply = registerAddressAndQuery(kv); - LispAddressContainer fromNetwork = reply.getEidToLocatorRecord().get(0).getLispAddressContainer(); - assertTrue(fromNetwork.getAddress() instanceof LcafKeyValue); - LcafKeyValue keyValueFromNetwork = (LcafKeyValue) fromNetwork.getAddress(); + Eid fromNetwork = reply.getMappingRecordItem().get(0).getMappingRecord().getEid(); + assertEquals(KeyValueAddressLcaf.class, fromNetwork.getAddressType()); + KeyValueAddress keyValueFromNetwork = (KeyValueAddress) fromNetwork.getAddress(); - LispAFIAddress receivedAddr1 = LispAFIConvertor.toAFIfromPrimitive(keyValueFromNetwork.getLcafKeyValueAddressAddr().getKey().getPrimitiveAddress()); - LispAFIAddress receivedAddr2 = LispAFIConvertor.toAFIfromPrimitive(keyValueFromNetwork.getLcafKeyValueAddressAddr().getValue().getPrimitiveAddress()); + SimpleAddress receivedAddr1 = keyValueFromNetwork.getKeyValueAddress().getKey(); + SimpleAddress receivedAddr2 = keyValueFromNetwork.getKeyValueAddress().getValue(); - assertTrue(receivedAddr1 instanceof LispIpv4Address); - assertTrue(receivedAddr2 instanceof LispMacAddress); + assertNotNull(receivedAddr1.getIpAddress().getIpv4Address()); + assertNotNull(receivedAddr2.getMacAddress()); - LispIpv4Address receivedIP = (LispIpv4Address) receivedAddr1; - LispMacAddress receivedMAC = (LispMacAddress) receivedAddr2; + Ipv4Address receivedIP = receivedAddr1.getIpAddress().getIpv4Address(); + MacAddress receivedMAC = receivedAddr2.getMacAddress(); - assertEquals(ipString, receivedIP.getIpv4Address().getValue()); - assertEquals(macString, receivedMAC.getMacAddress().getValue()); + assertEquals(ipString, receivedIP.getValue()); + assertEquals(macString, receivedMAC.getValue()); } public void registerAndQuery__ListLCAF() throws SocketTimeoutException { cleanUP(); String macString = "01:02:03:04:05:06"; String ipString = "10.20.255.30"; - LcafListAddrBuilder listbuilder = new LcafListAddrBuilder(); - listbuilder.setAfi(AddressFamilyNumberEnum.LCAF.getIanaCode()).setLcafType((short) LispCanonicalAddressFormatEnum.LIST.getLispCode()); - listbuilder.setAddresses(new ArrayList()); - listbuilder.getAddresses().add(new AddressesBuilder().setPrimitiveAddress(LispAFIConvertor.toPrimitive(LispAFIConvertor.asIPAfiAddress(ipString))).build()); - listbuilder.getAddresses().add(new AddressesBuilder().setPrimitiveAddress(LispAFIConvertor.toPrimitive(LispAFIConvertor.asMacAfiAddress(macString))).build()); + List addresses = new ArrayList(); + addresses.add(new SimpleAddress(new IpAddress(new Ipv4Address(ipString)))); + addresses.add(new SimpleAddress(new MacAddress(macString))); + AfiListBuilder listbuilder = new AfiListBuilder(); + listbuilder.setAddressList(addresses); - MapReply reply = registerAddressAndQuery(listbuilder.build()); + EidBuilder eb = new EidBuilder(); + eb.setAddressType(AfiListLcaf.class); + 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()); - LispAFIAddress receivedAddress = LispAFIConvertor.toAFI(reply.getEidToLocatorRecord().get(0).getLispAddressContainer()); + MapReply reply = registerAddressAndQuery(eb.build()); - assertTrue(receivedAddress instanceof LcafListAddress); + Eid receivedAddress = reply.getMappingRecordItem().get(0).getMappingRecord().getEid(); - LcafListAddress listAddrFromNetwork = (LcafListAddress) receivedAddress; - LispAFIAddress receivedAddr1 = LispAFIConvertor.toAFIfromPrimitive(listAddrFromNetwork.getAddresses().get(0).getPrimitiveAddress()); - LispAFIAddress receivedAddr2 = LispAFIConvertor.toAFIfromPrimitive(listAddrFromNetwork.getAddresses().get(1).getPrimitiveAddress()); + assertEquals(AfiListLcaf.class, receivedAddress.getAddressType()); - assertTrue(receivedAddr1 instanceof LispIpv4Address); - assertTrue(receivedAddr2 instanceof LispMacAddress); + AfiList listAddrFromNetwork = (AfiList) receivedAddress.getAddress(); + SimpleAddress receivedAddr1 = listAddrFromNetwork.getAfiList().getAddressList().get(0); + SimpleAddress receivedAddr2 = listAddrFromNetwork.getAfiList().getAddressList().get(1); - assertEquals(macString, ((LispMacAddress) receivedAddr2).getMacAddress().getValue()); - assertEquals(ipString, ((LispIpv4Address) receivedAddr1).getIpv4Address().getValue()); + assertNotNull(receivedAddr1.getIpAddress().getIpv4Address()); + assertNotNull(receivedAddr2.getMacAddress()); + + assertEquals(macString, receivedAddr2.getMacAddress().getValue()); + assertEquals(ipString, receivedAddr1.getIpAddress().getIpv4Address().getValue()); } public void registerAndQuery__SegmentLCAF() throws SocketTimeoutException { cleanUP(); String ipString = "10.20.255.30"; int instanceId = 6; - LcafSegmentAddrBuilder builder = new LcafSegmentAddrBuilder(); - builder.setInstanceId((long) instanceId); - builder.setIidMaskLength((short) 32); - builder.setAfi(AddressFamilyNumberEnum.LCAF.getIanaCode()).setLcafType((short) LispCanonicalAddressFormatEnum.SEGMENT.getLispCode()); - builder.setAddress(new AddressBuilder().setPrimitiveAddress(LispAFIConvertor.toPrimitive(LispAFIConvertor.asIPAfiAddress(ipString))).build()); - MapReply reply = registerAddressAndQuery(builder.build()); + EidBuilder eb = new EidBuilder(); + eb.setAddressType(Ipv4PrefixAfi.class); + eb.setVirtualNetworkId(new InstanceIdType((long) instanceId)); + eb.setAddress(new Ipv4PrefixBuilder().setIpv4Prefix(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix( + ipString)).build()); + + MapReply reply = registerAddressAndQuery(eb.build()); - LispAFIAddress receivedAddress = LispAFIConvertor.toAFI(reply.getEidToLocatorRecord().get(0).getLispAddressContainer()); - assertTrue(receivedAddress instanceof LcafSegmentAddress); + Eid receivedAddress = reply.getMappingRecordItem().get(0).getMappingRecord().getEid(); + assertEquals(Ipv4PrefixAfi.class, receivedAddress.getAddressType()); - LcafSegmentAddress segmentfromNetwork = (LcafSegmentAddress) receivedAddress; - LispAFIAddress addrFromSegment = LispAFIConvertor.toAFIfromPrimitive(segmentfromNetwork.getAddress().getPrimitiveAddress()); - assertTrue(addrFromSegment instanceof LispIpv4Address); - assertEquals(ipString, ((LispIpv4Address) addrFromSegment).getIpv4Address().getValue()); + assertEquals(ipString, ((Ipv4Prefix) receivedAddress.getAddress()).getIpv4Prefix().getValue()); - assertEquals(instanceId, segmentfromNetwork.getInstanceId().intValue()); + assertEquals(instanceId, receivedAddress.getVirtualNetworkId().getValue().intValue()); } public void registerAndQuery__TrafficEngineering() throws SocketTimeoutException { @@ -1411,52 +1384,45 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { String macString = "01:02:03:04:05:06"; String ipString = "10.20.255.30"; HopBuilder hopBuilder = new HopBuilder(); - hopBuilder.setPrimitiveAddress(LispAFIConvertor.toPrimitive(LispAFIConvertor.asIPAfiAddress(ipString))); + hopBuilder.setAddress(new SimpleAddress(new IpAddress(new Ipv4Address(ipString)))); + hopBuilder.setLrsBits(new LrsBits(true, false, true)); Hop hop1 = hopBuilder.build(); - hopBuilder.setPrimitiveAddress(LispAFIConvertor.toPrimitive(LispAFIConvertor.asMacAfiAddress(macString))); + hopBuilder.setAddress(new SimpleAddress(new MacAddress(macString))); + hopBuilder.setLrsBits(new LrsBits(false, true, false)); Hop hop2 = hopBuilder.build(); - HopsBuilder hb = new HopsBuilder(); - hb.setHop(hop1); - hb.setLookup(true); - hb.setRLOCProbe(false); - hb.setStrict(true); - HopsBuilder hb2 = new HopsBuilder(); - hb2.setHop(hop2); - hb2.setLookup(false); - hb2.setRLOCProbe(true); - hb2.setStrict(false); - Hops hops1 = hb.build(); - Hops hops2 = hb2.build(); - LcafTrafficEngineeringAddrBuilder trafficBuilder = new LcafTrafficEngineeringAddrBuilder(); - trafficBuilder.setAfi(AddressFamilyNumberEnum.LCAF.getIanaCode()).setLcafType( - (short) LispCanonicalAddressFormatEnum.TRAFFIC_ENGINEERING.getLispCode()); - trafficBuilder.setHops(new ArrayList()); - trafficBuilder.getHops().add(hb.build()); - trafficBuilder.getHops().add(hb2.build()); - - MapReply reply = registerAddressAndQuery(trafficBuilder.build()); - - assertTrue(LispAFIConvertor.toAFI(reply.getEidToLocatorRecord().get(0).getLispAddressContainer()) instanceof LcafTrafficEngineeringAddress); - - LcafTrafficEngineeringAddress receivedAddress = (LcafTrafficEngineeringAddress) LispAFIConvertor.toAFI(reply.getEidToLocatorRecord().get(0) - .getLispAddressContainer()); - - ReencapHop receivedHop1 = receivedAddress.getHops().get(0); - ReencapHop receivedHop2 = receivedAddress.getHops().get(1); - - assertEquals(true, hops1.isLookup()); - assertEquals(false, hops1.isRLOCProbe()); - assertEquals(true, hops1.isStrict()); - - assertEquals(false, hops2.isLookup()); - assertEquals(true, hops2.isRLOCProbe()); - assertEquals(false, hops2.isStrict()); - - assertTrue(receivedHop1.getHop().getPrimitiveAddress() instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Ipv4); - assertTrue(receivedHop2.getHop().getPrimitiveAddress() instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Mac); - - assertEquals(ipString, ((org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Ipv4) receivedHop1.getHop().getPrimitiveAddress()).getIpv4Address().getIpv4Address().getValue()); - assertEquals(macString, ((org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispsimpleaddress.primitiveaddress.Mac) receivedHop2.getHop().getPrimitiveAddress()).getMacAddress().getMacAddress().getValue()); + ExplicitLocatorPathBuilder elpBuilder = new ExplicitLocatorPathBuilder(); + elpBuilder.setHop(new ArrayList()); + elpBuilder.getHop().add(hop1); + elpBuilder.getHop().add(hop2); + + EidBuilder eb = new EidBuilder(); + eb.setAddressType(ExplicitLocatorPathLcaf.class); + 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().getAddressType()); + + ExplicitLocatorPath receivedAddress = (ExplicitLocatorPath) reply.getMappingRecordItem().get(0).getMappingRecord().getEid().getAddress(); + + 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(false, receivedHop2.getLrsBits().isLookup()); + assertEquals(true, receivedHop2.getLrsBits().isRlocProbe()); + assertEquals(false, receivedHop2.getLrsBits().isStrict()); + + assertNotNull(receivedHop1.getAddress().getIpAddress().getIpv4Address()); + assertNotNull(receivedHop2.getAddress().getMacAddress()); + + assertEquals(ipString, receivedHop1.getAddress().getIpAddress().getIpv4Address().getValue()); + assertEquals(macString, receivedHop2.getAddress().getMacAddress().getValue()); } public void registerAndQuery__ApplicationData() throws SocketTimeoutException { @@ -1469,73 +1435,75 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { int remotePortLow = 4; int remotePortHigh = 5; - LcafApplicationDataAddrBuilder builder = new LcafApplicationDataAddrBuilder(); - builder.setAfi(AddressFamilyNumberEnum.LCAF.getIanaCode()).setLcafType((short) LispCanonicalAddressFormatEnum.APPLICATION_DATA.getLispCode()); + ApplicationDataBuilder builder = new ApplicationDataBuilder(); builder.setIpTos(ipTOs); builder.setProtocol(protocol); builder.setLocalPortLow(new PortNumber(localPortLow)); builder.setLocalPortHigh(new PortNumber(localPortHigh)); builder.setRemotePortLow(new PortNumber(remotePortLow)); builder.setRemotePortHigh(new PortNumber(remotePortHigh)); - builder.setAddress(new org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lcafapplicationdataaddress.AddressBuilder() - .setPrimitiveAddress(LispAFIConvertor.toPrimitive(LispAFIConvertor.asIPAfiAddress(ipString))).build()); + builder.setAddress(new SimpleAddress(new IpAddress(new Ipv4Address(ipString)))); - LcafApplicationDataAddress addressToSend = builder.build(); + EidBuilder eb = new EidBuilder(); + eb.setAddressType(ApplicationDataLcaf.class); + 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()); + Eid addressToSend = eb.build(); MapReply reply = registerAddressAndQuery(addressToSend); - LispAFIAddress receivedAddress = LispAFIConvertor.toAFI(reply.getEidToLocatorRecord().get(0).getLispAddressContainer()); + Eid receivedAddress = reply.getMappingRecordItem().get(0).getMappingRecord().getEid(); - assertTrue(receivedAddress instanceof LcafApplicationDataAddress); + assertEquals(ApplicationDataLcaf.class, receivedAddress.getAddressType()); - LcafApplicationDataAddress receivedApplicationDataAddress = (LcafApplicationDataAddress) receivedAddress; - assertEquals(protocol, receivedApplicationDataAddress.getProtocol().intValue()); - assertEquals(ipTOs, receivedApplicationDataAddress.getIpTos().intValue()); - assertEquals(localPortLow, receivedApplicationDataAddress.getLocalPortLow().getValue().intValue()); - assertEquals(localPortHigh, receivedApplicationDataAddress.getLocalPortHigh().getValue().intValue()); - assertEquals(remotePortLow, receivedApplicationDataAddress.getRemotePortLow().getValue().intValue()); - assertEquals(remotePortHigh, receivedApplicationDataAddress.getRemotePortHigh().getValue().intValue()); + ApplicationData receivedApplicationDataAddress = (ApplicationData) receivedAddress.getAddress(); + assertEquals(protocol, receivedApplicationDataAddress.getApplicationData().getProtocol().intValue()); + 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()); - LispIpv4Address ipAddressReceived = (LispIpv4Address) LispAFIConvertor.toAFIfromPrimitive(receivedApplicationDataAddress.getAddress().getPrimitiveAddress()); - assertEquals(ipString, ipAddressReceived.getIpv4Address().getValue()); + SimpleAddress ipAddressReceived = receivedApplicationDataAddress.getApplicationData().getAddress(); + assertEquals(ipString, ipAddressReceived.getIpAddress().getIpv4Address().getValue()); } // ------------------- TimeOut Tests ----------- public void mapRequestMapRegisterAndMapRequestTestTimeout() throws SocketTimeoutException { cleanUP(); - LispIpv4Address eid = LispAFIConvertor.asIPAfiAddress("1.2.3.4"); + Eid eid = LispAddressUtil.asIpv4PrefixEid("1.2.3.4/32"); MapRequestBuilder mapRequestBuilder = new MapRequestBuilder(); mapRequestBuilder.setNonce((long) 4); - mapRequestBuilder.setSourceEid(new SourceEidBuilder().setLispAddressContainer( - LispAFIConvertor.toContainer(new NoAddressBuilder().setAfi((short) 0).build())).build()); - mapRequestBuilder.setEidRecord(new ArrayList()); - mapRequestBuilder.getEidRecord().add( - new EidRecordBuilder().setMask((short) 32).setLispAddressContainer(LispAFIConvertor.toContainer(eid)).build()); + mapRequestBuilder.setSourceEid(new SourceEidBuilder().setEid(LispAddressUtil.getNoAddressEid()).build()); + mapRequestBuilder.setEidItem(new ArrayList()); + mapRequestBuilder.getEidItem().add(new EidItemBuilder().setEid(eid).build()); mapRequestBuilder.setItrRloc(new ArrayList()); mapRequestBuilder.getItrRloc().add( - new ItrRlocBuilder().setLispAddressContainer(LispAFIConvertor.toContainer(LispAFIConvertor.asIPAfiAddress(ourAddress))).build()); + new ItrRlocBuilder().setRloc(LispAddressUtil.asIpv4Rloc(ourAddress)).build()); sendMapRequest(mapRequestBuilder.build()); MapReply mapReply = receiveMapReply(); assertEquals(4, mapReply.getNonce().longValue()); - assertEquals(0, mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().size()); + assertEquals(0, mapReply.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().size()); MapRegisterBuilder mapRegisterbuilder = new MapRegisterBuilder(); mapRegisterbuilder.setWantMapNotify(true); mapRegisterbuilder.setNonce((long) 8); - EidToLocatorRecordBuilder etlrBuilder = new EidToLocatorRecordBuilder(); - etlrBuilder.setLispAddressContainer(LispAFIConvertor.toContainer(eid)); + MappingRecordBuilder etlrBuilder = new MappingRecordBuilder(); + etlrBuilder.setEid(eid); etlrBuilder.setMaskLength((short) 32); etlrBuilder.setRecordTtl(254); LocatorRecordBuilder recordBuilder = new LocatorRecordBuilder(); - recordBuilder.setLispAddressContainer(LispAFIConvertor.toContainer(LispAFIConvertor.asIPAfiAddress("4.3.2.1"))); + recordBuilder.setRloc(LispAddressUtil.asIpv4Rloc("4.3.2.1")); etlrBuilder.setLocatorRecord(new ArrayList()); etlrBuilder.getLocatorRecord().add(recordBuilder.build()); - mapRegisterbuilder.setEidToLocatorRecord(new ArrayList()); - mapRegisterbuilder.getEidToLocatorRecord().add(etlrBuilder.build()); + mapRegisterbuilder.setMappingRecordItem(new ArrayList()); + mapRegisterbuilder.getMappingRecordItem().add( + new MappingRecordItemBuilder().setMappingRecord(etlrBuilder.build()).build()); sendMapRegister(mapRegisterbuilder.build()); MapNotify mapNotify = receiveMapNotify(); @@ -1545,18 +1513,18 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { sendMapRequest(mapRequestBuilder.build()); mapReply = receiveMapReply(); assertEquals(4, mapReply.getNonce().longValue()); - assertEquals(recordBuilder.getLispAddressContainer(), mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().get(0) - .getLispAddressContainer()); + assertEquals(recordBuilder.getRloc(), mapReply.getMappingRecordItem().get(0).getMappingRecord() + .getLocatorRecord().get(0).getRloc()); causeEntryToBeCleaned(); sendMapRequest(mapRequestBuilder.build()); mapReply = receiveMapReply(); - assertEquals(0, mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().size()); + assertEquals(0, mapReply.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().size()); } public void mapRequestMapRegisterAndMapRequestTestNativelyForwardTimeoutResponse() throws Exception { cleanUP(); - LispIpv4Address eid = LispAFIConvertor.asIPAfiAddress("1.2.3.4"); + Eid eid = LispAddressUtil.asIpv6PrefixEid("1.2.3.4/32"); MapRequest mapRequest = createMapRequest(eid); testTTLBeforeRegister(mapRequest); @@ -1591,12 +1559,12 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { MapReply mapReply; sendMapRequest(mapRequest); mapReply = receiveMapReply(); - assertEquals(LispAFIConvertor.toContainer(LispAFIConvertor.asIPAfiAddress("4.3.2.1")), mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().get(0) - .getLispAddressContainer()); + assertEquals(LispAddressUtil.asIpv4Rloc("4.3.2.1"), mapReply.getMappingRecordItem().get(0).getMappingRecord() + .getLocatorRecord().get(0).getRloc()); assertCorrectMapReplyTTLAndAction(mapReply, 254, Action.NoAction); } - private void registerForTTL(LispIpv4Address eid) throws SocketTimeoutException { + private void registerForTTL(Eid eid) throws SocketTimeoutException { MapRegister mapRegister = createMapRegister(eid); sendMapRegister(mapRegister); assertMapNotifyRecieved(); @@ -1617,47 +1585,46 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { } */ private void assertCorrectMapReplyTTLAndAction(MapReply mapReply, int expectedTTL, Action expectedAction) { - assertEquals(expectedTTL, mapReply.getEidToLocatorRecord().get(0).getRecordTtl().intValue()); - assertEquals(expectedAction, mapReply.getEidToLocatorRecord().get(0).getAction()); + assertEquals(expectedTTL, mapReply.getMappingRecordItem().get(0).getMappingRecord().getRecordTtl().intValue()); + assertEquals(expectedAction, mapReply.getMappingRecordItem().get(0).getMappingRecord().getAction()); } - private MapRegister createMapRegister(LispAFIAddress eid, LispAFIAddress rloc) { + private MapRegister createMapRegister(Eid eid, Rloc rloc) { MapRegisterBuilder mapRegisterbuilder = new MapRegisterBuilder(); mapRegisterbuilder.setWantMapNotify(true); mapRegisterbuilder.setNonce((long) 8); mapRegisterbuilder.setKeyId((short) 0); - EidToLocatorRecordBuilder etlrBuilder = new EidToLocatorRecordBuilder(); - etlrBuilder.setLispAddressContainer(LispAFIConvertor.toContainer(eid)); + MappingRecordBuilder etlrBuilder = new MappingRecordBuilder(); + etlrBuilder.setEid(eid); etlrBuilder.setMaskLength((short) 24); etlrBuilder.setRecordTtl(254); etlrBuilder.setAuthoritative(false); etlrBuilder.setAction(Action.NoAction); LocatorRecordBuilder recordBuilder = new LocatorRecordBuilder(); - recordBuilder.setLispAddressContainer(LispAFIConvertor.toContainer(rloc)); + recordBuilder.setRloc(rloc); etlrBuilder.setLocatorRecord(new ArrayList()); etlrBuilder.getLocatorRecord().add(recordBuilder.build()); - mapRegisterbuilder.setEidToLocatorRecord(new ArrayList()); - mapRegisterbuilder.getEidToLocatorRecord().add(etlrBuilder.build()); + mapRegisterbuilder.setMappingRecordItem(new ArrayList()); + mapRegisterbuilder.getMappingRecordItem().add( + new MappingRecordItemBuilder().setMappingRecord(etlrBuilder.build()).build()); MapRegister mapRegister = mapRegisterbuilder.build(); return mapRegister; } - private MapRegister createMapRegister(LispIpv4Address eid) { - return createMapRegister(eid, LispAFIConvertor.asIPAfiAddress("4.3.2.1")); + private MapRegister createMapRegister(Eid eid) { + return createMapRegister(eid, LispAddressUtil.asIpv4Rloc("4.3.2.1")); } - private MapRequest createMapRequest(LispAFIAddress eid) { + private MapRequest createMapRequest(Eid eid) { MapRequestBuilder mapRequestBuilder = new MapRequestBuilder(); mapRequestBuilder.setNonce((long) 4); mapRequestBuilder.setPitr(false); - mapRequestBuilder.setSourceEid(new SourceEidBuilder().setLispAddressContainer( - LispAFIConvertor.toContainer(new NoAddressBuilder().setAfi((short) 0).build())).build()); - mapRequestBuilder.setEidRecord(new ArrayList()); - mapRequestBuilder.getEidRecord().add( - new EidRecordBuilder().setMask((short) 32).setLispAddressContainer(LispAFIConvertor.toContainer(eid)).build()); + mapRequestBuilder.setSourceEid(new SourceEidBuilder().setEid(LispAddressUtil.getNoAddressEid()).build()); + mapRequestBuilder.setEidItem(new ArrayList()); + mapRequestBuilder.getEidItem().add(new EidItemBuilder().setEid(eid).build()); mapRequestBuilder.setItrRloc(new ArrayList()); mapRequestBuilder.getItrRloc().add( - new ItrRlocBuilder().setLispAddressContainer(LispAFIConvertor.toContainer(LispAFIConvertor.asIPAfiAddress(ourAddress))).build()); + new ItrRlocBuilder().setRloc(LispAddressUtil.asIpv4Rloc(ourAddress)).build()); MapRequest mr = mapRequestBuilder.build(); return mr; } @@ -1666,7 +1633,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { cleanUP(); String rloc = "127.0.0.3"; int port = LispMessage.PORT_NUM; - LispAFIAddress ipRloc = LispAFIConvertor.asIPAfiAddress(rloc); + Rloc ipRloc = LispAddressUtil.asIpv4Rloc(rloc); sendProxyMapRequest(rloc, port, ipRloc); } @@ -1675,18 +1642,21 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { cleanUP(); String rloc = "127.0.0.3"; int port = 4350; - LcafApplicationDataAddr adLcaf = new LcafApplicationDataAddrBuilder() - .setAfi(AddressFamilyNumberEnum.LCAF.getIanaCode()) - .setLcafType((short) LispCanonicalAddressFormatEnum.APPLICATION_DATA.getLispCode()) - .setAddress( - new org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lcafapplicationdataaddress.AddressBuilder().setPrimitiveAddress( - LispAFIConvertor.asPrimitiveIPAfiAddress(rloc)).build()).setLocalPortLow(new PortNumber(port)).build(); - LOG.info("testNonProxyOtherPort:" + adLcaf.toString()); + + RlocBuilder rb = new RlocBuilder(); + rb.setAddressType(ApplicationDataLcaf.class); + 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()); + Rloc adLcaf = rb.build(); + + LOG.info("testNonProxyOtherPort:" + LispAddressStringifier.getString(adLcaf)); sendProxyMapRequest(rloc, port, adLcaf); } - private class XtrRequestMappingListener implements LispProtoListener { + private class XtrRequestMappingListener implements OdlLispProtoListener { @Override public void onGotMapReply(GotMapReply notification) { @@ -1718,22 +1688,25 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { cleanUP(); configLispPlugin.shouldListenOnXtrPort(true); notificationCalled = false; - final String eid = "10.10.10.10"; + final String eid = "10.10.10.10/32"; String rloc = "127.0.0.3"; int port = LispMessage.XTR_PORT_NUM; - LcafApplicationDataAddr adLcaf = new LcafApplicationDataAddrBuilder() - .setAfi(AddressFamilyNumberEnum.LCAF.getIanaCode()) - .setLcafType((short) LispCanonicalAddressFormatEnum.APPLICATION_DATA.getLispCode()) - .setAddress( - new org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lcafapplicationdataaddress.AddressBuilder().setPrimitiveAddress( - LispAFIConvertor.asPrimitiveIPAfiAddress(rloc)).build()).setLocalPortLow(new PortNumber(port)).build(); + + RlocBuilder rb = new RlocBuilder(); + rb.setAddressType(ApplicationDataLcaf.class); + 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()); + Rloc adLcaf = rb.build(); + final MapRequest mapRequest = createNonProxyMapRequest(eid, adLcaf); ((LispMappingService) lms).getNotificationService().registerNotificationListener(new XtrRequestMappingListener() { @Override public void onXtrRequestMapping(XtrRequestMapping notification) { - assertEquals(((org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.lispaddress.lispaddresscontainer.address.Ipv4) mapRequest.getEidRecord().get(0).getLispAddressContainer().getAddress()).getIpv4Address().getIpv4Address().getValue(), - eid); + assertEquals(((Ipv4Prefix) mapRequest.getEidItem().get(0).getEid().getAddress()) + .getIpv4Prefix().getValue(), eid); notificationCalled = true; LOG.warn("notification arrived"); } @@ -1752,8 +1725,8 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { } - private void sendProxyMapRequest(String rloc, int port, LispAFIAddress adLcaf) throws SocketTimeoutException, SocketException { - String eid = "10.1.0.1"; + private void sendProxyMapRequest(String rloc, int port, Rloc adLcaf) throws SocketTimeoutException, SocketException { + String eid = "10.1.0.1/32"; MapRequest mapRequest = createNonProxyMapRequest(eid, adLcaf); sendMapRequest(mapRequest); DatagramSocket nonProxySocket = new DatagramSocket(new InetSocketAddress(rloc, port)); @@ -1761,18 +1734,18 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { assertEquals(mapRequest.getNonce(), recievedMapRequest.getNonce()); assertEquals(mapRequest.getSourceEid(), recievedMapRequest.getSourceEid()); assertEquals(mapRequest.getItrRloc(), recievedMapRequest.getItrRloc()); - assertEquals(mapRequest.getEidRecord(), recievedMapRequest.getEidRecord()); + assertEquals(mapRequest.getEidItem(), recievedMapRequest.getEidItem()); nonProxySocket.close(); } - private MapRequest createNonProxyMapRequest(String eid, LispAFIAddress adLcaf) throws SocketTimeoutException { - MapRegister mr = createMapRegister(LispAFIConvertor.asIPAfiAddress(eid)); - LocatorRecord record = new LocatorRecordBuilder(mr.getEidToLocatorRecord().get(0).getLocatorRecord().get(0)).setLispAddressContainer( - LispAFIConvertor.toContainer(adLcaf)).build(); - mr.getEidToLocatorRecord().get(0).getLocatorRecord().set(0, record); + private MapRequest createNonProxyMapRequest(String eid, Rloc adLcaf) throws SocketTimeoutException { + MapRegister mr = createMapRegister(LispAddressUtil.asIpv4PrefixEid(eid)); + LocatorRecord record = new LocatorRecordBuilder(mr.getMappingRecordItem().get(0).getMappingRecord() + .getLocatorRecord().get(0)).setRloc(adLcaf).build(); + mr.getMappingRecordItem().get(0).getMappingRecord().getLocatorRecord().set(0, record); sendMapRegister(mr); assertMapNotifyRecieved(); - MapRequest mapRequest = createMapRequest(LispAFIConvertor.asIPAfiAddress(eid)); + MapRequest mapRequest = createMapRequest(LispAddressUtil.asIpv4PrefixEid(eid)); MapRequestBuilder builder = new MapRequestBuilder(mapRequest); builder.setPitr(true); mapRequest = builder.build();