diff options
Diffstat (limited to 'lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/util/EidTranslatorTest.java')
-rwxr-xr-x | lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/util/EidTranslatorTest.java | 172 |
1 files changed, 148 insertions, 24 deletions
diff --git a/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/util/EidTranslatorTest.java b/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/util/EidTranslatorTest.java index 096eca7fd..6e09f2faa 100755 --- a/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/util/EidTranslatorTest.java +++ b/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/util/EidTranslatorTest.java @@ -16,23 +16,39 @@ package io.fd.hc2vpp.lisp.translate.util; +import static io.fd.hc2vpp.lisp.translate.read.dump.executor.params.MappingsDumpParams.EidType.IPV4; +import static io.fd.hc2vpp.lisp.translate.read.dump.executor.params.MappingsDumpParams.EidType.IPV4_PREFIX; +import static io.fd.hc2vpp.lisp.translate.read.dump.executor.params.MappingsDumpParams.EidType.IPV6; +import static io.fd.hc2vpp.lisp.translate.read.dump.executor.params.MappingsDumpParams.EidType.IPV6_PREFIX; +import static io.fd.hc2vpp.lisp.translate.read.dump.executor.params.MappingsDumpParams.EidType.MAC; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.util.Arrays; import org.junit.Test; 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.Ipv6Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv4Afi; +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.Ipv6Afi; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv6PrefixAfi; 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.lisp.address.address.*; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4Builder; +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.Ipv6; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv6Builder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv6Prefix; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv6PrefixBuilder; +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.MacBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.adjacencies.grouping.adjacencies.adjacency.LocalEid; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.adjacencies.grouping.adjacencies.adjacency.RemoteEid; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.dp.subtable.grouping.remote.mappings.remote.mapping.Eid; -import java.util.Arrays; - -import static io.fd.hc2vpp.lisp.translate.read.dump.executor.params.MappingsDumpParams.EidType.*; -import static org.junit.Assert.*; - public class EidTranslatorTest implements EidTranslator { private static final String MAC_STRING = "bf:bf:bf:bf:bf:bf"; @@ -50,6 +66,8 @@ public class EidTranslatorTest implements EidTranslator { new Ipv4Address(IPV4_STRING)) .build(); private static final byte[] IPV_ADDRESS_BYTES = {-64, -88, 2, 1}; + private static final String NORMALIZED_V6_PREFIX = "2001:db8:a0b:12f0::/64"; + private static final String NORMALIZED_V4_PREFIX = "192.168.2.0/24"; @Test public void testGetEidType() { @@ -68,33 +86,53 @@ public class EidTranslatorTest implements EidTranslator { @Test public void testGetPrefixLength() { - assertEquals(32, getPrefixLength(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.dp.subtable.grouping.local.mappings.local.mapping.EidBuilder() - .setAddress(IPV4_ADDRESS).build())); - assertEquals(-128, getPrefixLength(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.dp.subtable.grouping.local.mappings.local.mapping.EidBuilder() - .setAddress(IPV6_ADDRESS).build())); - assertEquals(0, getPrefixLength(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.dp.subtable.grouping.local.mappings.local.mapping.EidBuilder() - .setAddress(MAC_ADDRES).build())); + assertEquals(32, getPrefixLength( + new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.dp.subtable.grouping.local.mappings.local.mapping.EidBuilder() + .setAddress(IPV4_ADDRESS).build())); + assertEquals(-128, getPrefixLength( + new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.dp.subtable.grouping.local.mappings.local.mapping.EidBuilder() + .setAddress(IPV6_ADDRESS).build())); + assertEquals(0, getPrefixLength( + new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.dp.subtable.grouping.local.mappings.local.mapping.EidBuilder() + .setAddress(MAC_ADDRES).build())); } @Test public void testGetArrayAsEidRemoteIpv4() { - final Eid eid = getArrayAsEidRemote(IPV4, IPV_ADDRESS_BYTES, 10); + final Eid eid = getArrayAsEidRemote(IPV4, IPV_ADDRESS_BYTES, DEFAULT_V4_PREFIX, 10); assertEquals(IPV4_STRING, ((Ipv4) eid.getAddress()).getIpv4().getValue()); assertEquals(10, eid.getVirtualNetworkId().getValue().intValue()); assertEquals(Ipv4Afi.class, eid.getAddressType()); } @Test + public void testGetArrayAsEidRemoteIpv4Prefix() { + final Eid eid = getArrayAsEidRemote(IPV4_PREFIX, IPV_ADDRESS_BYTES, (byte) 24, 10); + assertEquals(NORMALIZED_V4_PREFIX, ((Ipv4Prefix) eid.getAddress()).getIpv4Prefix().getValue()); + assertEquals(10, eid.getVirtualNetworkId().getValue().intValue()); + assertEquals(Ipv4PrefixAfi.class, eid.getAddressType()); + } + + @Test public void testGetArrayAsEidRemoteIpv6() { - final Eid eid = getArrayAsEidRemote(IPV6, IPV6_ADDRESS_BYTES, 12); + final Eid eid = getArrayAsEidRemote(IPV6, IPV6_ADDRESS_BYTES, DEFAULT_V6_PREFIX, 12); assertEquals(IPV6_STRING, ((Ipv6) eid.getAddress()).getIpv6().getValue()); assertEquals(12, eid.getVirtualNetworkId().getValue().intValue()); assertEquals(Ipv6Afi.class, eid.getAddressType()); } @Test + public void testGetArrayAsEidRemoteIpv6Prefix() { + final Eid eid = getArrayAsEidRemote(IPV6_PREFIX, IPV6_ADDRESS_BYTES, (byte) 64, 12); + assertEquals(NORMALIZED_V6_PREFIX, ((Ipv6Prefix) eid.getAddress()).getIpv6Prefix().getValue()); + assertEquals(12, eid.getVirtualNetworkId().getValue().intValue()); + assertEquals(Ipv6PrefixAfi.class, eid.getAddressType()); + } + + + @Test public void testGetArrayAsEidRemoteMac() { - final Eid eid = getArrayAsEidRemote(MAC, MAC_ADDRESS_BYTES, 13); + final Eid eid = getArrayAsEidRemote(MAC, MAC_ADDRESS_BYTES, (byte) 0, 13); assertEquals(MAC_STRING, ((Mac) eid.getAddress()).getMac().getValue()); assertEquals(13, eid.getVirtualNetworkId().getValue().intValue()); assertEquals(MacAfi.class, eid.getAddressType()); @@ -102,23 +140,39 @@ public class EidTranslatorTest implements EidTranslator { @Test public void testGetArrayAsLocalEidIpv4() { - final LocalEid eid = getArrayAsLocalEid(IPV4, IPV_ADDRESS_BYTES, 10); + final LocalEid eid = getArrayAsLocalEid(IPV4, IPV_ADDRESS_BYTES, DEFAULT_V4_PREFIX, 10); assertEquals(IPV4_STRING, ((Ipv4) eid.getAddress()).getIpv4().getValue()); assertEquals(10, eid.getVirtualNetworkId().getValue().intValue()); assertEquals(Ipv4Afi.class, eid.getAddressType()); } @Test + public void testGetArrayAsLocalEidIpv4Prefix() { + final LocalEid eid = getArrayAsLocalEid(IPV4_PREFIX, IPV_ADDRESS_BYTES, (byte) 24, 10); + assertEquals(NORMALIZED_V4_PREFIX, ((Ipv4Prefix) eid.getAddress()).getIpv4Prefix().getValue()); + assertEquals(10, eid.getVirtualNetworkId().getValue().intValue()); + assertEquals(Ipv4PrefixAfi.class, eid.getAddressType()); + } + + @Test public void testGetArrayAsLocalEidIpv6() { - final LocalEid eid = getArrayAsLocalEid(IPV6, IPV6_ADDRESS_BYTES, 12); + final LocalEid eid = getArrayAsLocalEid(IPV6, IPV6_ADDRESS_BYTES, DEFAULT_V6_PREFIX, 12); assertEquals(IPV6_STRING, ((Ipv6) eid.getAddress()).getIpv6().getValue()); assertEquals(12, eid.getVirtualNetworkId().getValue().intValue()); assertEquals(Ipv6Afi.class, eid.getAddressType()); } @Test + public void testGetArrayAsLocalEidIpv6Prefix() { + final LocalEid eid = getArrayAsLocalEid(IPV6_PREFIX, IPV6_ADDRESS_BYTES, (byte) 64, 12); + assertEquals(NORMALIZED_V6_PREFIX, ((Ipv6Prefix) eid.getAddress()).getIpv6Prefix().getValue()); + assertEquals(12, eid.getVirtualNetworkId().getValue().intValue()); + assertEquals(Ipv6PrefixAfi.class, eid.getAddressType()); + } + + @Test public void testGetArrayAsLocalEidMac() { - final LocalEid eid = getArrayAsLocalEid(MAC, MAC_ADDRESS_BYTES, 13); + final LocalEid eid = getArrayAsLocalEid(MAC, MAC_ADDRESS_BYTES, (byte) 0, 13); assertEquals(MAC_STRING, ((Mac) eid.getAddress()).getMac().getValue()); assertEquals(13, eid.getVirtualNetworkId().getValue().intValue()); assertEquals(MacAfi.class, eid.getAddressType()); @@ -126,23 +180,39 @@ public class EidTranslatorTest implements EidTranslator { @Test public void testGetArrayAsRemoteEidIpv4() { - final RemoteEid eid = getArrayAsRemoteEid(IPV4, IPV_ADDRESS_BYTES, 10); + final RemoteEid eid = getArrayAsRemoteEid(IPV4, IPV_ADDRESS_BYTES, DEFAULT_V4_PREFIX, 10); assertEquals(IPV4_STRING, ((Ipv4) eid.getAddress()).getIpv4().getValue()); assertEquals(10, eid.getVirtualNetworkId().getValue().intValue()); assertEquals(Ipv4Afi.class, eid.getAddressType()); } @Test + public void testGetArrayAsRemoteEidIpv4Prefix() { + final RemoteEid eid = getArrayAsRemoteEid(IPV4_PREFIX, IPV_ADDRESS_BYTES, (byte) 24, 10); + assertEquals(NORMALIZED_V4_PREFIX, ((Ipv4Prefix) eid.getAddress()).getIpv4Prefix().getValue()); + assertEquals(10, eid.getVirtualNetworkId().getValue().intValue()); + assertEquals(Ipv4PrefixAfi.class, eid.getAddressType()); + } + + @Test public void testGetArrayAsRemoteEidIpv6() { - final RemoteEid eid = getArrayAsRemoteEid(IPV6, IPV6_ADDRESS_BYTES, 12); + final RemoteEid eid = getArrayAsRemoteEid(IPV6, IPV6_ADDRESS_BYTES, DEFAULT_V6_PREFIX, 12); assertEquals(IPV6_STRING, ((Ipv6) eid.getAddress()).getIpv6().getValue()); assertEquals(12, eid.getVirtualNetworkId().getValue().intValue()); assertEquals(Ipv6Afi.class, eid.getAddressType()); } @Test + public void testGetArrayAsRemoteEidIpv6Prefix() { + final RemoteEid eid = getArrayAsRemoteEid(IPV6_PREFIX, IPV6_ADDRESS_BYTES, (byte) 64, 12); + assertEquals(NORMALIZED_V6_PREFIX, ((Ipv6Prefix) eid.getAddress()).getIpv6Prefix().getValue()); + assertEquals(12, eid.getVirtualNetworkId().getValue().intValue()); + assertEquals(Ipv6PrefixAfi.class, eid.getAddressType()); + } + + @Test public void testGetArrayAsRemoteEidMac() { - final RemoteEid eid = getArrayAsRemoteEid(MAC, MAC_ADDRESS_BYTES, 13); + final RemoteEid eid = getArrayAsRemoteEid(MAC, MAC_ADDRESS_BYTES, (byte) 0, 13); assertEquals(MAC_STRING, ((Mac) eid.getAddress()).getMac().getValue()); assertEquals(13, eid.getVirtualNetworkId().getValue().intValue()); assertEquals(MacAfi.class, eid.getAddressType()); @@ -150,17 +220,27 @@ public class EidTranslatorTest implements EidTranslator { @Test public void testGetArrayAsEidStringIpv4() { - assertEquals(IPV4_STRING, getArrayAsEidString(IPV4, IPV_ADDRESS_BYTES)); + assertEquals(IPV4_STRING, getArrayAsEidString(IPV4, IPV_ADDRESS_BYTES, DEFAULT_V4_PREFIX)); + } + + @Test + public void testGetArrayAsEidStringIpv4Prefix() { + assertEquals(NORMALIZED_V4_PREFIX, getArrayAsEidString(IPV4, IPV_ADDRESS_BYTES, (byte) 24)); } @Test public void testGetArrayAsEidStringIpv6() { - assertEquals(IPV6_STRING, getArrayAsEidString(IPV6, IPV6_ADDRESS_BYTES)); + assertEquals(IPV6_STRING, getArrayAsEidString(IPV6, IPV6_ADDRESS_BYTES, DEFAULT_V6_PREFIX)); + } + + @Test + public void testGetArrayAsEidStringIpv6Prefix() { + assertEquals(NORMALIZED_V6_PREFIX, getArrayAsEidString(IPV6, IPV6_ADDRESS_BYTES, (byte) 64)); } @Test public void testGetArrayAsEidStringMac() { - assertEquals(MAC_STRING, getArrayAsEidString(MAC, MAC_ADDRESS_BYTES)); + assertEquals(MAC_STRING, getArrayAsEidString(MAC, MAC_ADDRESS_BYTES, (byte) 0)); } @Test @@ -191,4 +271,48 @@ public class EidTranslatorTest implements EidTranslator { assertFalse(compareAddresses(IPV4_ADDRESS, IPV6_ADDRESS)); assertFalse(compareAddresses(IPV4_ADDRESS, MAC_ADDRES)); } + + @Test + public void testCompareV4AddressFromSameSubnetPositive() { + final Ipv4Prefix firstV4 = new Ipv4PrefixBuilder().setIpv4Prefix(v4Prefix("192.168.2.1/24")).build(); + final Ipv4Prefix secondV4 = new Ipv4PrefixBuilder().setIpv4Prefix(v4Prefix("192.168.2.2/24")).build(); + + assertTrue(compareAddresses(firstV4, secondV4)); + } + + @Test + public void testCompareV4AddressFromSameSubnetNegative() { + final Ipv4Prefix firstV4 = new Ipv4PrefixBuilder().setIpv4Prefix(v4Prefix("192.168.2.1/24")).build(); + final Ipv4Prefix secondV4 = new Ipv4PrefixBuilder().setIpv4Prefix(v4Prefix("192.168.2.1/16")).build(); + + assertFalse(compareAddresses(firstV4, secondV4)); + } + + @Test + public void testCompareV6AddressesFromSameSubnetPositive() { + final Ipv6Prefix firstV6 = new Ipv6PrefixBuilder().setIpv6Prefix(v6Prefix("2001:db8:a0b:12f0::1/64")).build(); + final Ipv6Prefix secondV6 = new Ipv6PrefixBuilder().setIpv6Prefix(v6Prefix("2001:db8:a0b:12f0::4/64")).build(); + + assertTrue(compareAddresses(firstV6, secondV6)); + } + + @Test + public void testCompareV6AddressesFromSameSubnetNegative() { + final Ipv6Prefix firstV6 = new Ipv6PrefixBuilder().setIpv6Prefix(v6Prefix("2001:0db8:85a3:0000:0000:8a2e:0370:7334/64")).build(); + final Ipv6Prefix secondV6 = new Ipv6PrefixBuilder().setIpv6Prefix(v6Prefix("2001:0db8:85a3:0000:0000:8a2e:0370:7334/48")).build(); + + assertFalse(compareAddresses(firstV6, secondV6)); + } + + private static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix v6Prefix( + String v6Prefix) { + return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix( + v6Prefix); + } + + private static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix v4Prefix( + String v4Prefix) { + return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix( + v4Prefix); + } } |