From a9d1116ddb2a64f739b8c1c5e5c6c97b0f5d1e9f Mon Sep 17 00:00:00 2001 From: "Claudio D. Gasparini" Date: Tue, 22 May 2018 11:24:12 +0200 Subject: [PATCH] Fix MVPN - Remove unnecesary prefix under mvpn route model - register mvpn routes cases under CacheableNlriObjects - correct registration of ribsupport with corresponding family JIRA: BGPCEP-396 Change-Id: Ibf83e013b53dbda6120621990dc84781565ff70d Signed-off-by: Claudio D. Gasparini --- .../protocol/bgp/mvpn/impl/AbstractMvpnRIBSupport.java | 10 ++++++++++ .../protocol/bgp/mvpn/impl/MvpnIpv4RIBSupport.java | 2 -- .../protocol/bgp/mvpn/impl/MvpnIpv6RIBSupport.java | 2 -- .../protocol/bgp/mvpn/impl/RIBActivator.java | 4 ++-- .../protocol/bgp/mvpn/impl/nlri/Ipv4NlriHandler.java | 4 ++-- bgp/mvpn/src/main/yang/bgp-mvpn-ipv4.yang | 3 --- bgp/mvpn/src/main/yang/bgp-mvpn-ipv6.yang | 3 --- bgp/mvpn/src/main/yang/bgp-mvpn.yang | 4 ---- .../protocol/bgp/mvpn/impl/MvpnIpv4RIBSupportTest.java | 5 ----- .../protocol/bgp/mvpn/impl/MvpnIpv6RIBSupportTest.java | 5 ----- .../protocol/bgp/rib/spi/AbstractRIBSupport.java | 2 +- 11 files changed, 15 insertions(+), 29 deletions(-) diff --git a/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/AbstractMvpnRIBSupport.java b/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/AbstractMvpnRIBSupport.java index 1954fc190f..0b6dbe0417 100644 --- a/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/AbstractMvpnRIBSupport.java +++ b/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/AbstractMvpnRIBSupport.java @@ -8,6 +8,8 @@ package org.opendaylight.protocol.bgp.mvpn.impl; +import com.google.common.collect.ImmutableCollection; +import com.google.common.collect.ImmutableSet; import java.util.Optional; import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; @@ -45,6 +47,7 @@ public abstract class AbstractMvpnRIBSupport extends AbstractRIBSupport { private static final Logger LOG = LoggerFactory.getLogger(AbstractMvpnRIBSupport.class); private final NodeIdentifier nlriRoutesList; + private final ImmutableCollection> cacheableNlriObjects; /** * Default constructor. Requires the QName of the container augmented under the routes choice @@ -67,6 +70,13 @@ public abstract class AbstractMvpnRIBSupport super(mappingService, cazeClass, MvpnRoutes.class, MvpnRoute.class, afiClass, McastVpnSubsequentAddressFamily.class, destContainerQname); this.nlriRoutesList = NodeIdentifier.create(destListQname); + this.cacheableNlriObjects = ImmutableSet.of(cazeClass); + + } + + @Override + public final ImmutableCollection> cacheableNlriObjects() { + return this.cacheableNlriObjects; } @Override diff --git a/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv4RIBSupport.java b/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv4RIBSupport.java index f16691e3fa..e4e382ce43 100644 --- a/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv4RIBSupport.java +++ b/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv4RIBSupport.java @@ -19,7 +19,6 @@ import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSeriali import org.opendaylight.protocol.bgp.mvpn.impl.nlri.Ipv4NlriHandler; import org.opendaylight.protocol.bgp.parser.spi.PathIdUtil; import org.opendaylight.protocol.util.ByteArray; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.destination.DestinationType; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.ipv4.rev180417.MvpnDestination; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.ipv4.rev180417.bgp.rib.rib.loc.rib.tables.routes.MvpnRoutesIpv4Case; @@ -74,7 +73,6 @@ public final class MvpnIpv4RIBSupport extends AbstractMvpnRIBSupport mvpnDest) { return new MvpnDestinationBuilder() - .setPrefix(new Ipv4Prefix(extractPrefix(mvpnDest))) .setMvpnChoice(extractMvpnChoice(mvpnDest)) .setPathId(PathIdUtil.buildPathId(mvpnDest, routePathIdNid())) .build(); diff --git a/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv6RIBSupport.java b/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv6RIBSupport.java index af13889b7b..6afa7bee58 100644 --- a/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv6RIBSupport.java +++ b/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv6RIBSupport.java @@ -19,7 +19,6 @@ import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSeriali import org.opendaylight.protocol.bgp.mvpn.impl.nlri.Ipv6NlriHandler; import org.opendaylight.protocol.bgp.parser.spi.PathIdUtil; import org.opendaylight.protocol.util.ByteArray; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.destination.DestinationType; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.ipv6.rev180417.MvpnDestination; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.ipv6.rev180417.bgp.rib.rib.loc.rib.tables.routes.MvpnRoutesIpv6Case; @@ -74,7 +73,6 @@ public final class MvpnIpv6RIBSupport extends AbstractMvpnRIBSupport mvpnDest) { return new MvpnDestinationBuilder() - .setPrefix(new Ipv6Prefix(extractPrefix(mvpnDest))) .setMvpnChoice(extractMvpnChoice(mvpnDest)) .setPathId(PathIdUtil.buildPathId(mvpnDest, routePathIdNid())) .build(); diff --git a/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/RIBActivator.java b/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/RIBActivator.java index 2409882350..657a580c83 100644 --- a/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/RIBActivator.java +++ b/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/RIBActivator.java @@ -28,9 +28,9 @@ public final class RIBActivator extends AbstractRIBExtensionProviderActivator { final BindingNormalizedNodeSerializer mappingService) { return Lists.newArrayList( context.registerRIBSupport(Ipv4AddressFamily.class, McastVpnSubsequentAddressFamily.class, - MvpnIpv6RIBSupport.getInstance(mappingService)), + MvpnIpv4RIBSupport.getInstance(mappingService)), context.registerRIBSupport(Ipv6AddressFamily.class, McastVpnSubsequentAddressFamily.class, - MvpnIpv4RIBSupport.getInstance(mappingService)) + MvpnIpv6RIBSupport.getInstance(mappingService)) ); } } diff --git a/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/Ipv4NlriHandler.java b/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/Ipv4NlriHandler.java index b6ff76d228..2d1272075e 100644 --- a/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/Ipv4NlriHandler.java +++ b/bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/nlri/Ipv4NlriHandler.java @@ -50,8 +50,8 @@ public final class Ipv4NlriHandler { dests.add(builder.build()); } - return new DestinationMvpnIpv4AdvertizedCaseBuilder().setDestinationMvpn( - new DestinationMvpnBuilder().setMvpnDestination(dests).build()).build(); + return new DestinationMvpnIpv4AdvertizedCaseBuilder() + .setDestinationMvpn(new DestinationMvpnBuilder().setMvpnDestination(dests).build()).build(); } static DestinationMvpnIpv4WithdrawnCase parseIpv4UnreachNlri( diff --git a/bgp/mvpn/src/main/yang/bgp-mvpn-ipv4.yang b/bgp/mvpn/src/main/yang/bgp-mvpn-ipv4.yang index bf313944f2..d5425aab2d 100644 --- a/bgp/mvpn/src/main/yang/bgp-mvpn-ipv4.yang +++ b/bgp/mvpn/src/main/yang/bgp-mvpn-ipv4.yang @@ -16,9 +16,6 @@ module bgp-mvpn-ipv4 { grouping mvpn-destination { list mvpn-destination { uses mvpn:mvpn; - leaf prefix { - type inet:ipv4-prefix; - } uses bgp-msg:path-id-grouping; } } diff --git a/bgp/mvpn/src/main/yang/bgp-mvpn-ipv6.yang b/bgp/mvpn/src/main/yang/bgp-mvpn-ipv6.yang index c9cc62d937..b6ddebd2a6 100644 --- a/bgp/mvpn/src/main/yang/bgp-mvpn-ipv6.yang +++ b/bgp/mvpn/src/main/yang/bgp-mvpn-ipv6.yang @@ -16,9 +16,6 @@ module bgp-mvpn-ipv6 { grouping mvpn-destination { list mvpn-destination { uses mvpn:mvpn; - leaf prefix { - type inet:ipv6-prefix; - } uses bgp-msg:path-id-grouping; } } diff --git a/bgp/mvpn/src/main/yang/bgp-mvpn.yang b/bgp/mvpn/src/main/yang/bgp-mvpn.yang index 49685ecac3..57f12cc551 100644 --- a/bgp/mvpn/src/main/yang/bgp-mvpn.yang +++ b/bgp/mvpn/src/main/yang/bgp-mvpn.yang @@ -266,11 +266,7 @@ module bgp-mvpn { container mvpn-routes { list mvpn-route { key "route-key path-id"; - uses mvpn-bgp-rib-route; - leaf prefix { - type inet:ip-prefix; - } } } } diff --git a/bgp/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv4RIBSupportTest.java b/bgp/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv4RIBSupportTest.java index 9a33989f81..9f5d7ec892 100644 --- a/bgp/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv4RIBSupportTest.java +++ b/bgp/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv4RIBSupportTest.java @@ -21,8 +21,6 @@ import org.junit.Ignore; import org.junit.Test; import org.opendaylight.protocol.bgp.rib.spi.AbstractRIBSupportTest; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.PathId; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.Update; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.Attributes1; @@ -61,7 +59,6 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates; public class MvpnIpv4RIBSupportTest extends AbstractRIBSupportTest { private static final MvpnRouteKey ROUTE_KEY; private static final MvpnRoute ROUTE; - private static final IpPrefix PREFIX = new IpPrefix(new Ipv4Prefix("127.0.0.1/32")); private static final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.mvpn .routes.MvpnRoutes MVPN_ROUTES; private static final MvpnChoice MVPN = new InterAsIPmsiADCaseBuilder().setInterAsIPmsiAD( @@ -72,7 +69,6 @@ public class MvpnIpv4RIBSupportTest extends AbstractRIBSupportTest { private static final PathId PATH_ID = new PathId(0L); private static final MvpnDestination MVPN_DESTINATION = new MvpnDestinationBuilder() .setMvpnChoice(MVPN) - .setPrefix(PREFIX.getIpv4Prefix()) .setPathId(PATH_ID) .build(); private static final DestinationMvpnIpv4AdvertizedCase REACH_NLRI = new DestinationMvpnIpv4AdvertizedCaseBuilder() @@ -88,7 +84,6 @@ public class MvpnIpv4RIBSupportTest extends AbstractRIBSupportTest { ROUTE_KEY = new MvpnRouteKey(PATH_ID, "AgwAAQECAwQBAgAAAAE="); ROUTE = new MvpnRouteBuilder() .setRouteKey(ROUTE_KEY.getRouteKey()) - .setPrefix(PREFIX) .setPathId(ROUTE_KEY.getPathId()) .setAttributes(ATTRIBUTES) .setMvpnChoice(MVPN) diff --git a/bgp/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv6RIBSupportTest.java b/bgp/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv6RIBSupportTest.java index 56d282e2b6..8cb4e431bb 100644 --- a/bgp/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv6RIBSupportTest.java +++ b/bgp/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv6RIBSupportTest.java @@ -23,8 +23,6 @@ import org.junit.Test; import org.opendaylight.protocol.bgp.rib.spi.AbstractRIBSupportTest; import org.opendaylight.protocol.util.ByteArray; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.PathId; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.Update; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.Attributes1; @@ -65,7 +63,6 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates; public final class MvpnIpv6RIBSupportTest extends AbstractRIBSupportTest { private static final MvpnRouteKey ROUTE_KEY; private static final MvpnRoute ROUTE; - private static final IpPrefix PREFIX = new IpPrefix(new Ipv6Prefix("2001:db8:1:1::/64")); private static final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.mvpn .routes.MvpnRoutes MVPN_ROUTES; private static final MvpnChoice MVPN = new InterAsIPmsiADCaseBuilder().setInterAsIPmsiAD( @@ -76,7 +73,6 @@ public final class MvpnIpv6RIBSupportTest extends AbstractRIBSupportTest TABLES_II = InstanceIdentifier.create(BgpRib.class) .child(Rib.class).child(LocRib.class).child(Tables.class); private static final NodeIdentifier ROUTES = new NodeIdentifier(Routes.QNAME); private static final ApplyRoute DELETE_ROUTE = new DeleteRoute(); -- 2.36.6