summaryrefslogtreecommitdiffstats
path: root/lisp/lisp2vpp/src/test/java
diff options
context:
space:
mode:
authorJan Srnicek <jsrnicek@cisco.com>2017-06-19 12:37:56 +0200
committerMarek Gradzki <mgradzki@cisco.com>2017-06-19 11:48:10 +0000
commitd9307b4011b14fe9fbb94ceee98f47c327a7919c (patch)
tree59e8737dfe15be60ad0c1e60083850ac6e331bdd /lisp/lisp2vpp/src/test/java
parent71b28394e5024ecc87c2a8dc5adbabd812cae740 (diff)
HC2VPP-168 - Gpe native entries support(operational read)
Change-Id: I50155013874a9e69d926a48a212d402e93945d9b Signed-off-by: Jan Srnicek <jsrnicek@cisco.com>
Diffstat (limited to 'lisp/lisp2vpp/src/test/java')
-rw-r--r--lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/gpe/translate/read/NativeForwardPathCustomizerTest.java151
-rw-r--r--lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/gpe/translate/read/NativeForwardPathsTableCustomizerTest.java107
2 files changed, 258 insertions, 0 deletions
diff --git a/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/gpe/translate/read/NativeForwardPathCustomizerTest.java b/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/gpe/translate/read/NativeForwardPathCustomizerTest.java
new file mode 100644
index 000000000..6dfe3883f
--- /dev/null
+++ b/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/gpe/translate/read/NativeForwardPathCustomizerTest.java
@@ -0,0 +1,151 @@
+/*
+ * Copyright (c) 2017 Cisco 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.lisp.gpe.translate.read;
+
+import static io.fd.hc2vpp.lisp.gpe.translate.read.NativeForwardPathsTableCustomizerTest.TABLE_0_IDX;
+import static io.fd.hc2vpp.lisp.gpe.translate.read.NativeForwardPathsTableCustomizerTest.TABLE_1_IDX;
+import static io.fd.hc2vpp.lisp.gpe.translate.read.NativeForwardPathsTableCustomizerTest.TABLE_2_IDX;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.when;
+
+import io.fd.hc2vpp.common.test.read.InitializingListReaderCustomizerTest;
+import io.fd.hc2vpp.common.translate.util.NamingContext;
+import io.fd.honeycomb.translate.read.ReadFailedException;
+import io.fd.honeycomb.translate.spi.read.ReaderCustomizer;
+import io.fd.vpp.jvpp.core.dto.GpeNativeFwdRpathsGet;
+import io.fd.vpp.jvpp.core.dto.GpeNativeFwdRpathsGetReply;
+import io.fd.vpp.jvpp.core.types.GpeNativeFwdRpath;
+import java.util.List;
+import org.junit.Test;
+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.Ipv4Address;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170518.NativeForwardPathsTablesState;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170518._native.forward.paths.tables.state.NativeForwardPathsTable;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170518._native.forward.paths.tables.state.NativeForwardPathsTableBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170518._native.forward.paths.tables.state.NativeForwardPathsTableKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170518._native.forward.paths.tables.state._native.forward.paths.table.NativeForwardPath;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170518._native.forward.paths.tables.state._native.forward.paths.table.NativeForwardPathBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170518._native.forward.paths.tables.state._native.forward.paths.table.NativeForwardPathKey;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
+
+public class NativeForwardPathCustomizerTest
+ extends
+ InitializingListReaderCustomizerTest<NativeForwardPath, NativeForwardPathKey, NativeForwardPathBuilder> {
+
+ private static final String IFC_CTX = "ifc-ctx";
+ private static final String ETH_0 = "eth-0";
+ private static final String ETH_1 = "eth-1";
+ private static final int ETH_0_IDX = 2;
+ private static final int ETH_1_IDX = 7;
+
+ private NamingContext interfaceContext;
+ private KeyedInstanceIdentifier<NativeForwardPath, NativeForwardPathKey> validId;
+ private KeyedInstanceIdentifier<NativeForwardPath, NativeForwardPathKey> defaultTableId;
+
+ public NativeForwardPathCustomizerTest() {
+ super(NativeForwardPath.class, NativeForwardPathsTableBuilder.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ interfaceContext = new NamingContext("iface", IFC_CTX);
+ final GpeNativeFwdRpathsGet requestV4 = new GpeNativeFwdRpathsGet();
+ requestV4.isIp4 = 1;
+ final GpeNativeFwdRpathsGet requestV6 = new GpeNativeFwdRpathsGet();
+ requestV6.isIp4 = 0;
+ when(api.gpeNativeFwdRpathsGet(requestV4)).thenReturn(future(getReplyV4()));
+ when(api.gpeNativeFwdRpathsGet(requestV6)).thenReturn(future(getReplyV6()));
+ validId = InstanceIdentifier.create(NativeForwardPathsTablesState.class)
+ .child(NativeForwardPathsTable.class, new NativeForwardPathsTableKey((long) TABLE_0_IDX))
+ .child(NativeForwardPath.class,
+ new NativeForwardPathKey(new IpAddress(new Ipv4Address("192.168.2.1"))));
+ defaultTableId = InstanceIdentifier.create(NativeForwardPathsTablesState.class)
+ .child(NativeForwardPathsTable.class, new NativeForwardPathsTableKey((long) 0))
+ .child(NativeForwardPath.class,
+ new NativeForwardPathKey(new IpAddress(new Ipv4Address("192.168.2.7"))));
+ defineMapping(mappingContext, ETH_0, ETH_0_IDX, IFC_CTX);
+ defineMapping(mappingContext, ETH_1, ETH_1_IDX, IFC_CTX);
+ }
+
+ @Test
+ public void testGetAll() throws ReadFailedException {
+ final List<NativeForwardPathKey> allIds = getCustomizer().getAllIds(validId, ctx);
+ assertEquals(2, allIds.size());
+ final String firstAddress = allIds.get(0).getNextHopAddress().getIpv6Address().getValue();
+ final String secondAddress = allIds.get(1).getNextHopAddress().getIpv4Address().getValue();
+ assertEquals("2001:db8:a0b:12f0::1", firstAddress);
+ assertEquals("192.168.2.1", secondAddress);
+ }
+
+ @Test
+ public void testGetAllDefaultTable() throws ReadFailedException {
+ final List<NativeForwardPathKey> allIds = getCustomizer().getAllIds(defaultTableId, ctx);
+ assertEquals(1, allIds.size());
+ final String firstAddress = allIds.get(0).getNextHopAddress().getIpv4Address().getValue();
+ assertEquals("192.168.3.7", firstAddress);
+ }
+
+ @Test
+ public void testReadCurrent() throws ReadFailedException {
+ final NativeForwardPathBuilder builder = new NativeForwardPathBuilder();
+ getCustomizer().readCurrentAttributes(validId, builder, ctx);
+
+ assertEquals("192.168.2.1", builder.getNextHopAddress().getIpv4Address().getValue());
+ assertEquals(ETH_1, builder.getNextHopInterface());
+ }
+
+ private GpeNativeFwdRpathsGetReply getReplyV4() {
+ GpeNativeFwdRpathsGetReply reply = new GpeNativeFwdRpathsGetReply();
+ GpeNativeFwdRpath table0Path1 = new GpeNativeFwdRpath();
+ table0Path1.fibIndex = TABLE_0_IDX;
+ table0Path1.nhAddr = new byte[]{-64, -88, 2, 1};
+ table0Path1.isIp4 = 1;
+ table0Path1.nhSwIfIndex = ETH_1_IDX;
+ GpeNativeFwdRpath table2Path1 = new GpeNativeFwdRpath();
+ table2Path1.fibIndex = TABLE_2_IDX;
+ table2Path1.nhAddr = new byte[]{-64, -88, 3, 2};
+ table2Path1.isIp4 = 1;
+ GpeNativeFwdRpath tableDefaultPath1 = new GpeNativeFwdRpath();
+ tableDefaultPath1.fibIndex = ~0;
+ tableDefaultPath1.nhAddr = new byte[]{-64, -88, 3, 7};
+ tableDefaultPath1.isIp4 = 1;
+
+ reply.entries = new GpeNativeFwdRpath[]{table0Path1, table2Path1, tableDefaultPath1};
+ return reply;
+ }
+
+ private GpeNativeFwdRpathsGetReply getReplyV6() {
+ GpeNativeFwdRpathsGetReply reply = new GpeNativeFwdRpathsGetReply();
+ GpeNativeFwdRpath table0Path2 = new GpeNativeFwdRpath();
+ table0Path2.fibIndex = TABLE_0_IDX;
+ table0Path2.nhAddr = new byte[]{32, 1, 13, -72, 10, 11, 18, -16, 0, 0, 0, 0, 0, 0, 0, 1};
+ table0Path2.isIp4 = 0;
+ GpeNativeFwdRpath table1Path1 = new GpeNativeFwdRpath();
+ table1Path1.fibIndex = TABLE_1_IDX;
+ table1Path1.nhAddr = new byte[]{32, 1, 13, -72, 10, 11, 18, -16, 0, 0, 0, 0, 0, 0, 3, 2};
+ table1Path1.isIp4 = 0;
+ table1Path1.nhSwIfIndex = ETH_0_IDX;
+ reply.entries = new GpeNativeFwdRpath[]{table0Path2, table1Path1};
+ return reply;
+ }
+
+ @Override
+ protected ReaderCustomizer<NativeForwardPath, NativeForwardPathBuilder> initCustomizer() {
+ return new NativeForwardPathCustomizer(api, interfaceContext);
+ }
+} \ No newline at end of file
diff --git a/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/gpe/translate/read/NativeForwardPathsTableCustomizerTest.java b/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/gpe/translate/read/NativeForwardPathsTableCustomizerTest.java
new file mode 100644
index 000000000..33ebee7f1
--- /dev/null
+++ b/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/gpe/translate/read/NativeForwardPathsTableCustomizerTest.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2017 Cisco 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.lisp.gpe.translate.read;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.when;
+
+import io.fd.hc2vpp.common.test.read.InitializingListReaderCustomizerTest;
+import io.fd.honeycomb.translate.read.ReadFailedException;
+import io.fd.honeycomb.translate.spi.read.ReaderCustomizer;
+import io.fd.vpp.jvpp.core.dto.GpeNativeFwdRpathsGet;
+import io.fd.vpp.jvpp.core.dto.Ip6FibDetails;
+import io.fd.vpp.jvpp.core.dto.Ip6FibDetailsReplyDump;
+import io.fd.vpp.jvpp.core.dto.IpFibDetails;
+import io.fd.vpp.jvpp.core.dto.IpFibDetailsReplyDump;
+import java.util.Arrays;
+import java.util.List;
+import org.junit.Test;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170518.NativeForwardPathsTablesState;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170518.NativeForwardPathsTablesStateBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170518._native.forward.paths.tables.state.NativeForwardPathsTable;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170518._native.forward.paths.tables.state.NativeForwardPathsTableBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170518._native.forward.paths.tables.state.NativeForwardPathsTableKey;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+public class NativeForwardPathsTableCustomizerTest extends
+ InitializingListReaderCustomizerTest<NativeForwardPathsTable, NativeForwardPathsTableKey, NativeForwardPathsTableBuilder> {
+
+ static final int TABLE_0_IDX = 1;
+ static final int TABLE_1_IDX = 2;
+ static final int TABLE_2_IDX = 3;
+
+ InstanceIdentifier<NativeForwardPathsTable> validId;
+
+ public NativeForwardPathsTableCustomizerTest() {
+ super(NativeForwardPathsTable.class, NativeForwardPathsTablesStateBuilder.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ final GpeNativeFwdRpathsGet requestV4 = new GpeNativeFwdRpathsGet();
+ requestV4.isIp4 = 0;
+ final GpeNativeFwdRpathsGet requestV6 = new GpeNativeFwdRpathsGet();
+ requestV6.isIp4 = 1;
+ when(api.ipFibDump(any())).thenReturn(future(getReplyV4()));
+ when(api.ip6FibDump(any())).thenReturn(future(getReplyV6()));
+ validId = InstanceIdentifier.create(NativeForwardPathsTablesState.class)
+ .child(NativeForwardPathsTable.class, new NativeForwardPathsTableKey((long) TABLE_0_IDX));
+ }
+
+ @Test
+ public void testGetAll() throws ReadFailedException {
+ final List<NativeForwardPathsTableKey> allIds = getCustomizer().getAllIds(validId, ctx);
+ assertEquals(3, allIds.size());
+ assertTrue(allIds.contains(new NativeForwardPathsTableKey((long) TABLE_0_IDX)));
+ assertTrue(allIds.contains(new NativeForwardPathsTableKey((long) TABLE_1_IDX)));
+ assertTrue(allIds.contains(new NativeForwardPathsTableKey((long) TABLE_2_IDX)));
+ }
+
+ @Test
+ public void testReadCurrent() throws ReadFailedException {
+ NativeForwardPathsTableBuilder builder = new NativeForwardPathsTableBuilder();
+ getCustomizer().readCurrentAttributes(validId, builder, ctx);
+ final long lTableId = TABLE_0_IDX;
+ assertEquals(lTableId, builder.getTableId().intValue());
+ assertEquals(lTableId, builder.getKey().getTableId().intValue());
+ }
+
+ private IpFibDetailsReplyDump getReplyV4() {
+ IpFibDetailsReplyDump reply = new IpFibDetailsReplyDump();
+ IpFibDetails table0 = new IpFibDetails();
+ table0.tableId = TABLE_0_IDX;
+ IpFibDetails table2 = new IpFibDetails();
+ table2.tableId = TABLE_2_IDX;
+ reply.ipFibDetails = Arrays.asList(table0, table2);
+ return reply;
+ }
+
+ private Ip6FibDetailsReplyDump getReplyV6() {
+ Ip6FibDetailsReplyDump reply = new Ip6FibDetailsReplyDump();
+ Ip6FibDetails table1 = new Ip6FibDetails();
+ table1.tableId = TABLE_1_IDX;
+ reply.ip6FibDetails = Arrays.asList(table1);
+ return reply;
+ }
+
+ @Override
+ protected ReaderCustomizer<NativeForwardPathsTable, NativeForwardPathsTableBuilder> initCustomizer() {
+ return new NativeForwardPathsTableCustomizer(api);
+ }
+} \ No newline at end of file