summaryrefslogtreecommitdiffstats
path: root/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/Ipv4RouteCustomizerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/Ipv4RouteCustomizerTest.java')
-rw-r--r--routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/Ipv4RouteCustomizerTest.java135
1 files changed, 75 insertions, 60 deletions
diff --git a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/Ipv4RouteCustomizerTest.java b/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/Ipv4RouteCustomizerTest.java
index a0c890b9b..5e319e370 100644
--- a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/Ipv4RouteCustomizerTest.java
+++ b/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/Ipv4RouteCustomizerTest.java
@@ -16,13 +16,24 @@
package io.fd.hc2vpp.routing.read;
+import static io.fd.hc2vpp.routing.helpers.RoutingRequestTestHelper.ROUTE_PROTOCOL_NAME;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.hasItems;
+import static org.hamcrest.collection.IsCollectionWithSize.hasSize;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.when;
+import static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.SpecialNextHop.SpecialNextHopEnum.Receive;
+
import io.fd.hc2vpp.common.test.read.ListReaderCustomizerTest;
import io.fd.hc2vpp.common.translate.util.MultiNamingContext;
import io.fd.hc2vpp.common.translate.util.NamingContext;
import io.fd.hc2vpp.routing.Ipv4RouteData;
import io.fd.hc2vpp.routing.RoutingConfiguration;
+import io.fd.hc2vpp.routing.helpers.ClassifyTableTestHelper;
import io.fd.hc2vpp.routing.naming.Ipv4RouteNamesFactory;
import io.fd.hc2vpp.routing.trait.RouteMapper;
+import io.fd.hc2vpp.vpp.classifier.context.VppClassifierContextManager;
import io.fd.honeycomb.translate.read.ReadFailedException;
import io.fd.honeycomb.translate.spi.read.ReaderCustomizer;
import io.fd.honeycomb.translate.util.read.cache.DumpCacheManager;
@@ -30,49 +41,46 @@ import io.fd.honeycomb.translate.util.read.cache.EntityDumpExecutor;
import io.fd.vpp.jvpp.core.dto.IpFibDetails;
import io.fd.vpp.jvpp.core.dto.IpFibDetailsReplyDump;
import io.fd.vpp.jvpp.core.types.FibPath;
+import java.util.Arrays;
+import java.util.List;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.junit.Test;
import org.mockito.Mock;
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.Ipv4Prefix;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.StaticRoutes2;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.Ipv4;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.Ipv4Builder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.Route;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.RouteBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.RouteKey;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.route.NextHopOptions;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.route.next.hop.options.NextHopList;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.route.next.hop.options.SimpleNextHop;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.route.next.hop.options.SpecialNextHop;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.route.next.hop.options.next.hop.list.next.hop.list.NextHop;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.route.next.hop.options.next.hop.list.next.hop.list.NextHopBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.route.next.hop.options.next.hop.list.next.hop.list.NextHopKey;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.SpecialNextHopGrouping;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.routing.state.routing.instance.RoutingProtocols;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.routing.state.routing.instance.routing.protocols.RoutingProtocol;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.routing.state.routing.instance.routing.protocols.RoutingProtocolKey;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.routing.state.routing.instance.routing.protocols.routing.protocol.StaticRoutes;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev180313.StaticRoutes1;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.Ipv4;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.Ipv4Builder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv4.Route;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv4.RouteBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv4.RouteKey;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv4.route.next.hop.NextHop1;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv4.route.next.hop.NextHop1Builder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv4.route.next.hop.SimpleNextHop1;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.Static;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.NextHopOptions;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.NextHopList;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.SimpleNextHop;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.SpecialNextHop;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.next.hop.list.next.hop.list.NextHop;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.next.hop.list.next.hop.list.NextHopBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.next.hop.list.next.hop.list.NextHopKey;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.routing.ControlPlaneProtocols;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.routing.control.plane.protocols.ControlPlaneProtocol;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.routing.control.plane.protocols.ControlPlaneProtocolKey;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.routing.control.plane.protocols.control.plane.protocol.StaticRoutes;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.vpp.ipv4.unicast.routing.rev180319.VppIpv4NextHopAugmentation;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.vpp.ipv4.unicast.routing.rev180319.VppIpv4NextHopAugmentationBuilder;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import java.util.Arrays;
-import java.util.List;
-
-import static io.fd.hc2vpp.routing.helpers.RoutingRequestTestHelper.ROUTE_PROTOCOL_NAME;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.hasItems;
-import static org.hamcrest.collection.IsCollectionWithSize.hasSize;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.when;
-
public class Ipv4RouteCustomizerTest extends ListReaderCustomizerTest<Route, RouteKey, RouteBuilder>
- implements RouteMapper {
+ implements RouteMapper, ClassifyTableTestHelper {
- private final InstanceIdentifier<Ipv4> ipv4InstanceIdentifier = InstanceIdentifier.create(RoutingProtocols.class)
- .child(RoutingProtocol.class, new RoutingProtocolKey(ROUTE_PROTOCOL_NAME))
+ private final InstanceIdentifier<Ipv4> ipv4InstanceIdentifier =
+ InstanceIdentifier.create(ControlPlaneProtocols.class)
+ .child(ControlPlaneProtocol.class, new ControlPlaneProtocolKey(ROUTE_PROTOCOL_NAME, Static.class))
.child(StaticRoutes.class)
- .augmentation(StaticRoutes2.class)
+ .augmentation(StaticRoutes1.class)
.child(Ipv4.class);
private DumpCacheManager<IpFibDetailsReplyDump, Void> manager;
@Mock
@@ -81,12 +89,18 @@ public class Ipv4RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou
private MultiNamingContext routeHopContext;
@Mock
private EntityDumpExecutor<IpFibDetailsReplyDump, Void> executor;
+ @Mock
+ private VppClassifierContextManager classifyManager;
+
private NamingContext interfaceContext = new NamingContext("ifaces", "interface-context");
private NamingContext routesContext = new NamingContext("routes", "route-context");
private NamingContext routingProtocolContext = new NamingContext("routing-protocol", "routing-protocol-context");
- private InstanceIdentifier<Route> routeIdSpecialHop = ipv4InstanceIdentifier.child(Route.class, new RouteKey(1L));
- private InstanceIdentifier<Route> routeIdSimpleHop = ipv4InstanceIdentifier.child(Route.class, new RouteKey(2L));
- private InstanceIdentifier<Route> routeIdListHop = ipv4InstanceIdentifier.child(Route.class, new RouteKey(3L));
+ private InstanceIdentifier<Route> routeIdSpecialHop =
+ ipv4InstanceIdentifier.child(Route.class, new RouteKey(new Ipv4Prefix("192.168.2.1/24")));
+ private InstanceIdentifier<Route> routeIdSimpleHop =
+ ipv4InstanceIdentifier.child(Route.class, new RouteKey(new Ipv4Prefix("192.168.2.2/22")));
+ private InstanceIdentifier<Route> routeIdListHop =
+ ipv4InstanceIdentifier.child(Route.class, new RouteKey(new Ipv4Prefix("192.168.2.2/16")));
public Ipv4RouteCustomizerTest() {
@@ -118,6 +132,9 @@ public class Ipv4RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou
String listRouteName = factory.uniqueRouteName(listRoute, mappingContext);
defineMapping(mappingContext, listRouteName, 3, "route-context");
+ addMapping(classifyManager, CLASSIFY_TABLE_NAME, CLASSIFY_TABLE_INDEX, mappingContext);
+
+
when(routeHopContext.getChildIndex(listRouteName, factory.uniqueRouteHopName(listRoute.path[0], mappingContext),
mappingContext)).thenReturn(0);
when(routeHopContext.getChildIndex(listRouteName, factory.uniqueRouteHopName(listRoute.path[1], mappingContext),
@@ -181,7 +198,9 @@ public class Ipv4RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou
final List<RouteKey> keys = getCustomizer().getAllIds(routeIdSpecialHop, ctx);
assertThat(keys, hasSize(3));
- assertThat(keys, hasItems(new RouteKey(1L), new RouteKey(2L), new RouteKey(3L)));
+ assertThat(keys, hasItems(new RouteKey(new Ipv4Prefix("192.168.2.1/24")),
+ new RouteKey(new Ipv4Prefix("192.168.2.2/22")),
+ new RouteKey(new Ipv4Prefix("192.168.2.2/16"))));
}
@Test
@@ -189,15 +208,13 @@ public class Ipv4RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou
final RouteBuilder builder = new RouteBuilder();
getCustomizer().readCurrentAttributes(routeIdSpecialHop, builder, ctx);
- assertEquals(1, builder.getId().intValue());
- assertEquals(1, builder.getKey().getId().intValue());
assertEquals(new Ipv4Prefix("192.168.2.1/24"), builder.getDestinationPrefix());
- NextHopOptions hopOptions = builder.getNextHopOptions();
+ NextHopOptions hopOptions = builder.getNextHop().getNextHopOptions();
assertTrue(hopOptions instanceof SpecialNextHop);
SpecialNextHop hop = SpecialNextHop.class.cast(hopOptions);
- assertEquals(SpecialNextHopGrouping.SpecialNextHop.Receive, hop.getSpecialNextHop());
+ assertEquals(Receive, hop.getSpecialNextHopEnum());
}
@Test
@@ -205,15 +222,13 @@ public class Ipv4RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou
final RouteBuilder builder = new RouteBuilder();
getCustomizer().readCurrentAttributes(routeIdSimpleHop, builder, ctx);
- assertEquals(2, builder.getId().intValue());
- assertEquals(2, builder.getKey().getId().intValue());
assertEquals(new Ipv4Prefix("192.168.2.2/22"), builder.getDestinationPrefix());
- NextHopOptions hopOptions = builder.getNextHopOptions();
+ NextHopOptions hopOptions = builder.getNextHop().getNextHopOptions();
assertTrue(hopOptions instanceof SimpleNextHop);
SimpleNextHop hop = SimpleNextHop.class.cast(hopOptions);
- assertEquals("192.168.2.1", hop.getNextHop().getValue());
+ assertEquals("192.168.2.1", hop.getAugmentation(SimpleNextHop1.class).getNextHopAddress().getValue());
assertEquals("iface-1", hop.getOutgoingInterface());
}
@@ -223,11 +238,9 @@ public class Ipv4RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou
final RouteBuilder builder = new RouteBuilder();
getCustomizer().readCurrentAttributes(routeIdListHop, builder, ctx);
- assertEquals(3, builder.getId().intValue());
- assertEquals(3, builder.getKey().getId().intValue());
assertEquals(new Ipv4Prefix("192.168.2.2/16"), builder.getDestinationPrefix());
- NextHopOptions hopOptions = builder.getNextHopOptions();
+ NextHopOptions hopOptions = builder.getNextHop().getNextHopOptions();
assertTrue(hopOptions instanceof NextHopList);
NextHopList hop = NextHopList.class.cast(hopOptions);
@@ -235,32 +248,34 @@ public class Ipv4RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou
assertThat(hops, hasSize(2));
- assertTrue(areEqual(hops.get(0), desiredHop(0L, "192.168.2.1", 1, "iface-1")));
- assertTrue(areEqual(hops.get(1), desiredHop(1L, "192.168.2.2", 2, "iface-1")));
+ assertTrue(areEqual(hops.get(0), desiredHop("0", "192.168.2.1", 1, "iface-1")));
+ assertTrue(areEqual(hops.get(1), desiredHop("1", "192.168.2.2", 2, "iface-1")));
}
private boolean areEqual(final NextHop first, final NextHop second) {
return new EqualsBuilder()
- .append(true, first.getAddress().getValue().equals(second.getAddress().getValue()))
- .append(true, first.getId().equals(second.getId()))
+ .append(true, first.getAugmentation(NextHop1.class).getNextHopAddress().getValue()
+ .equals(second.getAugmentation(NextHop1.class).getNextHopAddress().getValue()))
+ .append(true, first.getIndex().equals(second.getIndex()))
.append(true, first.getKey().equals(second.getKey()))
.append(true, first.getOutgoingInterface().equals(second.getOutgoingInterface()))
.isEquals();
}
- private NextHop desiredHop(final long id, final String address, final int weight, final String iface) {
+ private NextHop desiredHop(final String id, final String address, final int weight, final String iface) {
return new NextHopBuilder()
- .setAddress(new Ipv4Address(address))
- .setWeight((short) weight)
- .setOutgoingInterface(iface)
- .setId(id)
- .setKey(new NextHopKey(id))
- .build();
+ .setOutgoingInterface(iface)
+ .setIndex(id)
+ .setKey(new NextHopKey(id))
+ .addAugmentation(VppIpv4NextHopAugmentation.class,
+ new VppIpv4NextHopAugmentationBuilder().setWeight((short) weight).build())
+ .addAugmentation(NextHop1.class, new NextHop1Builder().setNextHopAddress(new Ipv4Address(address)).build())
+ .build();
}
@Override
protected ReaderCustomizer<Route, RouteBuilder> initCustomizer() {
return new Ipv4RouteCustomizer(manager, configuration, routeHopContext, interfaceContext,
- routesContext, routingProtocolContext);
+ routesContext, routingProtocolContext);
}
} \ No newline at end of file