Move MVPN extended community to concepts 99/72999/2
authorClaudio D. Gasparini <claudio.gasparini@pantheon.tech>
Wed, 13 Jun 2018 15:50:21 +0000 (17:50 +0200)
committerClaudio D. Gasparini <claudio.gasparini@pantheon.tech>
Thu, 14 Jun 2018 11:32:09 +0000 (13:32 +0200)
since they are shared by differents family extensions.

Change-Id: Idf1b37946fd3088f4513aaeefa3df31ca8e90639
Signed-off-by: Claudio D. Gasparini <claudio.gasparini@pantheon.tech>
bgp/concepts/src/main/yang/bgp-types.yang
bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/BGPActivator.java
bgp/mvpn/src/main/yang/bgp-mvpn.yang
bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/BGPActivator.java
bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/update/extended/communities/SourceASHandler.java [moved from bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/extended/community/SourceASHandler.java with 79% similarity]
bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/update/extended/communities/VrfRouteImportHandler.java [moved from bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/extended/community/VrfRouteImportHandler.java with 77% similarity]
bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/update/extended/communities/four/octect/as/specific/SourceAS4OctectHandler.java [moved from bgp/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/extended/community/SourceAS4OctectHandler.java with 82% similarity]
bgp/parser-impl/src/test/java/org/opendaylight/protocol/bgp/parser/impl/message/update/extended/communities/SourceAS4OctectASHandlerTest.java [moved from bgp/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/extended/community/SourceAS4OctectASHandlerTest.java with 79% similarity]
bgp/parser-impl/src/test/java/org/opendaylight/protocol/bgp/parser/impl/message/update/extended/communities/SourceASHandlerTest.java [moved from bgp/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/extended/community/SourceASHandlerTest.java with 81% similarity]
bgp/parser-impl/src/test/java/org/opendaylight/protocol/bgp/parser/impl/message/update/extended/communities/VrfRouteImportHandlerTest.java [moved from bgp/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/extended/community/VrfRouteImportHandlerTest.java with 83% similarity]

index 064364bf3141fac4067ad7189cff077fec9705e4..24d202fefe521f4164d295d12244f725c35e7589 100644 (file)
@@ -282,6 +282,25 @@ module bgp-types {
             }
         }
     }
+
+    grouping source-as-4-extended-community-grouping {
+        reference "https://tools.ietf.org/html/rfc6514#section-6";
+        leaf global-administrator {
+            description "Carries a 4-octet Autonomous System (AS) number";
+            reference "https://tools.ietf.org/html/rfc5668#section-2";
+
+            mandatory true;
+            type inet:as-number;
+        }
+    }
+
+    grouping source-as-extended-community-grouping {
+        reference "https://tools.ietf.org/html/rfc6514#section-6";
+        leaf global-administrator {
+            type bgp-t:short-as-number;
+        }
+    }
+
     grouping extended-community {
         leaf transitive {
             type boolean;
@@ -387,6 +406,22 @@ module bgp-types {
                     uses encapsulation-extended-community;
                 }
             }
+            case vrf-route-import-extended-community-case {
+                reference "https://tools.ietf.org/html/rfc6514#section-7";
+                container vrf-route-import-extended-community {
+                    uses inet4-specific-extended-community-common;
+                }
+            }
+            case source-as-4-extended-community-case {
+                container source-as-4-extended-community {
+                    uses source-as-4-extended-community-grouping;
+                }
+            }
+            case source-as-extended-community-case {
+                container source-as-extended-community {
+                    uses source-as-extended-community-grouping;
+                }
+            }
         }
     }
 
index 08ac42ca641ede4fc92fa34e2e19aa3e096bbbe7..fe6682969a32639f8708968cf793556282dc14bc 100644 (file)
@@ -15,9 +15,6 @@ import org.opendaylight.protocol.bgp.inet.codec.nexthop.Ipv4NextHopParserSeriali
 import org.opendaylight.protocol.bgp.inet.codec.nexthop.Ipv6NextHopParserSerializer;
 import org.opendaylight.protocol.bgp.mvpn.impl.attributes.PEDistinguisherLabelsAttributeHandler;
 import org.opendaylight.protocol.bgp.mvpn.impl.attributes.PMSITunnelAttributeHandler;
