X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=integrationtest%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Flispflowmapping%2Fintegrationtest%2FMappingServiceIntegrationTest.java;h=53adba593d997d4116e3b52293597f87fda0c9d6;hb=5b6148dc4d46adfe2311b8c254598745e930c5a5;hp=8039922c40da581d84d432d6ecf0108d84be947d;hpb=f70e298723c63e326c9ac8d8042b34343458d81a;p=lispflowmapping.git diff --git a/integrationtest/src/test/java/org/opendaylight/lispflowmapping/integrationtest/MappingServiceIntegrationTest.java b/integrationtest/src/test/java/org/opendaylight/lispflowmapping/integrationtest/MappingServiceIntegrationTest.java index 8039922c4..53adba593 100644 --- a/integrationtest/src/test/java/org/opendaylight/lispflowmapping/integrationtest/MappingServiceIntegrationTest.java +++ b/integrationtest/src/test/java/org/opendaylight/lispflowmapping/integrationtest/MappingServiceIntegrationTest.java @@ -7,6 +7,30 @@ */ package org.opendaylight.lispflowmapping.integrationtest; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_A; +import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_A_SB; +import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_B; +import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_B_SB; +import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_C; +import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_C_RLOC_10; +import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_C_SB; +import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_C_WP_100_1_SB; +import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_C_WP_50_2_SB; +import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_D4; +import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_D5; +import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_D_DELETE_SB; +import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_D_WP_100_1_SB; +import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_D_WP_50_2_SB; +import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_E_SB; +import static org.ops4j.pax.exam.CoreOptions.composite; +import static org.ops4j.pax.exam.CoreOptions.maven; +import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFilePut; + import com.google.common.collect.Lists; import com.google.common.collect.Sets; import com.google.common.net.InetAddresses; @@ -27,7 +51,6 @@ import javax.inject.Inject; import org.junit.After; import org.junit.Assert; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.opendaylight.controller.mdsal.it.base.AbstractMdsalTestBase; @@ -42,6 +65,7 @@ import org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer; import org.opendaylight.lispflowmapping.lisp.serializer.MapReplySerializer; import org.opendaylight.lispflowmapping.lisp.serializer.MapRequestSerializer; import org.opendaylight.lispflowmapping.lisp.type.LispMessage; +import org.opendaylight.lispflowmapping.lisp.type.MappingData; import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier; import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil; import org.opendaylight.lispflowmapping.type.sbplugin.IConfigLispSouthboundPlugin; @@ -89,6 +113,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.Ma import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.MappingKeepAlive; 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.SiteId; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.XtrId; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.XtrReplyMapping; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.XtrRequestMapping; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid; @@ -125,29 +151,6 @@ import org.osgi.framework.InvalidSyntaxException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_A; -import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_A_SB; -import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_B; -import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_B_SB; -import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_C; -import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_C_RLOC_10; -import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_C_SB; -import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_C_WP_100_1_SB; -import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_C_WP_50_2_SB; -import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_D4; -import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_D5; -import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_D_DELETE_SB; -import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_D_WP_100_1_SB; -import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_D_WP_50_2_SB; -import static org.opendaylight.lispflowmapping.integrationtest.MultiSiteScenarioUtil.SITE_E_SB; -import static org.ops4j.pax.exam.CoreOptions.composite; -import static org.ops4j.pax.exam.CoreOptions.maven; -import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFilePut; - @RunWith(PaxExam.class) @ExamReactorStrategy(PerClass.class) public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { @@ -169,6 +172,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { public static final String ODL = "org.opendaylight.controller"; public static final String YANG = "org.opendaylight.yangtools"; + private static final int MULTI_SITE_SLEEP_TIME = 1; private static final int MAX_NOTIFICATION_RETRYS = 20; private static final MappingAuthkey NULL_AUTH_KEY = new MappingAuthkeyBuilder().setKeyType(0).build(); @@ -217,16 +221,15 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { if (socket != null) { socket.close(); } -// if (connection != null) { -// connection.disconnect(); -// } + // reset mapping record validity to default value + ConfigIni.getInstance().setRegistrationValiditySb(200000L); } @Before public void before() throws Exception { areWeReady(); mapService.setLookupPolicy(IMappingService.LookupPolicy.NB_FIRST); - mapService.setMappingOverwrite(true); + mapService.setMappingMerge(false); locatorEid = LispAddressUtil.asIpv4Rloc("4.3.2.1"); socket = initSocket(socket, LispMessage.PORT_NUM); @@ -389,6 +392,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { @Test public void testTimeOuts() throws Exception { + timedOutMappingRecord(); mapRequestMapRegisterAndMapRequestTestTimeout(); //mapRequestMapRegisterAndMapRequestTestNativelyForwardTimeoutResponse(); TODO commented because it needs NB } @@ -406,7 +410,6 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { testRepeatedSmr(); } - @Ignore @Test public void testMultiSite() throws Exception { testMultiSiteScenarioA(); @@ -426,7 +429,8 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { final InstanceIdType iid = new InstanceIdType(1L); final Eid eid1 = LispAddressUtil.asIpv4Eid("1.1.1.1", 1L); - final Eid eid2 = LispAddressUtil.asIpv4Eid("2.2.2.2", 1L); + final int expectedSmrs1 = 2; + final int expectedSmrs2 = 3; /* set auth */ final Eid eid = LispAddressUtil.asIpv4PrefixBinaryEid("0.0.0.0/0", iid); @@ -435,12 +439,9 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { /* add subscribers */ final String subscriberSrcRloc1 = "127.0.0.3"; final String subscriberSrcRloc2 = "127.0.0.4"; - final Set subscriberSet = Sets.newHashSet( - newSubscriber(eid1, subscriberSrcRloc1), newSubscriber(eid2, subscriberSrcRloc2)); - mapService.addData(MappingOrigin.Southbound, eid1, SubKeys.SUBSCRIBERS, subscriberSet); - - final int expectedSmrs1 = 2; - final int expectedSmrs2 = 3; + final Set subscriberSet1 = Sets.newHashSet(newSubscriber(eid1, subscriberSrcRloc1), + newSubscriber(eid1, subscriberSrcRloc2)); + mapService.addData(MappingOrigin.Southbound, eid1, SubKeys.SUBSCRIBERS, subscriberSet1); final SocketReader reader1 = startSocketReader(subscriberSrcRloc1, 15000); final SocketReader reader2 = startSocketReader(subscriberSrcRloc2, 15000); @@ -449,24 +450,26 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { /* add mapping */ final MappingRecord mapping1 = new MappingRecordBuilder() .setEid(eid1).setTimestamp(System.currentTimeMillis()).setRecordTtl(1440).build(); - mapService.addMapping(MappingOrigin.Northbound, mapping1.getEid(), null, mapping1, false); + mapService.addMapping(MappingOrigin.Northbound, eid1, null, new MappingData(mapping1)); sleepForMilliseconds((timeout * expectedSmrs1) - 1500); - final List requests1 = processBuffers(reader1, subscriberSrcRloc1, expectedSmrs1); + final List requests1 = processSmrPackets(reader1, subscriberSrcRloc1, expectedSmrs1); final MapReply mapReply1 = lms.handleMapRequest( new MapRequestBuilder(requests1.get(0)) .setItrRloc(Lists.newArrayList(new ItrRlocBuilder() .setRloc(LispAddressUtil.asIpv4Rloc(subscriberSrcRloc1)).build())) + .setEidItem(Lists.newArrayList(new EidItemBuilder().setEid(eid1).build())) .setSmrInvoked(true) .setSmr(false).build()); // sleep to get 1 extra smr request sleepForMilliseconds(timeout * 1); - final List requests2 = processBuffers(reader2, subscriberSrcRloc2, expectedSmrs2); + final List requests2 = processSmrPackets(reader2, subscriberSrcRloc2, expectedSmrs2); final MapReply mapReply2 = lms.handleMapRequest( new MapRequestBuilder(requests2.get(0)) .setItrRloc(Lists.newArrayList(new ItrRlocBuilder() .setRloc(LispAddressUtil.asIpv4Rloc(subscriberSrcRloc2)).build())) + .setEidItem(Lists.newArrayList(new EidItemBuilder().setEid(eid1).build())) .setSmrInvoked(true) .setSmr(false).build()); @@ -474,7 +477,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { assertEquals(expectedSmrs1, requests1.size()); assertEquals(expectedSmrs2, requests2.size()); assertEquals((long) mapReply1.getNonce(), (long) requests1.get(0).getNonce()); - assertEquals((long) mapReply2.getNonce(), (long) requests1.get(0).getNonce()); + assertEquals((long) mapReply2.getNonce(), (long) requests2.get(0).getNonce()); assertNextBufferEmpty(reader1); assertNextBufferEmpty(reader2); @@ -493,7 +496,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { return SocketReader.startReadingInStandaloneThread(receivingSocket, timeout); } - private List processBuffers(SocketReader reader, String address, int expectedSmrs) { + private List processSmrPackets(SocketReader reader, String address, int expectedSmrs) { InetAddress inetAddress = null; try { inetAddress = InetAddress.getByName(address); @@ -612,10 +615,14 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { final Eid eid = LispAddressUtil.asIpv4PrefixBinaryEid("0.0.0.0/0", iid); mapService.addAuthenticationKey(eid, NULL_AUTH_KEY); - mapService.addMapping(MappingOrigin.Northbound, mapRecordNbLeft.getEid(), null, mapRecordNbLeft, false); - mapService.addMapping(MappingOrigin.Northbound, mapRecordNbRight.getEid(), null, mapRecordNbRight, false); - mapService.addMapping(MappingOrigin.Southbound, mapRecordSbLeft.getEid(), null, mapRecordSbLeft, false); - mapService.addMapping(MappingOrigin.Southbound, mapRecordSbRight.getEid(), null, mapRecordSbRight, false); + mapService.addMapping(MappingOrigin.Northbound, mapRecordNbLeft.getEid(), null, + new MappingData(mapRecordNbLeft)); + mapService.addMapping(MappingOrigin.Northbound, mapRecordNbRight.getEid(), null, + new MappingData(mapRecordNbRight)); + mapService.addMapping(MappingOrigin.Southbound, mapRecordSbLeft.getEid(), null, + new MappingData(mapRecordSbLeft, System.currentTimeMillis())); + mapService.addMapping(MappingOrigin.Southbound, mapRecordSbRight.getEid(), null, + new MappingData(mapRecordSbRight, System.currentTimeMillis())); restartSocket(); sleepForSeconds(2); @@ -642,6 +649,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { */ public void testMultiSiteScenarioA() throws IOException { cleanUP(); + ConfigIni.getInstance().setSmrRetryCount(1); final MultiSiteScenario multiSiteScenario = new MultiSiteScenario(mapService, lms); multiSiteScenario.setCommonAuthentication(); @@ -653,7 +661,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { multiSiteScenario.storeSouthboundMappings(false, SITE_A, SITE_B, SITE_C, SITE_D4, SITE_D5); multiSiteScenario.storeNorthMappingSrcDst(SITE_B, SITE_C); multiSiteScenario.storeNorthMappingNegative(SITE_C, Action.Drop); - sleepForSeconds(2); + sleepForSeconds(MULTI_SITE_SLEEP_TIME); multiSiteScenario.assertPingWorks(SITE_A, 5, SITE_B, 4); multiSiteScenario.assertPingWorks(SITE_B, 5, SITE_C, 4); multiSiteScenario.assertPingFails(SITE_A, 1, SITE_C, 4); @@ -663,7 +671,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { // 1) 192.0.2.5/32 // 2) 192.0.1.1/32 multiSiteScenario.storeNorthMappingSrcDst(SITE_A, SITE_C); - sleepForSeconds(2); + sleepForSeconds(MULTI_SITE_SLEEP_TIME); multiSiteScenario.checkSMR(socketReader, SITE_C.getEidPrefix(), SITE_B.getHost(5), SITE_A.getHost(1)); multiSiteScenario.assertPingWorks(SITE_A, 5, SITE_C, 4); multiSiteScenario.assertPingWorks(SITE_B, 5, SITE_C, 4); @@ -676,7 +684,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { // 3) 192.0.1.5/32 // 4) 192.0.4.5/32 multiSiteScenario.deleteNorthMappingNegative(SITE_C); - sleepForSeconds(2); + sleepForSeconds(MULTI_SITE_SLEEP_TIME); multiSiteScenario.checkSMR(socketReader, SITE_C.getEidPrefix(), SITE_B.getHost(5), SITE_A.getHost(1), SITE_A .getHost(5), SITE_D4.getHost(5)); @@ -686,7 +694,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { // following action should trigger generatting of SMR messages: // 1) 192.0.4.5/32 multiSiteScenario.storeNorthMappingSrcDst(SITE_B, SITE_C_RLOC_10); - sleepForSeconds(2); + sleepForSeconds(MULTI_SITE_SLEEP_TIME); multiSiteScenario.checkSMR(socketReader, SITE_C.getEidPrefix(), SITE_D4.getHost(5)); //way of testing ping - get RLOC for mapping src-dst and compare it with awaited value doesn't test //that ping won't be successfull @@ -697,7 +705,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { // 1) 192.0.4.5/32 // 2) 192.0.2.5/32 multiSiteScenario.storeNorthMappingNegative(SITE_C, Action.Drop); - sleepForSeconds(2); + sleepForSeconds(MULTI_SITE_SLEEP_TIME); multiSiteScenario.checkSMR(socketReader, SITE_C.getEidPrefix(), SITE_D4.getHost(5), SITE_B.getHost(5)); multiSiteScenario.assertPingFails(SITE_D4, 5, SITE_C, 4); @@ -706,7 +714,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { //TEST CASE 7 multiSiteScenario.deleteNorthMapingSrcDst(SITE_A, SITE_C); - sleepForSeconds(2); + sleepForSeconds(MULTI_SITE_SLEEP_TIME); // following action should trigger generatting of SMR messages: // 1) 192.0.4.5/32 // 2) 192.0.2.5/32 @@ -719,7 +727,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { // 2) 192.0.2.5/32 // 3) 192.0.5.5/32 multiSiteScenario.storeNorthMappingSrcDst(SITE_B, SITE_C); - sleepForSeconds(2); + sleepForSeconds(MULTI_SITE_SLEEP_TIME); multiSiteScenario.checkSMR(socketReader, SITE_C.getEidPrefix(), SITE_D5.getHost(5), SITE_D4.getHost(5), SITE_B.getHost(5)); @@ -734,7 +742,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { // 3) 192.0.5.5/32 // 4) 192.0.1.1/32 multiSiteScenario.deleteNorthMapingSrcDst(SITE_B, SITE_C); - sleepForSeconds(2); + sleepForSeconds(MULTI_SITE_SLEEP_TIME); multiSiteScenario.checkSMR(socketReader, SITE_C.getEidPrefix(), SITE_D5.getHost(5), SITE_D4.getHost(5), SITE_B.getHost(5), SITE_A.getHost(1)); @@ -749,7 +757,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { // 3) 192.0.5.5/32 // 4) 192.0.1.1/32 multiSiteScenario.deleteNorthMappingNegative(SITE_C); - sleepForSeconds(2); + sleepForSeconds(MULTI_SITE_SLEEP_TIME); multiSiteScenario.checkSMR(socketReader, SITE_C.getEidPrefix(), SITE_D5.getHost(5), SITE_D4.getHost(5), SITE_B.getHost(5), SITE_A.getHost(1)); @@ -774,7 +782,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { final SocketReader socketReader = SocketReader.startReadingInStandaloneThread(socket); mapService.setLookupPolicy(IMappingService.LookupPolicy.NB_AND_SB); - mapService.setMappingOverwrite(false); + mapService.setMappingMerge(true); //TEST CASE 1 multiSiteScenario.storeSouthboundMappings(true, SITE_A_SB, SITE_B_SB, SITE_C_WP_100_1_SB, SITE_D_WP_100_1_SB, @@ -782,7 +790,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { multiSiteScenario.storeNorthMappingIpPrefix(SITE_A_SB); multiSiteScenario.storeNorthMappingIpPrefix(SITE_B_SB); multiSiteScenario.storeNorthMappingIpPrefix(SITE_C_WP_50_2_SB, SITE_D_WP_50_2_SB); - sleepForSeconds(2); + sleepForSeconds(MULTI_SITE_SLEEP_TIME); multiSiteScenario.assertPingWorks(SITE_A_SB, 5, SITE_C_WP_50_2_SB, 4, SITE_D_WP_50_2_SB); multiSiteScenario.assertPingWorks(SITE_B_SB, 5, SITE_C_WP_50_2_SB, 4, SITE_D_WP_50_2_SB); @@ -791,14 +799,14 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { // 1) 192.0.2.5/32 // 2) 192.0.1.5/32 multiSiteScenario.storeNorthMappingSrcDst(SITE_A_SB, SITE_C_WP_50_2_SB, SITE_D_WP_50_2_SB); - sleepForSeconds(2); + sleepForSeconds(MULTI_SITE_SLEEP_TIME); multiSiteScenario.checkSMR(socketReader, SITE_C.getEidPrefix(), SITE_B_SB.getHost(5), SITE_A_SB.getHost(5)); // following action should trigger generatting of SMR messages: // 1) 192.0.2.5/32 // 2) 192.0.1.5/32 multiSiteScenario.storeNorthMappingNegative(SITE_C_SB, Action.Drop); - sleepForSeconds(2); + sleepForSeconds(MULTI_SITE_SLEEP_TIME); multiSiteScenario.checkSMR(socketReader, SITE_C.getEidPrefix(), SITE_B_SB.getHost(5), SITE_A_SB.getHost(5)); multiSiteScenario.assertPingWorks(SITE_A_SB, 5, SITE_C_WP_50_2_SB, 4, SITE_D_WP_50_2_SB); @@ -810,13 +818,13 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { // 1) 192.0.2.5/32 // 2) 192.0.1.5/32 multiSiteScenario.storeNorthMappingSrcDst(SITE_A_SB, SITE_C_WP_50_2_SB); - sleepForSeconds(2); + sleepForSeconds(MULTI_SITE_SLEEP_TIME); multiSiteScenario.checkSMR(socketReader, SITE_C.getEidPrefix(), SITE_B_SB.getHost(5), SITE_A_SB.getHost(5)); multiSiteScenario.assertPingWorks(SITE_A_SB, 5, SITE_C_WP_50_2_SB, 4); //TEST CASE 4 multiSiteScenario.storeNorthMappingSrcDst(SITE_B_SB, SITE_C_WP_50_2_SB, SITE_D_WP_50_2_SB); - sleepForSeconds(2); + sleepForSeconds(MULTI_SITE_SLEEP_TIME); // following action should trigger generatting of SMR messages: // 1) 192.0.2.5/32 // 2) 192.0.1.5/32 @@ -825,7 +833,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { //TEST CASE 5 multiSiteScenario.deleteSouthboundMappings(SITE_D_DELETE_SB); - sleepForSeconds(2); + sleepForSeconds(MULTI_SITE_SLEEP_TIME); // following action should trigger generatting of SMR messages: // 1) 192.0.2.5/32 // 2) 192.0.1.5/32 @@ -835,14 +843,14 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { //TEST CASE 6 multiSiteScenario.deleteNorthMapingSrcDst(SITE_A_SB, SITE_C_WP_50_2_SB); - sleepForSeconds(2); + sleepForSeconds(MULTI_SITE_SLEEP_TIME); // following action should trigger generatting of SMR messages: // 1) 192.0.2.5/32 // 2) 192.0.1.5/32 multiSiteScenario.checkSMR(socketReader, SITE_C.getEidPrefix(), SITE_B_SB.getHost(5), SITE_A_SB.getHost(5)); multiSiteScenario.deleteNorthMapingSrcDst(SITE_B_SB, SITE_C_WP_50_2_SB); - sleepForSeconds(2); + sleepForSeconds(MULTI_SITE_SLEEP_TIME); multiSiteScenario.assertPingFails(SITE_B_SB, 5, SITE_C_WP_50_2_SB, 4); socketReader.stopReading(); @@ -977,7 +985,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { public void testMapRegisterOverwritesNoSubkey() throws SocketTimeoutException { cleanUP(); - mapService.setMappingOverwrite(true); + mapService.setMappingMerge(false); Eid eid = LispAddressUtil.asIpv4PrefixBinaryEid("1.2.3.4/32"); Rloc rloc1Value = LispAddressUtil.asIpv4Rloc("4.3.2.1"); Rloc rloc2Value = LispAddressUtil.asIpv4Rloc("4.3.2.2"); @@ -989,7 +997,7 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { public void testMapRegisterDoesntOverwritesNoSubkey() throws SocketTimeoutException { cleanUP(); - mapService.setMappingOverwrite(false); + mapService.setMappingMerge(true); Eid eid = LispAddressUtil.asIpv4PrefixBinaryEid("1.2.3.4/32"); Rloc rloc1Value = LispAddressUtil.asIpv4Rloc("4.3.2.1"); Rloc rloc2Value = LispAddressUtil.asIpv4Rloc("4.3.2.2"); @@ -2078,6 +2086,37 @@ public class MappingServiceIntegrationTest extends AbstractMdsalTestBase { } + private void timedOutMappingRecord() { + cleanUP(); + mapService.setMappingMerge(true); + // mapping expires after 1 second + ConfigIni.getInstance().setRegistrationValiditySb(1000L); + + final Eid eid = LispAddressUtil.asIpv4PrefixBinaryEid("1.2.3.4/32", new InstanceIdType(10L)); + final XtrId xtrId = new XtrId(new byte[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}); + final SiteId siteId = new SiteId(new byte[]{1, 2, 3, 4, 5, 6, 7, 8}); + + final LocatorRecord locatorRecord = new LocatorRecordBuilder() + .setRloc(LispAddressUtil.asIpv4Rloc("1.1.1.1")).setLocatorId("locator-id").build(); + final MappingRecord mappingRecord = new MappingRecordBuilder() + .setEid(eid) + .setSiteId(siteId) + .setRecordTtl(1000) + .setXtrId(xtrId) + .setAction(Action.NoAction) + .setAuthoritative(true) + .setLocatorRecord(Lists.newArrayList()).build(); + mappingRecord.getLocatorRecord().add(locatorRecord); + + mapService.addAuthenticationKey(eid, NULL_AUTH_KEY); + mapService.addMapping(MappingOrigin.Southbound, eid, siteId, + new MappingData(mappingRecord, System.currentTimeMillis())); + sleepForSeconds(2); + + MappingRecord resultRecord = (MappingRecord) mapService.getMapping(MappingOrigin.Southbound, eid); + assertNull(resultRecord); + } + private void testTTLAfterClean(MapRequest mapRequest) throws SocketTimeoutException { MapReply mapReply; sendMapRequest(mapRequest);