summaryrefslogtreecommitdiffstats
path: root/srv6/srv6-impl/src/test/java/io/fd/hc2vpp/srv6/util
diff options
context:
space:
mode:
Diffstat (limited to 'srv6/srv6-impl/src/test/java/io/fd/hc2vpp/srv6/util')
-rw-r--r--srv6/srv6-impl/src/test/java/io/fd/hc2vpp/srv6/util/JvppRequestTest.java27
-rw-r--r--srv6/srv6-impl/src/test/java/io/fd/hc2vpp/srv6/util/LocatorContextManagerImplTest.java94
-rw-r--r--srv6/srv6-impl/src/test/java/io/fd/hc2vpp/srv6/util/function/LocalSidFunctionBindingRegistryTest.java99
3 files changed, 212 insertions, 8 deletions
diff --git a/srv6/srv6-impl/src/test/java/io/fd/hc2vpp/srv6/util/JvppRequestTest.java b/srv6/srv6-impl/src/test/java/io/fd/hc2vpp/srv6/util/JvppRequestTest.java
index 0bc3f6b6d..cd3369956 100644
--- a/srv6/srv6-impl/src/test/java/io/fd/hc2vpp/srv6/util/JvppRequestTest.java
+++ b/srv6/srv6-impl/src/test/java/io/fd/hc2vpp/srv6/util/JvppRequestTest.java
@@ -21,6 +21,7 @@ import com.google.inject.Inject;
import io.fd.hc2vpp.common.test.util.FutureProducer;
import io.fd.hc2vpp.common.test.util.NamingContextHelper;
import io.fd.hc2vpp.common.translate.util.NamingContext;
+import io.fd.hc2vpp.srv6.util.function.LocalSidFunctionReadBindingRegistry;
import io.fd.hc2vpp.srv6.util.function.LocalSidFunctionWriteBindingRegistry;
import io.fd.hc2vpp.srv6.util.function.lookup.EndDT4FunctionBinder;
import io.fd.hc2vpp.srv6.util.function.lookup.EndDT6FunctionBinder;
@@ -43,6 +44,8 @@ import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext;
@RunWith(HoneycombTestRunner.class)
public abstract class JvppRequestTest implements FutureProducer, NamingContextHelper {
+ protected static final LocalSidFunctionReadBindingRegistry READ_REGISTRY =
+ new LocalSidFunctionReadBindingRegistry();
protected static final LocalSidFunctionWriteBindingRegistry WRITE_REGISTRY =
new LocalSidFunctionWriteBindingRegistry();
@@ -69,14 +72,22 @@ public abstract class JvppRequestTest implements FutureProducer, NamingContextHe
EndDX2FunctionBinder endDX2FunctionBinder = new EndDX2FunctionBinder(api, interfaceContext);
EndDX4FunctionBinder endDX4FunctionBinder = new EndDX4FunctionBinder(api, interfaceContext);
EndDX6FunctionBinder endDX6FunctionBinder = new EndDX6FunctionBinder(api, interfaceContext);
- WRITE_REGISTRY.registerFunctionType(endFunctionBinder);
- WRITE_REGISTRY.registerFunctionType(endTFunctionBinder);
- WRITE_REGISTRY.registerFunctionType(endDT4FunctionBinder);
- WRITE_REGISTRY.registerFunctionType(endDT6FunctionBinder);
- WRITE_REGISTRY.registerFunctionType(endXFunctionBinder);
- WRITE_REGISTRY.registerFunctionType(endDX2FunctionBinder);
- WRITE_REGISTRY.registerFunctionType(endDX4FunctionBinder);
- WRITE_REGISTRY.registerFunctionType(endDX6FunctionBinder);
+ READ_REGISTRY.registerReadFunctionType(endFunctionBinder);
+ READ_REGISTRY.registerReadFunctionType(endTFunctionBinder);
+ READ_REGISTRY.registerReadFunctionType(endDT4FunctionBinder);
+ READ_REGISTRY.registerReadFunctionType(endDT6FunctionBinder);
+ READ_REGISTRY.registerReadFunctionType(endXFunctionBinder);
+ READ_REGISTRY.registerReadFunctionType(endDX2FunctionBinder);
+ READ_REGISTRY.registerReadFunctionType(endDX4FunctionBinder);
+ READ_REGISTRY.registerReadFunctionType(endDX6FunctionBinder);
+ WRITE_REGISTRY.registerWriteFunctionType(endFunctionBinder);
+ WRITE_REGISTRY.registerWriteFunctionType(endTFunctionBinder);
+ WRITE_REGISTRY.registerWriteFunctionType(endDT4FunctionBinder);
+ WRITE_REGISTRY.registerWriteFunctionType(endDT6FunctionBinder);
+ WRITE_REGISTRY.registerWriteFunctionType(endXFunctionBinder);
+ WRITE_REGISTRY.registerWriteFunctionType(endDX2FunctionBinder);
+ WRITE_REGISTRY.registerWriteFunctionType(endDX4FunctionBinder);
+ WRITE_REGISTRY.registerWriteFunctionType(endDX6FunctionBinder);
init();
}
diff --git a/srv6/srv6-impl/src/test/java/io/fd/hc2vpp/srv6/util/LocatorContextManagerImplTest.java b/srv6/srv6-impl/src/test/java/io/fd/hc2vpp/srv6/util/LocatorContextManagerImplTest.java
new file mode 100644
index 000000000..919e013b1
--- /dev/null
+++ b/srv6/srv6-impl/src/test/java/io/fd/hc2vpp/srv6/util/LocatorContextManagerImplTest.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2018 Bell Canada, Pantheon Technologies and/or its affiliates.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package io.fd.hc2vpp.srv6.util;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import com.google.common.base.Optional;
+import io.fd.hc2vpp.srv6.write.sid.request.LocalSidRequestTest;
+import io.fd.honeycomb.translate.MappingContext;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.locator.context.rev180605.srv6.locator.context.attributes.srv6.locator.mappings.Srv6LocatorMapping;
+import org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.locator.context.rev180605.srv6.locator.context.attributes.srv6.locator.mappings.Srv6LocatorMappingBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+public class LocatorContextManagerImplTest extends LocalSidRequestTest {
+
+ private static final Ipv6Prefix LOCATOR_PREFIX = new Ipv6Prefix("a::/64");
+
+ @Mock
+ MappingContext mappingContext;
+
+ @Captor
+ ArgumentCaptor<Srv6LocatorMapping> locMappingCaptor;
+
+ @Captor
+ ArgumentCaptor<InstanceIdentifier<Srv6LocatorMapping>> iidCaptor;
+
+ @Before
+ public void setup() {
+ Srv6LocatorMapping locatorMapping =
+ new Srv6LocatorMappingBuilder().setName(LOCATOR.getName()).setPrefix(LOCATOR_PREFIX).build();
+ when(ctx.getMappingContext()).thenReturn(mappingContext);
+ when(mappingContext.read(any())).thenReturn(Optional.of(locatorMapping));
+ }
+
+ @Test
+ public void addLocatorTest() {
+ LocatorContextManagerImpl contextManager = new LocatorContextManagerImpl(64);
+ contextManager.addLocator(LOCATOR.getName(), LOCATOR_PREFIX, ctx.getMappingContext());
+ verify(mappingContext, times(1)).put(any(), locMappingCaptor.capture());
+ Srv6LocatorMapping mapping = locMappingCaptor.getValue();
+
+ Assert.assertEquals(mapping.getPrefix(), LOCATOR_PREFIX);
+ Assert.assertEquals(mapping.getName(), LOCATOR.getName());
+ }
+
+ @Test
+ public void containsLocatorTest() {
+ LocatorContextManagerImpl contextManager = new LocatorContextManagerImpl(64);
+ boolean containsLocator = contextManager.containsLocator(LOCATOR.getName(), ctx.getMappingContext());
+ Assert.assertTrue(containsLocator);
+ }
+
+
+ @Test
+ public void getLocatorTest() {
+ LocatorContextManagerImpl contextManager = new LocatorContextManagerImpl(64);
+ Ipv6Prefix locator = contextManager.getLocator(LOCATOR.getName(), ctx.getMappingContext());
+ Assert.assertEquals(LOCATOR_PREFIX, locator);
+ }
+
+ @Test
+ public void removeLocatorTest() {
+ MappingContext mappingContext = ctx.getMappingContext();
+ LocatorContextManagerImpl contextManager = new LocatorContextManagerImpl(64);
+ contextManager.removeLocator(LOCATOR.getName(), mappingContext);
+ verify(mappingContext, times(1)).delete(iidCaptor.capture());
+ Assert.assertEquals(LOCATOR.getName(), iidCaptor.getValue().firstKeyOf(Srv6LocatorMapping.class).getName());
+ }
+}
diff --git a/srv6/srv6-impl/src/test/java/io/fd/hc2vpp/srv6/util/function/LocalSidFunctionBindingRegistryTest.java b/srv6/srv6-impl/src/test/java/io/fd/hc2vpp/srv6/util/function/LocalSidFunctionBindingRegistryTest.java
index 66ddf48db..998916ee1 100644
--- a/srv6/srv6-impl/src/test/java/io/fd/hc2vpp/srv6/util/function/LocalSidFunctionBindingRegistryTest.java
+++ b/srv6/srv6-impl/src/test/java/io/fd/hc2vpp/srv6/util/function/LocalSidFunctionBindingRegistryTest.java
@@ -19,6 +19,7 @@ package io.fd.hc2vpp.srv6.util.function;
import static org.mockito.Mockito.when;
import com.google.common.base.Optional;
+import io.fd.hc2vpp.common.translate.util.AddressTranslator;
import io.fd.hc2vpp.fib.management.FibManagementIIds;
import io.fd.hc2vpp.srv6.util.JvppRequestTest;
import io.fd.hc2vpp.srv6.write.sid.request.LocalSidFunctionRequest;
@@ -26,6 +27,7 @@ import io.fd.hc2vpp.srv6.write.sid.request.NoProtocolLocalSidRequest;
import io.fd.hc2vpp.srv6.write.sid.request.TableLookupLocalSidRequest;
import io.fd.hc2vpp.srv6.write.sid.request.XConnectLocalSidRequest;
import io.fd.honeycomb.translate.read.ReadContext;
+import io.fd.vpp.jvpp.core.dto.SrLocalsidsDetails;
import java.util.Collections;
import org.junit.Assert;
import org.junit.Test;
@@ -114,6 +116,16 @@ public class LocalSidFunctionBindingRegistryTest extends JvppRequestTest {
}
@Test
+ public void testEndVpp() {
+ SrLocalsidsDetails details = new SrLocalsidsDetails();
+ details.behavior = 1;
+ details.endPsp = 0;
+ SidBuilder builder = new SidBuilder();
+ READ_REGISTRY.bind(details, readCtx, builder);
+ Assert.assertNotNull(builder.getEnd());
+ }
+
+ @Test
public void testEndX() {
EndX endX = new EndXBuilder()
.setPaths(new PathsBuilder().setPath(Collections.singletonList(
@@ -138,6 +150,20 @@ public class LocalSidFunctionBindingRegistryTest extends JvppRequestTest {
}
@Test
+ public void testEndXVpp() {
+ SrLocalsidsDetails details = new SrLocalsidsDetails();
+ details.behavior = 2;
+ details.endPsp = 0;
+ details.xconnectNhAddr6 = AddressTranslator.INSTANCE.ipv6AddressNoZoneToArray(A);
+ details.xconnectIfaceOrVrfTable = 1;
+ SidBuilder builder = new SidBuilder();
+ READ_REGISTRY.bind(details, readCtx, builder);
+ Assert.assertNotNull(builder.getEndX());
+ Assert.assertEquals(LOCAL_0, builder.getEndX().getPaths().getPath().get(0).getInterface());
+ Assert.assertEquals(A_NO_ZONE, builder.getEndX().getPaths().getPath().get(0).getNextHop());
+ }
+
+ @Test
public void testEndDX2() {
EndDx2 endDx2 = new EndDx2Builder().setPaths(
new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.srv6._static.rev180301.srv6.sid.config.end.dx2.PathsBuilder()
@@ -156,6 +182,17 @@ public class LocalSidFunctionBindingRegistryTest extends JvppRequestTest {
}
@Test
+ public void testEndDX2Vpp() {
+ SrLocalsidsDetails details = new SrLocalsidsDetails();
+ details.behavior = 5;
+ details.xconnectIfaceOrVrfTable = 1;
+ SidBuilder builder = new SidBuilder();
+ READ_REGISTRY.bind(details, readCtx, builder);
+ Assert.assertNotNull(builder.getEndDx2());
+ Assert.assertEquals(LOCAL_0, builder.getEndDx2().getPaths().getInterface());
+ }
+
+ @Test
public void testEndDX6() {
EndDx6 endDx6 = new EndDx6Builder()
.setPaths(new PathsBuilder()
@@ -178,6 +215,19 @@ public class LocalSidFunctionBindingRegistryTest extends JvppRequestTest {
}
@Test
+ public void testEndDX6Vpp() {
+ SrLocalsidsDetails details = new SrLocalsidsDetails();
+ details.behavior = 6;
+ details.xconnectIfaceOrVrfTable = 1;
+ details.xconnectNhAddr6 = AddressTranslator.INSTANCE.ipv6AddressNoZoneToArray(A);
+ SidBuilder builder = new SidBuilder();
+ READ_REGISTRY.bind(details, readCtx, builder);
+ Assert.assertNotNull(builder.getEndDx6());
+ Assert.assertEquals(LOCAL_0, builder.getEndDx6().getPaths().getPath().get(0).getInterface());
+ Assert.assertEquals(A_NO_ZONE, builder.getEndDx6().getPaths().getPath().get(0).getNextHop());
+ }
+
+ @Test
public void testEndDX4() {
EndDx4 endDx4 = new EndDx4Builder()
.setPaths(
@@ -202,6 +252,19 @@ public class LocalSidFunctionBindingRegistryTest extends JvppRequestTest {
}
@Test
+ public void testEndDX4Vpp() {
+ SrLocalsidsDetails details = new SrLocalsidsDetails();
+ details.behavior = 7;
+ details.xconnectIfaceOrVrfTable = 1;
+ details.xconnectNhAddr4 = AddressTranslator.INSTANCE.ipv4AddressNoZoneToArray(A_V4);
+ SidBuilder builder = new SidBuilder();
+ READ_REGISTRY.bind(details, readCtx, builder);
+ Assert.assertNotNull(builder.getEndDx4());
+ Assert.assertEquals(LOCAL_0, builder.getEndDx4().getPaths().getPath().get(0).getInterface());
+ Assert.assertEquals(A_V4, builder.getEndDx4().getPaths().getPath().get(0).getNextHop());
+ }
+
+ @Test
public void testEndT() {
EndT endT = new EndTBuilder().setLookupTableIpv6(TABLE_ID_4).build();
Sid localSid = new SidBuilder()
@@ -217,6 +280,18 @@ public class LocalSidFunctionBindingRegistryTest extends JvppRequestTest {
}
@Test
+ public void testEndDTVpp() {
+ SrLocalsidsDetails details = new SrLocalsidsDetails();
+ details.behavior = 3;
+ details.xconnectIfaceOrVrfTable = TABLE_ID_4.getValue().intValue();
+ SidBuilder builder = new SidBuilder();
+ READ_REGISTRY.bind(details, readCtx, builder);
+ Assert.assertNotNull(builder.getEndT());
+ Assert.assertEquals(TABLE_ID_4.getValue().intValue(),
+ builder.getEndT().getLookupTableIpv6().getValue().intValue());
+ }
+
+ @Test
public void testEndDT6() {
EndDt6 endDt6 = new EndDt6Builder().setLookupTableIpv6(TABLE_ID_4).build();
Sid localSid = new SidBuilder()
@@ -231,6 +306,18 @@ public class LocalSidFunctionBindingRegistryTest extends JvppRequestTest {
}
@Test
+ public void testEndDT6Vpp() {
+ SrLocalsidsDetails details = new SrLocalsidsDetails();
+ details.behavior = 8;
+ details.xconnectIfaceOrVrfTable = TABLE_ID_4.getValue().intValue();
+ SidBuilder builder = new SidBuilder();
+ READ_REGISTRY.bind(details, readCtx, builder);
+ Assert.assertNotNull(builder.getEndDt6());
+ Assert.assertEquals(TABLE_ID_4.getValue().intValue(),
+ builder.getEndDt6().getLookupTableIpv6().getValue().intValue());
+ }
+
+ @Test
public void testEndDT4() {
EndDt4 endDt4 = new EndDt4Builder().setLookupTableIpv4(TABLE_ID_4).build();
Sid localSid = new SidBuilder()
@@ -243,4 +330,16 @@ public class LocalSidFunctionBindingRegistryTest extends JvppRequestTest {
TableLookupLocalSidRequest tableLookupRequest = TableLookupLocalSidRequest.class.cast(request);
Assert.assertEquals(TABLE_ID_4.getValue().intValue(), tableLookupRequest.getLookupFibTable());
}
+
+ @Test
+ public void testEndDT4Vpp() {
+ SrLocalsidsDetails details = new SrLocalsidsDetails();
+ details.behavior = 9;
+ details.xconnectIfaceOrVrfTable = TABLE_ID_4.getValue().intValue();
+ SidBuilder builder = new SidBuilder();
+ READ_REGISTRY.bind(details, readCtx, builder);
+ Assert.assertNotNull(builder.getEndDt4());
+ Assert.assertEquals(TABLE_ID_4.getValue().intValue(),
+ builder.getEndDt4().getLookupTableIpv4().getValue().intValue());
+ }
}