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.rloc.container.Rloc;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.rloc.container.RlocBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.mapping.authkey.container.MappingAuthkey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.mapping.authkey.container.MappingAuthkeyBuilder;
-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.opendaylight.lfm.lisp.proto.rev151105.mapping.authkey.container.MappingAuthkey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.authkey.container.MappingAuthkeyBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.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.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.lisp.address.types.rev151105.lisp.address.address.source.dest.key.SourceDestKeyBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.PaxExam;
import org.ops4j.pax.exam.util.Filter;
public class MappingServiceIntegrationTest extends AbstractMdsalTestBase {
private static final Logger LOG = LoggerFactory.getLogger(MappingServiceIntegrationTest.class);
+ /**
+ * Defines how many attempt to create instance of DatagramSocket will be done before giving up.
+ */
+ private static final int NUM_OF_ATTEMPTS_TO_CREATE_SOCKET = 2;
+
private byte[] mapRequestPacket;
private byte[] mapRegisterPacketWithNotify;
private byte[] mapRegisterPacketWithoutNotify;
public static final String YANG = "org.opendaylight.yangtools";
private static final int MAX_NOTIFICATION_RETRYS = 20;
private static final MappingAuthkey NULL_AUTH_KEY = new MappingAuthkeyBuilder().setKeyType(0).build();
- private static final MappingAuthkey AUTH_KEY =
- new MappingAuthkeyBuilder().setKeyType(1).setKeyString("password").build();
-
- @Override
- public String getModuleName() {
- return "mappingservice-impl";
- }
-
- @Override
- public String getInstanceName() {
- return "mappingservice-default";
- }
// This is temporary, since the properties in the pom file are not picked up
@Override
@Test
public void testLCAFs() throws Exception {
- //registerAndQuery__SrcDestLCAF();
- //registerAndQuery__SrcDestLCAFOverlap();
- //registerAndQuery__KeyValueLCAF();
+ registerAndQuery__SrcDestLCAF();
+ registerAndQuery__SrcDestLCAFOverlap();
+ registerAndQuery__KeyValueLCAF();
//registerAndQuery__ListLCAF();
//registerAndQuery__ApplicationData();
//registerAndQuery__TrafficEngineering();
registerQueryRegisterWithSmr();
}
+ @Test
+ public void testMultiSite() throws Exception {
+ testMultiSiteScenarioA();
+ testMultiSiteScenarioB();
+ }
/**
* TEST SCENARIO A
*/
- @Test
public void testMultiSiteScenarioA() throws IOException {
cleanUP();
/**
* TEST SCENARIO B
*/
- @Test
public void testMultiSiteScenarioB() throws IOException {
cleanUP();
public void mapRegisterWithMapNotify() throws SocketTimeoutException {
cleanUP();
mapService.addAuthenticationKey(LispAddressUtil.asIpv4PrefixBinaryEid("153.16.254.1/32"), NULL_AUTH_KEY);
- sleepForSeconds(1);
+
+ sleepForSeconds(2);
sendPacket(mapRegisterPacketWithNotify);
MapNotify reply = receiveMapNotify();
assertEquals(7, reply.getNonce().longValue());
// ------------------------------- LCAF Tests ---------------------------
- @Test
public void registerAndQuery__SrcDestLCAF() throws SocketTimeoutException {
cleanUP();
String ipPrefix = "10.20.30.200/32";
SourceDestKeyBuilder builder = new SourceDestKeyBuilder();
builder.setSource(new SimpleAddress(new IpPrefix(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
- .ietf.inet.types.rev100924.Ipv4Prefix(ipPrefix))));
+ .ietf.inet.types.rev130715.Ipv4Prefix(ipPrefix))));
builder.setDest(new SimpleAddress(new MacAddress(macString)));
EidBuilder eb = new EidBuilder();
assertEquals(macString, receivedMAC.getValue());
}
- @Test
public void registerAndQuery__SrcDestLCAFOverlap() throws SocketTimeoutException {
cleanUP();
String ipString1 = "10.10.10.0";
assertEquals(LispAddressUtil.asIpv4PrefixBinaryEid(ipPrefix2), fromNetwork);
}
- @Test
public void registerAndQuery__KeyValueLCAF() throws SocketTimeoutException {
cleanUP();
String ipString = "10.20.30.200";
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());
+ .yang.ietf.inet.types.rev130715.Ipv4Prefix(ipString)).build());
MapReply reply = registerAddressAndQuery(eb.build());
}
private DatagramSocket initSocket(DatagramSocket socket, int port) {
- try {
- socket = new DatagramSocket(new InetSocketAddress(ourAddress, port));
- } catch (SocketException e) {
- e.printStackTrace();
- fail();
+ for (int i=0; i < NUM_OF_ATTEMPTS_TO_CREATE_SOCKET; i++) {
+ try {
+ return new DatagramSocket(new InetSocketAddress(ourAddress, port));
+ } catch (SocketException e) {
+ LOG.error("Can't initialize socket for {}", ourAddress, e);
+ }
}
- return socket;
+ fail();
+ return null;
}
private byte[] extractWSUdpByteArray(String wiresharkHex) {