-import org.opendaylight.protocol.bgp.mvpn.impl.attributes.extended.community.SourceAS4OctectHandler;
-import org.opendaylight.protocol.bgp.mvpn.impl.attributes.extended.community.SourceASHandler;
-import org.opendaylight.protocol.bgp.mvpn.impl.attributes.extended.community.VrfRouteImportHandler;
 import org.opendaylight.protocol.bgp.mvpn.impl.nlri.MvpnIpv4NlriHandler;
 import org.opendaylight.protocol.bgp.mvpn.impl.nlri.MvpnIpv6NlriHandler;
 import org.opendaylight.protocol.bgp.parser.spi.AbstractBGPExtensionProviderActivator;
@@ -25,9 +22,6 @@ import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.ipv4.rev180417.mvpn.routes.ipv4.MvpnRoutesIpv4;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.ipv6.rev180417.mvpn.routes.ipv6.MvpnRoutesIpv6;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.McastVpnSubsequentAddressFamily;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.SourceAs4ExtendedCommunityCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.SourceAsExtendedCommunityCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.VrfRouteImportExtendedCommunityCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.Ipv4AddressFamily;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.Ipv6AddressFamily;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.next.hop.c.next.hop.Ipv4NextHopCase;
@@ -72,26 +66,6 @@ public final class BGPActivator extends AbstractBGPExtensionProviderActivator {
         regs.add(context.registerNlriSerializer(MvpnRoutesIpv6.class, mvpnIpv6NlriHandler));
     }
 
-    private static void registerExtendedCommunities(final BGPExtensionProviderContext context,
-            final List<AutoCloseable> regs) {
-
-        final VrfRouteImportHandler vrfRouteImportHandler = new VrfRouteImportHandler();
-        regs.add(context.registerExtendedCommunityParser(vrfRouteImportHandler.getType(true),
-                vrfRouteImportHandler.getSubType(), vrfRouteImportHandler));
-        regs.add(context.registerExtendedCommunitySerializer(VrfRouteImportExtendedCommunityCase.class,
-                vrfRouteImportHandler));
-
-        final SourceAS4OctectHandler source4ASHandler = new SourceAS4OctectHandler();
-        regs.add(context.registerExtendedCommunityParser(source4ASHandler.getType(true),
-                source4ASHandler.getSubType(), source4ASHandler));
-        regs.add(context.registerExtendedCommunitySerializer(SourceAs4ExtendedCommunityCase.class, source4ASHandler));
-
-        final SourceASHandler sourceASHandler = new SourceASHandler();
-        regs.add(context.registerExtendedCommunityParser(sourceASHandler.getType(true),
-                sourceASHandler.getSubType(), sourceASHandler));
-        regs.add(context.registerExtendedCommunitySerializer(SourceAsExtendedCommunityCase.class, sourceASHandler));
-    }
-
     private static void registerAfiSafi(final BGPExtensionProviderContext context, final List<AutoCloseable> regs) {
         regs.add(context.registerSubsequentAddressFamily(McastVpnSubsequentAddressFamily.class, MVPN_SAFI));
     }
