summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Gradzki <mgradzki@cisco.com>2018-07-03 09:56:58 +0200
committerMarek Gradzki <mgradzki@cisco.com>2018-07-03 10:38:42 +0200
commite5768e2dd1721bd454d2ddbd4e6dc647a5daebe5 (patch)
tree28e4feaf4354cedc17fcb691c9ac639391315d13
parentec365fe22b9f52fce8daa667c0f0fa9cc25e64f6 (diff)
HC2VPP-346: use fib-table-list-ref for FIB to ifc assignment
Change-Id: Ie57776ab9784b7c57630b7ea9ce9b96b71feb5a5 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
-rw-r--r--v3po/api/src/main/yang/v3po@2017-06-07.yang4
-rw-r--r--v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfaces/RoutingCustomizer.java9
-rw-r--r--v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfacesstate/RoutingCustomizer.java9
-rw-r--r--v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/InterfaceRoutingCustomizerTest.java3
-rw-r--r--v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/SubInterfaceRoutingCustomizerTest.java25
-rw-r--r--v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfacesstate/InterfaceRoutingCustomizerTest.java5
-rw-r--r--v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfacesstate/SubInterfaceRoutingCustomizerTest.java6
7 files changed, 35 insertions, 26 deletions
diff --git a/v3po/api/src/main/yang/v3po@2017-06-07.yang b/v3po/api/src/main/yang/v3po@2017-06-07.yang
index 09ac9848d..e25fc2e7f 100644
--- a/v3po/api/src/main/yang/v3po@2017-06-07.yang
+++ b/v3po/api/src/main/yang/v3po@2017-06-07.yang
@@ -353,10 +353,10 @@ module v3po {
grouping routing-base-attributes {
leaf ipv4-vrf-id {
- type uint32;
+ type fib-management:fib-table-list-ref;
}
leaf ipv6-vrf-id {
- type uint32;
+ type fib-management:fib-table-list-ref;
}
description
"Defines VRF tables used for ipv4 and ipv6 traffic";
diff --git a/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfaces/RoutingCustomizer.java b/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfaces/RoutingCustomizer.java
index fb5ec3371..1f8e2364b 100644
--- a/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfaces/RoutingCustomizer.java
+++ b/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfaces/RoutingCustomizer.java
@@ -30,6 +30,7 @@ import io.fd.vpp.jvpp.core.future.FutureJVppCore;
import java.util.concurrent.CompletionStage;
import javax.annotation.Nonnull;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.RoutingBaseAttributes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.fib.table.management.rev180521.VniReference;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -59,13 +60,13 @@ abstract class RoutingCustomizer extends FutureJVppCustomizer implements JvppRep
}
private void setVrfId(final InstanceIdentifier<? extends RoutingBaseAttributes> id, final int swIfc,
- final Long vrfId, boolean isIp6)
+ final VniReference vniRef, boolean isIp6)
throws WriteFailedException {
- if (vrfId == null) {
+ if (vniRef == null || vniRef.getValue() == null) {
return;
}
- final CompletionStage<SwInterfaceSetTableReply> cs = getFutureJVpp()
- .swInterfaceSetTable(getInterfaceSetTableRequest(swIfc, booleanToByte(isIp6), vrfId.intValue()));
+ final CompletionStage<SwInterfaceSetTableReply> cs = getFutureJVpp().swInterfaceSetTable(
+ getInterfaceSetTableRequest(swIfc, booleanToByte(isIp6), vniRef.getValue().intValue()));
getReplyForWrite(cs.toCompletableFuture(), id);
}
diff --git a/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfacesstate/RoutingCustomizer.java b/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfacesstate/RoutingCustomizer.java
index 58603c742..9727c4d35 100644
--- a/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfacesstate/RoutingCustomizer.java
+++ b/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfacesstate/RoutingCustomizer.java
@@ -28,6 +28,7 @@ import io.fd.vpp.jvpp.core.future.FutureJVppCore;
import java.util.function.Consumer;
import javax.annotation.Nonnull;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.RoutingBaseAttributes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.fib.table.management.rev180521.VniReference;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
abstract class RoutingCustomizer extends FutureJVppCustomizer implements JvppReplyConsumer {
@@ -40,8 +41,8 @@ abstract class RoutingCustomizer extends FutureJVppCustomizer implements JvppRep
}
protected void readInterfaceRouting(@Nonnull final InstanceIdentifier<? extends RoutingBaseAttributes> id,
- @Nonnull final Consumer<Long> v4VrfConsumer,
- @Nonnull final Consumer<Long> v6VrfConsumer,
+ @Nonnull final Consumer<VniReference> v4VrfConsumer,
+ @Nonnull final Consumer<VniReference> v6VrfConsumer,
@Nonnull final ReadContext ctx, final String interfaceName)
throws ReadFailedException {
final SwInterfaceGetTable request = new SwInterfaceGetTable();
@@ -55,10 +56,10 @@ abstract class RoutingCustomizer extends FutureJVppCustomizer implements JvppRep
getReplyForRead(getFutureJVpp().swInterfaceGetTable(request).toCompletableFuture(), id);
if (ip4Reply.vrfId != 0) {
- v4VrfConsumer.accept(UnsignedInts.toLong(ip4Reply.vrfId));
+ v4VrfConsumer.accept(new VniReference(UnsignedInts.toLong(ip4Reply.vrfId)));
}
if (ip6Reply.vrfId != 0) {
- v6VrfConsumer.accept(UnsignedInts.toLong(ip6Reply.vrfId));
+ v6VrfConsumer.accept(new VniReference(UnsignedInts.toLong(ip6Reply.vrfId)));
}
}
}
diff --git a/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/InterfaceRoutingCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/InterfaceRoutingCustomizerTest.java
index 2ef32721e..21d388050 100644
--- a/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/InterfaceRoutingCustomizerTest.java
+++ b/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/InterfaceRoutingCustomizerTest.java
@@ -41,6 +41,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev14061
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.VppInterfaceAugmentation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.interfaces._interface.Routing;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.interfaces._interface.RoutingBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.fib.table.management.rev180521.VniReference;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
public class InterfaceRoutingCustomizerTest extends WriterCustomizerTest {
@@ -144,7 +145,7 @@ public class InterfaceRoutingCustomizerTest extends WriterCustomizerTest {
}
private Routing routing(final long vrfId) {
- return new RoutingBuilder().setIpv4VrfId(vrfId).build();
+ return new RoutingBuilder().setIpv4VrfId(new VniReference(vrfId)).build();
}
private SwInterfaceSetTable expectedRequest(final int vrfId) {
diff --git a/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/SubInterfaceRoutingCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/SubInterfaceRoutingCustomizerTest.java
index e7e108746..3b3de2ae8 100644
--- a/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/SubInterfaceRoutingCustomizerTest.java
+++ b/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/SubInterfaceRoutingCustomizerTest.java
@@ -37,6 +37,7 @@ import org.mockito.Captor;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.fib.table.management.rev180521.VniReference;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.vlan.rev180319.SubinterfaceAugmentation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.vlan.rev180319.interfaces._interface.SubInterfaces;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.vlan.rev180319.interfaces._interface.sub.interfaces.SubInterface;
@@ -82,21 +83,21 @@ public class SubInterfaceRoutingCustomizerTest extends WriterCustomizerTest impl
@Test(expected = IllegalStateException.class)
public void testWriteFailedV4AddressPresent() throws WriteFailedException {
when(writeContext.readBefore(any(InstanceIdentifier.class))).thenReturn(Optional.of(v4AddressPresent()));
- final Routing v4Routing = new RoutingBuilder().setIpv4VrfId(4L).build();
+ final Routing v4Routing = new RoutingBuilder().setIpv4VrfId(new VniReference(4L)).build();
customizer.writeCurrentAttributes(VALID_ID, v4Routing, writeContext);
}
@Test(expected = IllegalStateException.class)
public void testWriteFailedV6AddressPresent() throws WriteFailedException {
when(writeContext.readBefore(any(InstanceIdentifier.class))).thenReturn(Optional.of(v6AddressPresent()));
- final Routing v4Routing = new RoutingBuilder().setIpv4VrfId(4L).build();
+ final Routing v4Routing = new RoutingBuilder().setIpv4VrfId(new VniReference(4L)).build();
customizer.writeCurrentAttributes(VALID_ID, v4Routing, writeContext);
}
@Test
public void testWriteIpv4Vrf() throws WriteFailedException {
when(writeContext.readBefore(any(InstanceIdentifier.class))).thenReturn(Optional.absent());
- final Routing v4Routing = new RoutingBuilder().setIpv4VrfId(4L).build();
+ final Routing v4Routing = new RoutingBuilder().setIpv4VrfId(new VniReference(4L)).build();
customizer.writeCurrentAttributes(VALID_ID, v4Routing, writeContext);
verifySetTableRequest(1, Collections.singleton(request(false, SUBIF_INDEX, 4)));
}
@@ -105,7 +106,7 @@ public class SubInterfaceRoutingCustomizerTest extends WriterCustomizerTest impl
@Test
public void testWriteIpv6Vrf() throws WriteFailedException {
when(writeContext.readBefore(any(InstanceIdentifier.class))).thenReturn(Optional.absent());
- final Routing v6Routing = new RoutingBuilder().setIpv6VrfId(3L).build();
+ final Routing v6Routing = new RoutingBuilder().setIpv6VrfId(new VniReference(3L)).build();
customizer.writeCurrentAttributes(VALID_ID, v6Routing, writeContext);
verifySetTableRequest(1, Collections.singleton(request(true, SUBIF_INDEX, 3)));
}
@@ -113,8 +114,10 @@ public class SubInterfaceRoutingCustomizerTest extends WriterCustomizerTest impl
@Test
public void testUpdateIpv4Vrf() throws WriteFailedException {
when(writeContext.readBefore(any(InstanceIdentifier.class))).thenReturn(Optional.absent());
- final Routing routingBefore = new RoutingBuilder().setIpv6VrfId(3L).setIpv4VrfId(4L).build();
- final Routing routingAfter = new RoutingBuilder().setIpv6VrfId(3L).setIpv4VrfId(5L).build();
+ final Routing routingBefore = new RoutingBuilder().setIpv6VrfId(new VniReference(3L))
+ .setIpv4VrfId(new VniReference(4L)).build();
+ final Routing routingAfter = new RoutingBuilder().setIpv6VrfId(new VniReference(3L))
+ .setIpv4VrfId(new VniReference(5L)).build();
customizer.updateCurrentAttributes(VALID_ID, routingBefore, routingAfter, writeContext);
verifySetTableRequest(2, ImmutableSet.of(request(false, SUBIF_INDEX, 5),
request(true, SUBIF_INDEX, 3)));
@@ -123,8 +126,10 @@ public class SubInterfaceRoutingCustomizerTest extends WriterCustomizerTest impl
@Test
public void testUpdateIpv6Vrf() throws WriteFailedException {
when(writeContext.readBefore(any(InstanceIdentifier.class))).thenReturn(Optional.absent());
- final Routing routingBefore = new RoutingBuilder().setIpv6VrfId(3L).setIpv4VrfId(4L).build();
- final Routing routingAfter = new RoutingBuilder().setIpv6VrfId(8L).setIpv4VrfId(4L).build();
+ final Routing routingBefore = new RoutingBuilder().setIpv6VrfId(new VniReference(3L))
+ .setIpv4VrfId(new VniReference(4L)).build();
+ final Routing routingAfter = new RoutingBuilder().setIpv6VrfId(new VniReference(8L))
+ .setIpv4VrfId(new VniReference(4L)).build();
customizer.updateCurrentAttributes(VALID_ID, routingBefore, routingAfter, writeContext);
verifySetTableRequest(2, ImmutableSet.of(request(false, SUBIF_INDEX, 4),
request(true, SUBIF_INDEX, 8)));
@@ -133,7 +138,7 @@ public class SubInterfaceRoutingCustomizerTest extends WriterCustomizerTest impl
@Test
public void testDeleteIpv4Vrf() throws WriteFailedException {
when(writeContext.readAfter(any(InstanceIdentifier.class))).thenReturn(Optional.absent());
- final Routing v4Routing = new RoutingBuilder().setIpv4VrfId(4L).build();
+ final Routing v4Routing = new RoutingBuilder().setIpv4VrfId(new VniReference(4L)).build();
customizer.deleteCurrentAttributes(VALID_ID, v4Routing, writeContext);
verifySetTableRequest(1, Collections.singleton(request(false, SUBIF_INDEX, DISABLE_VRF)));
}
@@ -142,7 +147,7 @@ public class SubInterfaceRoutingCustomizerTest extends WriterCustomizerTest impl
@Test
public void testDeleteIpv6Vrf() throws WriteFailedException {
when(writeContext.readAfter(any(InstanceIdentifier.class))).thenReturn(Optional.absent());
- final Routing v6Routing = new RoutingBuilder().setIpv6VrfId(3L).build();
+ final Routing v6Routing = new RoutingBuilder().setIpv6VrfId(new VniReference(3L)).build();
customizer.deleteCurrentAttributes(VALID_ID, v6Routing, writeContext);
verifySetTableRequest(1, Collections.singleton(request(true, SUBIF_INDEX, DISABLE_VRF)));
}
diff --git a/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfacesstate/InterfaceRoutingCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfacesstate/InterfaceRoutingCustomizerTest.java
index 6e8e8be9e..1af58de14 100644
--- a/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfacesstate/InterfaceRoutingCustomizerTest.java
+++ b/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfacesstate/InterfaceRoutingCustomizerTest.java
@@ -34,6 +34,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.VppInterfaceStateAugmentationBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.interfaces.state._interface.Routing;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.interfaces.state._interface.RoutingBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.fib.table.management.rev180521.VniReference;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
public class InterfaceRoutingCustomizerTest extends ReaderCustomizerTest<Routing, RoutingBuilder> {
@@ -72,8 +73,8 @@ public class InterfaceRoutingCustomizerTest extends ReaderCustomizerTest<Routing
when(api.swInterfaceGetTable(any())).thenReturn(future(tableReply(IP4_VRF_ID))).thenReturn(future(tableReply(IP6_VRF_ID)));
getCustomizer().readCurrentAttributes(getRoutingId(IF_NAME), builder, ctx);
- verify(builder).setIpv4VrfId(IP4_VRF_ID);
- verify(builder).setIpv6VrfId(IP6_VRF_ID);
+ verify(builder).setIpv4VrfId(new VniReference(IP4_VRF_ID));
+ verify(builder).setIpv6VrfId(new VniReference(IP6_VRF_ID));
}
@Test
diff --git a/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfacesstate/SubInterfaceRoutingCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfacesstate/SubInterfaceRoutingCustomizerTest.java
index 2b5e3fcaa..fb773a473 100644
--- a/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfacesstate/SubInterfaceRoutingCustomizerTest.java
+++ b/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfacesstate/SubInterfaceRoutingCustomizerTest.java
@@ -83,8 +83,8 @@ public class SubInterfaceRoutingCustomizerTest extends ReaderCustomizerTest<Rout
when(api.swInterfaceGetTable(request(true, SUBIF_ID))).thenReturn(future(reply(IPV6_VRF)));
final RoutingBuilder routingBuilder = new RoutingBuilder();
getCustomizer().readCurrentAttributes(VALID_ID, routingBuilder, ctx);
- assertEquals(IPV4_VRF, routingBuilder.getIpv4VrfId().intValue());
- assertEquals(IPV6_VRF, routingBuilder.getIpv6VrfId().intValue());
+ assertEquals(IPV4_VRF, routingBuilder.getIpv4VrfId().getValue().intValue());
+ assertEquals(IPV6_VRF, routingBuilder.getIpv6VrfId().getValue().intValue());
}
@Test
@@ -93,7 +93,7 @@ public class SubInterfaceRoutingCustomizerTest extends ReaderCustomizerTest<Rout
when(api.swInterfaceGetTable(request(true, SUBIF_ID))).thenReturn(future(reply(NO_VRF)));
final RoutingBuilder routingBuilder = new RoutingBuilder();
getCustomizer().readCurrentAttributes(VALID_ID, routingBuilder, ctx);
- assertEquals(IPV4_VRF, routingBuilder.getIpv4VrfId().intValue());
+ assertEquals(IPV4_VRF, routingBuilder.getIpv4VrfId().getValue().intValue());
assertNull(routingBuilder.getIpv6VrfId());
}