summaryrefslogtreecommitdiffstats
path: root/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/read/Ipv6RouteCustomizer.java
diff options
context:
space:
mode:
Diffstat (limited to 'routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/read/Ipv6RouteCustomizer.java')
-rw-r--r--routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/read/Ipv6RouteCustomizer.java57
1 files changed, 34 insertions, 23 deletions
diff --git a/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/read/Ipv6RouteCustomizer.java b/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/read/Ipv6RouteCustomizer.java
index a7ec37733..6003cf88b 100644
--- a/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/read/Ipv6RouteCustomizer.java
+++ b/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/read/Ipv6RouteCustomizer.java
@@ -35,17 +35,19 @@ import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Nonnull;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.Ipv6Builder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv6.Route;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv6.RouteBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv6.RouteKey;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv6.route.VppIpv6RouteStateBuilder;
-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.ipv6.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.Ipv6Builder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv6.Route;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv6.RouteBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv6.RouteKey;
+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.vpp.ipv6.unicast.routing.rev180319.VppIpv6RouteAttributesAugmentation;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.vpp.ipv6.unicast.routing.rev180319.VppIpv6RouteAttributesAugmentationBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.vpp.ipv6.unicast.routing.rev180319.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv6.route.VppIpv6RouteBuilder;
import org.opendaylight.yangtools.concepts.Builder;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-public class Ipv6RouteCustomizer
+final class Ipv6RouteCustomizer
implements ListReaderCustomizer<Route, RouteKey, RouteBuilder>, RouteMapper, Ipv6RoutePathParser {
private final DumpCacheManager<Ip6FibDetailsReplyDump, Void> ipv6RoutesDumpManager;
@@ -56,12 +58,12 @@ public class Ipv6RouteCustomizer
private final NamingContext routingProtocolContext;
private final Ipv6RouteNamesFactory namesFactory;
- public Ipv6RouteCustomizer(@Nonnull final DumpCacheManager<Ip6FibDetailsReplyDump, Void> ipv6RoutesDumpManager,
- @Nonnull final RoutingConfiguration configuration,
- @Nonnull final MultiNamingContext routeHopContext,
- @Nonnull final NamingContext interfaceContext,
- @Nonnull final NamingContext routesContext,
- @Nonnull final NamingContext routingProtocolContext) {
+ Ipv6RouteCustomizer(@Nonnull final DumpCacheManager<Ip6FibDetailsReplyDump, Void> ipv6RoutesDumpManager,
+ @Nonnull final RoutingConfiguration configuration,
+ @Nonnull final MultiNamingContext routeHopContext,
+ @Nonnull final NamingContext interfaceContext,
+ @Nonnull final NamingContext routesContext,
+ @Nonnull final NamingContext routingProtocolContext) {
this.ipv6RoutesDumpManager = ipv6RoutesDumpManager;
this.configuration = configuration;
this.interfaceContext = interfaceContext;
@@ -79,7 +81,7 @@ public class Ipv6RouteCustomizer
final Optional<Ip6FibDetailsReplyDump> ipv6RoutesDump =
ipv6RoutesDumpManager.getDump(instanceIdentifier, readContext.getModificationCache());
- final String protocolName = instanceIdentifier.firstKeyOf(RoutingProtocol.class).getName();
+ final String protocolName = instanceIdentifier.firstKeyOf(ControlPlaneProtocol.class).getName();
final int protocolTableId = routingProtocolContext.getIndex(protocolName, readContext.getMappingContext());
return ipv6RoutesDump.isPresent()
@@ -102,13 +104,18 @@ public class Ipv6RouteCustomizer
if (!routesContext.containsIndex(learnedRouteName, mappingContext)) {
routesContext.addName(learnedRouteName, mappingContext);
}
- return keyForName(mappingContext, learnedRouteName);
+ return keyForLearnedName(learnedRouteName);
}
- return keyForName(mappingContext, routeName);
+ return keyForName(routeName);
}
- private RouteKey keyForName(final MappingContext mappingContext, final String name) {
- return new RouteKey(Long.valueOf(routesContext.getIndex(name, mappingContext)));
+ private RouteKey keyForName(final String name) {
+ return new RouteKey(namesFactory.ipv6PrefixFromUniqueRouteName(name));
+ }
+
+ private RouteKey keyForLearnedName(final String name) {
+ String learnedPrefix = configuration.getLearnedRouteNamePrefix() + "_";
+ return new RouteKey(namesFactory.ipv6PrefixFromUniqueRouteName(name.replace(learnedPrefix, "")));
}
@Override
@@ -127,8 +134,8 @@ public class Ipv6RouteCustomizer
@Nonnull final RouteBuilder routeBuilder, @Nonnull final ReadContext readContext)
throws ReadFailedException {
final RouteKey key = instanceIdentifier.firstKeyOf(Route.class);
- final String mappedName = routesContext.getName(key.getId().intValue(), readContext.getMappingContext());
- final String protocolName = instanceIdentifier.firstKeyOf(RoutingProtocol.class).getName();
+ final String protocolName = instanceIdentifier.firstKeyOf(ControlPlaneProtocol.class).getName();
+ final String mappedName = namesFactory.uniqueRouteName(protocolName, key.getDestinationPrefix());
final int protocolTableId = routingProtocolContext.getIndex(protocolName, readContext.getMappingContext());
final Optional<Ip6FibDetailsReplyDump> ipv6RoutesDump =
ipv6RoutesDumpManager.getDump(instanceIdentifier, readContext.getModificationCache());
@@ -144,13 +151,17 @@ public class Ipv6RouteCustomizer
if (opDetail.isPresent()) {
final Ip6FibDetails detail = opDetail.get();
- routeBuilder.setNextHopOptions(
+ routeBuilder.setNextHop(
resolveHopType(mappedName, Arrays.asList(detail.path), interfaceContext, routeHopContext,
readContext.getMappingContext(), namesFactory))
.setKey(key)
- .setId(key.getId())
+ .setDestinationPrefix(key.getDestinationPrefix())
.setDestinationPrefix(toIpv6Prefix(detail.address, toJavaByte(detail.addressLength)))
- .setVppIpv6RouteState(new VppIpv6RouteStateBuilder().build());
+ .addAugmentation(VppIpv6RouteAttributesAugmentation.class,
+ new VppIpv6RouteAttributesAugmentationBuilder()
+ .setVppIpv6Route(new VppIpv6RouteBuilder()
+ .build())
+ .build());
}
}
}