@@ -102,7 +76,6 @@ public final class BGPActivator extends AbstractBGPExtensionProviderActivator {
         TunnelIdentifierActivator.registerTunnelIdentifierHandlers(context, regs);
         registerAfiSafi(context, regs);
         registerNlri(context, regs);
-        registerExtendedCommunities(context, regs);
         registerAttributesHandler(context, regs);
         NlriActivator.registerNlriParsers(regs);
         return regs;
index 232ec79acc8c3500e4d12eac8e3313628b16530f..7784f952c1bc0f7bd37749e8a1606ef3564d8a7e 100644 (file)
@@ -6,7 +6,6 @@ module bgp-mvpn {
     import bgp-types { prefix bgp-t; revision-date 2018-03-29; }
     import ietf-inet-types { prefix inet; revision-date 2013-07-15; }
     import pmsi-tunnel { prefix pmsi; revision-date 2018-03-29; }
-    import bgp-message { prefix bgp-msg; revision-date 2018-03-29; }
     import bgp-rib { prefix bgp-rib; revision-date 2018-03-29; }
     import yang-ext { prefix ext; revision-date "2013-07-09"; }
     import network-concepts { prefix netc; revision-date 2013-11-25; }
@@ -221,44 +220,6 @@ module bgp-mvpn {
                 ext:augment-identifier pe-distinguisher-labels-attribute-augmentation;
                 uses pe-distinguisher-labels-attribute;
             }
-            augment "attributes/extended-communities/extended-community" {
-                ext:augment-identifier vrf-route-import-extended-community-augmentation;
-
-                case vrf-route-import-extended-community-case {
-                    reference "https://tools.ietf.org/html/rfc6514#section-7";
-                    container vrf-route-import-extended-community {
-                        uses bgp-t:inet4-specific-extended-community-common;
-                    }
-                }
-            }
-            augment "attributes/extended-communities/extended-community" {
-                ext:augment-identifier source-as-4-extended-augmentation;
-
-                case source-as-4-extended-community-case {
-                    container source-as-4-extended-community {
-                        reference "https://tools.ietf.org/html/rfc6514#section-6";
-                        leaf global-administrator {
-                            description "Carries a 4-octet Autonomous System (AS) number";
-                            reference "https://tools.ietf.org/html/rfc5668#section-2";
-
-                            mandatory true;
-                            type inet:as-number;
-                        }
-                    }
-                }
-            }
-            augment "attributes/extended-communities/extended-community" {
-                ext:augment-identifier source-as-extended-augmentation;
-
-                case source-as-extended-community-case {
-                    container source-as-extended-community {
-                        reference "https://tools.ietf.org/html/rfc6514#section-6";
-                        leaf global-administrator {
-                            type bgp-t:short-as-number;
-                        }
-                    }
-                }
-            }
         }
     }
 
index 460fa89ecf494a85fdc7c379c4b4c3e2327c6f5b..ea3ff2e3c28a11fff218058620a8bfe003c28c9d 100755 (executable)
@@ -48,6 +48,9 @@ import org.opendaylight.protocol.bgp.parser.impl.message.update.extended.communi
 import org.opendaylight.protocol.bgp.parser.impl.message.update.extended.communities.RouteOriginIpv4EcHandler;
 import org.opendaylight.protocol.bgp.parser.impl.message.update.extended.communities.RouteTargetAsTwoOctetEcHandler;
 import org.opendaylight.protocol.bgp.parser.impl.message.update.extended.communities.RouteTargetIpv4EcHandler;
+import org.opendaylight.protocol.bgp.parser.impl.message.update.extended.communities.four.octect.as.specific.SourceAS4OctectHandler;
+import org.opendaylight.protocol.bgp.parser.impl.message.update.extended.communities.SourceASHandler;
+import org.opendaylight.protocol.bgp.parser.impl.message.update.extended.communities.VrfRouteImportHandler;
 import org.opendaylight.protocol.bgp.parser.impl.message.update.extended.communities.four.octect.as.specific.Generic4OctASEcHandler;
 import org.opendaylight.protocol.bgp.parser.impl.message.update.extended.communities.four.octect.as.specific.RouteOrigin4OctectASEcHandler;
 import org.opendaylight.protocol.bgp.parser.impl.message.update.extended.communities.four.octect.as.specific.RouteTarget4OctectASEcHandler;
@@ -100,6 +103,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.type
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.RouteOriginIpv4Case;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.RouteTargetExtendedCommunityCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.RouteTargetIpv4Case;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.SourceAs4ExtendedCommunityCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.SourceAsExtendedCommunityCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.VrfRouteImportExtendedCommunityCase;
 
 public final class BGPActivator extends AbstractBGPExtensionProviderActivator {
 
@@ -324,5 +330,21 @@ public final class BGPActivator extends AbstractBGPExtensionProviderActivator {
         regs.add(context.registerExtendedCommunityParser(encapsulationECHandler.getType(true), encapsulationECHandler.getSubType(),
                 encapsulationECHandler));
         regs.add(context.registerExtendedCommunitySerializer(EncapsulationCase.class, encapsulationECHandler));
+
+        final VrfRouteImportHandler vrfRouteImportHandler = new VrfRouteImportHandler();
+        regs.add(context.registerExtendedCommunityParser(vrfRouteImportHandler.getType(true),
+                vrfRouteImportHandler.getSubType(), vrfRouteImportHandler));
+        regs.add(context.registerExtendedCommunitySerializer(VrfRouteImportExtendedCommunityCase.class,
+                vrfRouteImportHandler));
+
+        final SourceAS4OctectHandler source4ASHandler = new SourceAS4OctectHandler();
+        regs.add(context.registerExtendedCommunityParser(source4ASHandler.getType(true),
+                source4ASHandler.getSubType(), source4ASHandler));
+        regs.add(context.registerExtendedCommunitySerializer(SourceAs4ExtendedCommunityCase.class, source4ASHandler));
+
+        final SourceASHandler sourceASHandler = new SourceASHandler();
+        regs.add(context.registerExtendedCommunityParser(sourceASHandler.getType(true),
+                sourceASHandler.getSubType(), sourceASHandler));
+        regs.add(context.registerExtendedCommunitySerializer(SourceAsExtendedCommunityCase.class, sourceASHandler));
     }
 }
@@ -6,19 +6,19 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bgp.mvpn.impl.attributes.extended.community;
+package org.opendaylight.protocol.bgp.parser.impl.message.update.extended.communities;
 
 import com.google.common.base.Preconditions;
 import com.google.common.primitives.Ints;
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.protocol.bgp.parser.spi.extended.community.AbstractTwoOctetAsExtendedCommunity;
 import org.opendaylight.protocol.util.ByteBufWriteUtil;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.SourceAsExtendedCommunityCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.SourceAsExtendedCommunityCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.source.as.extended.community._case.SourceAsExtendedCommunity;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.source.as.extended.community._case.SourceAsExtendedCommunityBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.ShortAsNumber;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.ExtendedCommunity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.SourceAsExtendedCommunityCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.SourceAsExtendedCommunityCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.source.as.extended.community._case.SourceAsExtendedCommunity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.source.as.extended.community._case.SourceAsExtendedCommunityBuilder;
 
 public final class SourceASHandler extends AbstractTwoOctetAsExtendedCommunity {
     private static final short SUBTYPE = 9;
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bgp.mvpn.impl.attributes.extended.community;
+package org.opendaylight.protocol.bgp.parser.impl.message.update.extended.communities;
 
 import static org.opendaylight.protocol.bgp.parser.spi.extended.community.Inet4SpecificExtendedCommunityCommonUtil.parseCommon;
 import static org.opendaylight.protocol.bgp.parser.spi.extended.community.Inet4SpecificExtendedCommunityCommonUtil.serializeCommon;
@@ -14,11 +14,11 @@ import static org.opendaylight.protocol.bgp.parser.spi.extended.community.Inet4S
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.protocol.bgp.parser.spi.extended.community.AbstractIpv4ExtendedCommunity;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.VrfRouteImportExtendedCommunityCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.VrfRouteImportExtendedCommunityCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.vrf.route._import.extended.community._case.VrfRouteImportExtendedCommunity;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.vrf.route._import.extended.community._case.VrfRouteImportExtendedCommunityBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.ExtendedCommunity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.VrfRouteImportExtendedCommunityCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.VrfRouteImportExtendedCommunityCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.vrf.route._import.extended.community._case.VrfRouteImportExtendedCommunity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.vrf.route._import.extended.community._case.VrfRouteImportExtendedCommunityBuilder;
 
 public final class VrfRouteImportHandler extends AbstractIpv4ExtendedCommunity {
     private static final short SUBTYPE = 11;
@@ -6,17 +6,17 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bgp.mvpn.impl.attributes.extended.community;
+package org.opendaylight.protocol.bgp.parser.impl.message.update.extended.communities.four.octect.as.specific;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.protocol.bgp.parser.spi.extended.community.Abstract4OctetAsExtendedCommunity;
 import org.opendaylight.protocol.util.ByteBufWriteUtil;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.SourceAs4ExtendedCommunityCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.SourceAs4ExtendedCommunityCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.source.as._4.extended.community._case.SourceAs4ExtendedCommunityBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.ExtendedCommunity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.SourceAs4ExtendedCommunityCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.SourceAs4ExtendedCommunityCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.source.as._4.extended.community._case.SourceAs4ExtendedCommunityBuilder;
 
 public final class SourceAS4OctectHandler extends Abstract4OctetAsExtendedCommunity {
     private static final short SUBTYPE = 209;
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bgp.mvpn.impl.attributes.extended.community;
+package org.opendaylight.protocol.bgp.parser.impl.message.update.extended.communities;
 
 import static org.junit.Assert.assertEquals;
 
@@ -14,12 +14,13 @@ import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import org.junit.Assert;
 import org.junit.Test;
+import org.opendaylight.protocol.bgp.parser.impl.message.update.extended.communities.four.octect.as.specific.SourceAS4OctectHandler;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.SourceAs4ExtendedCommunityCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.SourceAs4ExtendedCommunityCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.source.as._4.extended.community._case.SourceAs4ExtendedCommunityBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.ExtendedCommunity;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.As4GenericSpecExtendedCommunityCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.SourceAs4ExtendedCommunityCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.SourceAs4ExtendedCommunityCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.source.as._4.extended.community._case.SourceAs4ExtendedCommunityBuilder;
 
 public class SourceAS4OctectASHandlerTest {
     private static final byte[] INPUT = {0, 0, 0, 20, 0, 0};
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bgp.mvpn.impl.attributes.extended.community;
+package org.opendaylight.protocol.bgp.parser.impl.message.update.extended.communities;
 
 import static org.junit.Assert.assertEquals;
 
@@ -14,12 +14,12 @@ import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import org.junit.Assert;
 import org.junit.Test;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.SourceAsExtendedCommunityCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.SourceAsExtendedCommunityCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.source.as.extended.community._case.SourceAsExtendedCommunityBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.ShortAsNumber;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.ExtendedCommunity;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.As4GenericSpecExtendedCommunityCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.SourceAsExtendedCommunityCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.SourceAsExtendedCommunityCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.source.as.extended.community._case.SourceAsExtendedCommunityBuilder;
 
 public class SourceASHandlerTest {
     private static final byte[] INPUT = {0, 1, 0, 0, 0, 0};
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bgp.mvpn.impl.attributes.extended.community;
+package org.opendaylight.protocol.bgp.parser.impl.message.update.extended.communities;
 
 import static org.junit.Assert.assertEquals;
 
@@ -15,11 +15,11 @@ import io.netty.buffer.Unpooled;
 import org.junit.Assert;
 import org.junit.Test;
 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.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.VrfRouteImportExtendedCommunityCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.VrfRouteImportExtendedCommunityCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev180417.bgp.rib.route.attributes.extended.communities.extended.community.vrf.route._import.extended.community._case.VrfRouteImportExtendedCommunityBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.ExtendedCommunity;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.As4GenericSpecExtendedCommunityCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.VrfRouteImportExtendedCommunityCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.VrfRouteImportExtendedCommunityCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.vrf.route._import.extended.community._case.VrfRouteImportExtendedCommunityBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.inet4.specific.extended.community.common.Inet4SpecificExtendedCommunityCommonBuilder;
 
 public class VrfRouteImportHandlerTest {