Moving vpn-instance yang from VPNMgr > NeutronVPN 18/87418/7
authorAshik Alias <ashik.alias@ericsson.com>
Tue, 4 Feb 2020 10:32:52 +0000 (16:02 +0530)
committerAshik Alias <ashik.alias@ericsson.com>
Wed, 12 Feb 2020 12:47:50 +0000 (18:17 +0530)
Vpn-instance and Vpn-interface Config Datastore are predominantly
used by the neutron-VPN layer, but the datastore is defined in
VPN manager. This review will take care of moving Vpn-instance
and associated yang models to neutron-VPN layer.

The second part of this change[1] will take care of moving
VPN-interface DS to neutronvpn

[1] https://git.opendaylight.org/gerrit/#/c/netvirt/+/87445/

Change-Id: I3c191d4f4acfc304548b0bfe954f80e75212d599
Signed-off-by: Ashik Alias <ashik.alias@ericsson.com>
22 files changed:
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/evpn/utils/EvpnUtils.java
natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/NatUtil.java
neutronvpn/api/src/main/yang/l3vpn-instances-interfaces.yang [new file with mode: 0644]
neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronBgpvpnChangeListener.java
neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronSubnetChangeListener.java
neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnManager.java
neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnUtils.java
neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/evpn/manager/NeutronEvpnManager.java
neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/evpn/utils/NeutronEvpnUtils.java
vpnmanager/api/src/main/java/org/opendaylight/netvirt/vpnmanager/api/IVpnManager.java
vpnmanager/api/src/main/java/org/opendaylight/netvirt/vpnmanager/api/VpnHelper.java
vpnmanager/api/src/main/yang/l3vpn.yang
vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/SubnetmapChangeListener.java
vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/TunnelEndPointChangeListener.java
vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnInstanceListener.java
vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnManagerImpl.java
vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnUtil.java
vpnmanager/impl/src/test/java/org/opendaylight/netvirt/vpnmanager/intervpnlink/L3VpnTestCatalog.java
vpnmanager/impl/src/test/java/org/opendaylight/netvirt/vpnmanager/test/VpnServiceTest.java
vpnmanager/impl/src/test/java/org/opendaylight/netvirt/vpnmanager/test/VpnSubnetRouteHandlerTest.java
vpnmanager/shell/src/main/java/org/opendaylight/netvirt/vpnmanager/shell/ShowVpn.java
vpnmanager/shell/src/main/java/org/opendaylight/netvirt/vpnmanager/shell/ShowVpnInstanceOpData.java

index 6f2aae352a5d8f7a29175f109da13ef6c0d0fd70..f7474943d9f503cea4f4ac644c30ef0eb82a6ef0 100644 (file)
@@ -54,7 +54,6 @@ import org.opendaylight.netvirt.elan.utils.ElanConstants;
 import org.opendaylight.netvirt.elan.utils.ElanUtils;
 import org.opendaylight.netvirt.elanmanager.api.ElanHelper;
 import org.opendaylight.netvirt.vpnmanager.api.IVpnManager;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.services.info.BoundServices;
@@ -69,6 +68,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.Evpn
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.instances.ElanInstance;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.forwarding.entries.MacEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.VrfEntryBase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.neutron.vpn.portip.port.data.VpnPortipToPort;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
index 9a27f8d1c0c79675d672b2d918bfd967fa21c57f..0ade229c9e5fbe37281acb7de02374b2d8611f85 100644 (file)
@@ -82,11 +82,7 @@ import org.opendaylight.netvirt.neutronvpn.api.utils.NeutronConstants;
 import org.opendaylight.netvirt.neutronvpn.api.utils.NeutronUtils;
 import org.opendaylight.netvirt.vpnmanager.api.IVpnManager;
 import org.opendaylight.serviceutils.upgrade.UpgradeState;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnAfConfig;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInstances;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInterfaces;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstanceKey;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.interfaces.VpnInterface;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.interfaces.VpnInterfaceKey;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
@@ -238,6 +234,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev16011
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.snatint.ip.port.map.intip.port.map.IpPortKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.snatint.ip.port.map.intip.port.map.ip.port.IntIpProtoType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.snatint.ip.port.map.intip.port.map.ip.port.IntIpProtoTypeKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.VpnAfConfig;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.VpnInstances;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstanceKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.GetFixedIPsForNeutronPortInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.GetFixedIPsForNeutronPortOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.NetworkMaps;
diff --git a/neutronvpn/api/src/main/yang/l3vpn-instances-interfaces.yang b/neutronvpn/api/src/main/yang/l3vpn-instances-interfaces.yang
new file mode 100644 (file)
index 0000000..dbf5f06
--- /dev/null
@@ -0,0 +1,527 @@
+
+module l3vpn-instances-interfaces {
+
+    namespace "urn:opendaylight:netvirt:neutronvpn:l3vpn";
+    prefix l3vpn-instances-interfaces;
+
+    import ietf-yang-types { prefix yang; revision-date "2013-07-15";}
+
+    import ietf-interfaces {
+        prefix if;
+            //rfc7223-YANG Interface Management
+    }
+    import yang-ext {prefix ext; revision-date "2013-07-09";}
+    import neutronvpn {
+        prefix nvpn;
+        revision-date "2015-06-02";
+    }
+    revision "2020-02-04" {
+        description "This YANG module defines the generic configuration data for L3VPN service.
+            This has been adapted from l3vpn.yang";
+    }
+
+    grouping vpn-af-config {
+        description "A set of configuration parameters that is applicable to both IPv4 and
+            IPv6 address family for a VPN instance .";
+
+        leaf-list route-distinguisher {
+            description "The route-distinguisher command configures a route distinguisher (RD)
+                for the IPv4 or IPv6 address family of a VPN instance. Format is ASN:nn or IP-address:nn.";
+
+            config "true";
+            type string {
+                length "3..21";
+            }
+        }
+
+        container vpnTargets {
+            description "The vpn-target command configures the export or import VPN target
+                extended community attribute for the VPN instance IPv4/IPv6 address family.
+                Format is ASN:nn or IP-address:nn.";
+
+            list vpnTarget {
+                key "vrfRTValue";
+                max-elements "unbounded";
+                min-elements "0";
+                description "L3vpn vpntarget configure class";
+
+                leaf vrfRTValue {
+
+                    description "Vpn-target: adds VPN target extended community attribute to the
+                        export or import VPN target extended community list. The
+                        vpn-target can be expressed in either of the following formats:
+                        (1)16-bit AS number:32-bit user-defined number
+                          For example, 1:3. The AS number ranges from 0 to 65535. The
+                          user-defined number ranges from 0 to 4294967295. The AS number
+                          and the user-defined number cannot be 0s at the same time.
+                          That is, a VPN target cannot be 0:0.
+                       (2)32-bit IP address:16-bit user-defined number
+                          For example, 192.168.122.15:1. The IP address ranges from
+                          0.0.0.0 to 255.255.255.255. The user-defined number ranges from 0 to 65535.
+                       (3)32-bit IP address:16-bit user-defined number
+                          For example, 192.168.122.15:1. An IP address ranges from
+                          0.0.0.0 to 255.255.255.255. A user-defined number ranges from 0 to 65535.";
+
+                    config "true";
+                    mandatory "true";
+                    type string {
+                        length "3..21";
+                    }
+                }
+
+                leaf vrfRTType {
+                    description "Specifies the vpn target type, export-extcommunity:
+                        specifies the extended community attributes carried in routing
+                        information to be sent. import-extcommunity: receives routing
+                        information carrying specified extended community attributes.";
+
+                    mandatory "true";
+                    type enumeration {
+                        enum export_extcommunity {
+                            value "0";
+                            description "export-extcommunity:";
+                        }
+                        enum import_extcommunity {
+                            value "1";
+                            description "import-extcommunity:";
+                        }
+                        enum both {
+                            value "2";
+                            description "export-extcommunity & import-extcommunity:";
+                        }
+                    }
+                }
+            }
+        }
+
+        container apply-label {
+            description "Apply one label mode for the VPN instance route.";
+
+            choice apply-label-mode {
+                case per-route {
+                    description "The apply-label per-route command enables the one-label-per-route
+                        mode. The VPN instance IPv4/IPv6 address family assigns a unique
+                        label to each route to be sent to the peer PE.";
+
+                    leaf apply-label-per-route {
+                        type boolean;
+                        default "true";
+                    }
+                }
+                case per-instance {
+                    description "The apply-label per-instance command applies one label to all VPN
+                        instance IPv4 address family or IPv6 address family routes to a peer PE.";
+
+                    leaf apply-label-per-instance {
+                        type boolean;
+                        default "false";
+                    }
+                }
+            }
+        }//End of "container apply-label"
+
+        leaf import-route-policy {
+            description "The import route-policy command associates a VPN instance enabled
+                with the IPv4 or IPv6 address family with an import routing policy.
+                Only one import routing policy can be associated with a VPN instance
+                enabled with the IPv4 or IPv6 address family. If the import route-policy
+                command is run more than once, the latest configuration overrides the previous ones.";
+
+            config "true";
+            type string {
+                length "1..40";
+            }
+        }
+
+        leaf export-route-policy {
+            description "The export route-policy command associates a VPN instance enabled
+                with the IPv4 or IPv6 address family with an export routing policy.
+                Only one export routing policy can be associated with a VPN instance enabled with
+                the IPv4 or IPv6 address family. If the export route-policy command is run more than once,
+                the latest configuration overrides the previous ones.";
+
+            config "true";
+            type string {
+                length "1..40";
+            }
+        }
+
+        container prefix-limit {
+            description "The prefix limit command sets a limit on the maximum number of
+                prefixes supported in the existing VPN instance, preventing the
+                PE from importing excessive VPN route prefixes.";
+
+            leaf prefix-limit-number {
+                description "Specifies the maximum number of prefixes supported in the VPN
+                    instance IPv4 or IPv6 address family.";
+
+                type uint32 {
+                    range "1..4294967295";
+                }
+            }
+
+            choice prefix-limit-action {
+                case enable-alert-percent {
+                    leaf alert-percent-value {
+                        description "Specifies the proportion of the alarm threshold to the maximum
+                            number of prefixes.";
+                        type uint8 {
+                            range "1..100";
+                        }
+                    }
+                    leaf route-unchanged {
+                        description "Indicates that the routing table remains unchanged. By default,
+                            route-unchanged is not configured. When the number of prefixes
+                            in the routing table is greater than the value of the parameter number,
+                            routes are processed as follows:
+                             (1)If route-unchanged is configured, routes in the routing table remain unchanged.
+                             (2)If route-unchanged is not configured, all routes in the
+                                routing table are deleted and then re-added.";
+
+                        config "true";
+                        type boolean;
+                        default "false";
+                    }
+                }
+                case enable-simple-alert {
+                    leaf simple-alert {
+                        description "Indicates that when the number of VPN route prefixes exceeds
+                        number, prefixes can still join the VPN routing table and alarms are displayed.";
+
+                        config "true";
+                        type boolean;
+                        default "false";
+                    }
+                }
+            }
+        }
+
+        container routing-table-limit {
+            description "The routing-table limit command sets a limit on the maximum number of
+                routes that the IPv4 or IPv6 address family of a VPN instance can support.
+                By default, there is no limit on the maximum number of routes that the
+                IPv4 or IPv6 address family of a VPN instance can support, but the
+                total number of private network and public network routes on a device
+                cannot exceed the allowed maximum number of unicast routes.";
+
+            leaf routing-table-limit-number {
+                description "Specifies the maximum number of routes supported by a VPN instance. ";
+                config "true";
+                type uint32 {
+                    range "1..4294967295";
+                }
+            }
+            choice routing-table-limit-action {
+                case enable-alert-percent {
+                    leaf alert-percent-value {
+                        description "Specifies the percentage of the maximum number of routes. When
+                            the maximum number of routes that join the VPN instance is up
+                            to the value (number*alert-percent)/100, the system prompts alarms.
+                            The VPN routes can be still added to the routing table,
+                            but after the number of routes reaches number, the subsequent routes are dropped.";
+
+                        config "true";
+                        type uint8 {
+                            range "1..100";
+                        }
+                    }
+                }
+                case enable-simple-alert {
+                    leaf simple-alert {
+                        description "Indicates that when VPN routes exceed number, routes can still
+                            be added into the routing table, but the system prompts alarms.
+                            However, after the total number of VPN routes and network public
+                            routes reaches the unicast route limit specified in the License,
+                            the subsequent VPN routes are dropped.";
+                        config "true";
+                        type boolean;
+                    }
+                }
+            }
+        }
+
+        leaf vpn-frr {
+            description "Enable VPN FRR in the VPN instance address family view.
+                If a PE is connected to two other PEs, running the vpn frr command in
+                the VPN instance address family view of the PE enables VPN FRR and
+                improves network reliability. After VPN FRR is configured, traffic can
+                switch to the secondary LSP immediately after the primary LSP becomes faulty.";
+
+            type boolean;
+            default "false";
+        }
+
+
+        /*
+        * VPN QoS.
+        */
+        container l3vpnVrfPipe {
+            description "The diffserv-mode command configures the mode of the MPLS
+                differentiated service (Diff-Serv) for ensuring end-to-end QoS.";
+
+            leaf pipeMode {
+                description "Pipe mode";
+
+                type enumeration {
+                    enum pipe {
+                        value "0";
+                            description "pipe: Indicates that the Pipe MPLS Diff-Serv mode is adopted.";
+                    }
+                    enum shortPipe {
+                        value "1";
+                        description "shortPipe: Indicates that the Short-pipe MPLS Diff-Serv mode is adopted.";
+                    }
+                    enum uniform {
+                        value "2";
+                        description "uniform: Indicates that the Uniform MPLS Diff-Serv mode is adopted.";
+                    }
+                }
+                default "uniform";
+            }
+
+            leaf serviceClass {
+                description "Service Class, Specifies the service type when the packet enters the
+                    public network from the private network. The values are cs7, cs6, ef, af4, af3, af2, af1, be.";
+
+                type enumeration {
+                    enum be {
+                        value "0";
+                        description "be:";
+                    }
+                    enum af1 {
+                        value "1";
+                        description "af1:";
+                    }
+                    enum af2 {
+                        value "2";
+                        description "af2:";
+                    }
+                    enum af3 {
+                        value "3";
+                        description "af3:";
+                    }
+                    enum af4 {
+                        value "4";
+                        description "af4:";
+                    }
+                    enum ef {
+                        value "5";
+                        description "ef:";
+                    }
+                    enum cs6 {
+                        value "6";
+                        description "cs6:";
+                    }
+                    enum cs7 {
+                        value "7";
+                        description "cs7:";
+                    }
+                }
+                default "be";
+            }
+
+            leaf color {
+                description "Specifies a color for marking the discard priority of a packet
+                    transferred from a private network to a public network. The values
+                    are green, yellow, and red.";
+
+                type enumeration {
+                    enum green {
+                        value "0";
+                        description "green:";
+                    }
+                    enum yellow {
+                        value "1";
+                        description "yellow:";
+                    }
+                    enum red {
+                        value "2";
+                        description "red:";
+                    }
+                }
+                default "green";
+            }
+
+            leaf dsName {
+                description "Specifies the DS domain name of the specified Per-Hop Behavior (PHB)
+                    applied to the egress in Short pipe mode. It is a string of 1 to 31 characters.";
+
+                type string;
+                default "default";
+            }
+        }
+
+        container l3vpnTtlMode {
+            description "The ttl-mode command enables MPLS to process the TTL in a specified
+                mode. By default, MPLS processes the TTL in pipe mode.";
+
+            leaf ttlMode {
+                description "TTL mode";
+                default "pipe";
+                type enumeration {
+                    enum pipe {
+                        value "0";
+                        description "pipe: Enables MPLS to process the TTL in pipe mode.";
+                    }
+
+                    enum uniform {
+                        value "1";
+                        description "uniform: Enables MPLS to process the TTL in uniform mode.";
+                    }
+                }
+            }
+        }
+
+        leaf tunnel-policy {
+            description "The tnl-policy command associates the IPv4 or IPv6 address family of
+                a VPN instance with a tunnel policy.";
+
+            type string {
+                length "1..39";
+            }
+        }
+
+        container importRibs {
+            description "Import route class";
+
+            leaf protocol {
+                description "Specifies the protocol from which routes are imported.
+                    At present, In the IPv4 unicast address family view, the protocol
+                    can be IS-IS,static, direct and BGP.";
+
+                type enumeration {
+                    enum ALL {
+                        value "0";
+                        description "ALL:";
+                    }
+                    enum Direct {
+                        value "1";
+                        description "Direct:";
+                    }
+                    enum OSPF {
+                        value "2";
+                        description "OSPF:";
+                    }
+                    enum ISIS {
+                        value "3";
+                        description "ISIS:";
+                    }
+                    enum Static {
+                        value "4";
+                        description "Static:";
+                    }
+                    enum RIP {
+                        value "5";
+                        description "RIP:";
+                    }
+                    enum BGP {
+                        value "6";
+                        description "BGP:";
+                    }
+                    enum OSPFV3 {
+                        value "7";
+                        description "OSPFV3:";
+                    }
+                    enum RIPNG {
+                        value "8";
+                        description "RIPNG:";
+                    }
+                    enum INVALID {
+                        value "9";
+                        description "INVALID:";
+                    }
+                }
+            }
+
+            leaf processId {
+                description "Specifies the process ID if the protocol from routes are imported is IS-IS.";
+
+                default "0";
+                type uint32 {
+                    range "0..4294967295";
+                }
+            }
+
+            leaf bgp-valid-route {
+                type boolean;
+            }
+
+            leaf policyName {
+                description "Policy Id for import routes";
+                type string {}
+            }
+        }
+
+        leaf traffic-statistics {
+            description "The traffic-statistics enable command enables traffic statistics
+                for a VPN instance.";
+
+            type boolean;
+            default "false";
+        }
+    }
+
+
+    /*
+     * VPN instance view.
+     */
+    container vpn-instances {
+        description "VPN instances configuration parameters. VPN instances support both the
+            IPv4 and IPv6 address families.";
+
+        list vpn-instance {
+            max-elements "unbounded";
+            min-elements "0";
+            key "vpn-instance-name";
+            description "Specifies the name of the VPN instance. It is a string of 1 to 31
+                case-sensitive characters.";
+
+            leaf vpn-instance-name {
+                mandatory "true";
+                type string;
+                description "The name of the vpn-instance.";
+            }
+            leaf type {
+                description "The type of the VPN Instance.
+                L3 indicates it is an L3VPN.
+                L2 indicates it is an EVPN";
+
+                type enumeration {
+                    enum l3 {
+                        value "0";
+                        description "L3VPN";
+                    }
+                    enum l2 {
+                        value "1";
+                        description "EVPN";
+                    }
+                }
+                default "l3";
+            }
+
+            leaf l3vni {
+                type uint32;
+            }
+
+            leaf description {
+                description "A textual description of VPN instance, the VPN instance description
+                    helps users memorize the VPN instance.";
+
+                type string {
+                    length "1..242";
+                    pattern "([^?]*)";
+                }
+            }
+
+            container ipv4-family {
+                description "The IPv4 address family is enabled for the VPN instance.";
+                uses vpn-af-config;
+            }
+
+            container ipv6-family {
+                description "The IPv6 address family is enabled for the VPN instance.";
+                uses vpn-af-config;
+            }
+        }
+    }
+}
index 6501d325604284962b01b9e6c414c3bf5d51eb54..bd3a9d4798cca1570d0f309f6f05864ef1adb63a 100644 (file)
@@ -24,12 +24,12 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase;
 import org.opendaylight.netvirt.neutronvpn.api.utils.NeutronConstants;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.CreateIdPoolInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.CreateIdPoolInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.CreateIdPoolOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.vpnmaps.VpnMap;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.BgpvpnTypeBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.BgpvpnTypeL3;
index 339af486b29b86630d459585f0ef926d6cba30e3..90db28e0d6008b0a2a9a64ca170ff1ac9ce49ef6 100644 (file)
@@ -21,9 +21,9 @@ import org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase;
 import org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker;
 import org.opendaylight.genius.mdsalutil.MDSALUtil;
 import org.opendaylight.netvirt.vpnmanager.api.IVpnManager;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.vpntargets.VpnTarget;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.ProviderTypes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.vpntargets.VpnTarget;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.NetworkAttributes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.networkmaps.NetworkMap;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.networkmaps.NetworkMapBuilder;
index ac22067ff11ae87b1c4a45baaa7d9ca09f2f6c4d..a64176790b28edb44af8808facc2d546e2468dec 100644 (file)
@@ -68,18 +68,7 @@ import org.opendaylight.netvirt.neutronvpn.evpn.manager.NeutronEvpnManager;
 import org.opendaylight.netvirt.neutronvpn.evpn.utils.NeutronEvpnUtils;
 import org.opendaylight.netvirt.vpnmanager.api.IVpnManager;
 import org.opendaylight.netvirt.vpnmanager.api.VpnHelper;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInstances;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInterfaces;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.VpnTargets;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.VpnTargetsBuilder;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.vpntargets.VpnTarget;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.vpntargets.VpnTargetBuilder;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.vpntargets.VpnTargetKey;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstanceBuilder;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstanceKey;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.vpn.instance.Ipv4FamilyBuilder;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.vpn.instance.Ipv6FamilyBuilder;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.interfaces.VpnInterface;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.interfaces.VpnInterfaceBuilder;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.interfaces.VpnInterfaceKey;
@@ -102,6 +91,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev16011
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.external.networks.NetworksBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.external.networks.NetworksKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.config.rev160806.NeutronvpnConfig;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.VpnInstances;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.VpnTargets;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.VpnTargetsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.vpntargets.VpnTarget;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.vpntargets.VpnTargetBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.vpntargets.VpnTargetKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstanceBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstanceKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.vpn.instance.Ipv4FamilyBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.vpn.instance.Ipv6FamilyBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.AssociateNetworksInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.AssociateNetworksOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.AssociateNetworksOutputBuilder;
index e5b147a6c90931c8b064b673419deb7a1823f0a5..23e818ea6bf35312e62011754afed514f4802393 100644 (file)
@@ -56,10 +56,7 @@ import org.opendaylight.infrautils.utils.concurrent.LoggingFutures;
 import org.opendaylight.netvirt.neutronvpn.api.enums.IpVersionChoice;
 import org.opendaylight.netvirt.neutronvpn.api.utils.NeutronConstants;
 import org.opendaylight.netvirt.neutronvpn.api.utils.NeutronUtils;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInstances;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInterfaces;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstanceKey;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.interfaces.VpnInterface;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.interfaces.VpnInterfaceKey;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
@@ -111,6 +108,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev16011
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.external.subnets.SubnetsKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.floating.ip.port.info.FloatingIpIdToPortMapping;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.floating.ip.port.info.FloatingIpIdToPortMappingKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.VpnInstances;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstanceKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.NetworkMaps;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.NeutronVpnPortIdSubportData;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.NeutronVpnPortipPortData;
index 206175d680c64317a10476d2afcbd3cb8725fc6c..f00594e1184455c3fef9e9c0ff1f91c018da6d74 100644 (file)
@@ -20,9 +20,9 @@ import org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker;
 import org.opendaylight.netvirt.neutronvpn.NeutronvpnManager;
 import org.opendaylight.netvirt.neutronvpn.NeutronvpnUtils;
 import org.opendaylight.netvirt.vpnmanager.api.VpnHelper;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.vpntargets.VpnTarget;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.vpntargets.VpnTarget;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.CreateEVPNInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.CreateEVPNOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.CreateEVPNOutputBuilder;
index 9fb6260fc75e15a5e5f3bfd223a1a32cee0e9bbc..aade8be41ecc9424d2a54890e73f03209a7f9902 100644 (file)
@@ -22,7 +22,6 @@ import org.opendaylight.infrautils.jobcoordinator.JobCoordinator;
 import org.opendaylight.infrautils.utils.concurrent.ListenableFutures;
 import org.opendaylight.netvirt.elanmanager.api.ElanHelper;
 import org.opendaylight.netvirt.vpnmanager.api.IVpnManager;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.EvpnAugmentation;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.EvpnAugmentationBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.instances.ElanInstance;
@@ -31,6 +30,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.Evp
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.evpn.rd.to.networks.EvpnRdToNetwork;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.evpn.rd.to.networks.EvpnRdToNetworkBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.evpn.rd.to.networks.EvpnRdToNetworkKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
index aa6454ed2b760e592fedb4be6d84cf7a0e0a845c..a16eef853c6eb2693d81de2056073e72b0bb12cb 100644 (file)
@@ -22,11 +22,11 @@ import org.opendaylight.genius.infra.TypedReadTransaction;
 import org.opendaylight.genius.infra.TypedReadWriteTransaction;
 import org.opendaylight.genius.infra.TypedWriteTransaction;
 import org.opendaylight.netvirt.fibmanager.api.RouteOrigin;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.vpntargets.VpnTarget;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.vrfentries.VrfEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.adjacency.list.Adjacency;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.vpntargets.VpnTarget;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.neutron.vpn.portip.port.data.VpnPortipToPort;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.subnetmaps.Subnetmap;
 import org.opendaylight.yangtools.yang.common.Uint32;
index d7499ecd1237d4fb154bf89a2fdf7020ddc2ae5d..8de9aefbd1afad8e1ac10b4842c53cc76a907ce6 100644 (file)
@@ -19,10 +19,7 @@ import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInstances;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInterfaces;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstanceKey;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.interfaces.VpnInterface;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.interfaces.VpnInterfaceKey;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.interfaces.vpn._interface.VpnInstanceNames;
@@ -35,6 +32,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.VpnInstanceOpDataEntryKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.vpn.instance.op.data.entry.VpnToDpnList;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.vpn.instance.op.data.entry.VpnToDpnListKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.VpnInstances;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstanceKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.Subnetmaps;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.subnetmaps.Subnetmap;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.subnetmaps.SubnetmapKey;
index 1ca4c7d94f21c0d32baaa4e10df86ca0cc267f55..3b5e02fcbb214b09c4f9f65ea736a73bc924cd39 100644 (file)
@@ -194,600 +194,6 @@ module l3vpn {
 
   }
 
-  grouping vpn-af-config {
-    description
-      "A set of configuration parameters that is applicable to both IPv4 and
-       IPv6 address family for a VPN instance .";
-
-    leaf-list route-distinguisher {
-      description
-        "The route-distinguisher command configures a route distinguisher (RD)
-         for the IPv4 or IPv6 address family of a VPN instance.
-
-         Format is ASN:nn or IP-address:nn.";
-
-      config "true";
-      type string {
-        length "3..21";
-      }
-    }
-
-    container vpnTargets {
-      description
-        "The vpn-target command configures the export or import VPN target
-         extended community attribute for the VPN instance IPv4/IPv6 address
-         family.
-         Format is ASN:nn or IP-address:nn.";
-
-      list vpnTarget {
-        key "vrfRTValue";
-        max-elements "unbounded";
-        min-elements "0";
-        description
-          "L3vpn vpntarget configure class";
-
-        leaf vrfRTValue {
-
-          description
-            "Vpn-target: adds VPN target extended community attribute to the
-             export or import VPN target extended community list. The
-             vpn-target can be expressed in either of the following formats:
-             (1)16-bit AS number:32-bit user-defined number
-                 For example, 1:3. The AS number ranges from 0 to 65535. The
-                 user-defined number ranges from 0 to 4294967295. The AS number
-                 and the user-defined number cannot be 0s at the same time.
-                 That is, a VPN target cannot be 0:0.
-             (2)32-bit IP address:16-bit user-defined number
-                For example, 192.168.122.15:1. The IP address ranges from
-                0.0.0.0 to 255.255.255.255. The user-defined number ranges from
-                0 to 65535.
-             (3)32-bit IP address:16-bit user-defined number
-                For example, 192.168.122.15:1. An IP address ranges from
-                0.0.0.0 to 255.255.255.255. A user-defined number ranges from 0
-                to 65535.";
-
-          config "true";
-          mandatory "true";
-          type string {
-            length "3..21";
-          }
-        }
-
-        leaf vrfRTType {
-          description
-            "Specifies the vpn target type, export-extcommunity:
-             specifies the extended community attributes carried in routing
-             information to be sent. import-extcommunity: receives routing
-             information carrying specified extended community attributes.";
-
-            mandatory "true";
-            type enumeration {
-            enum export_extcommunity {
-              value "0";
-              description "export-extcommunity:";
-            }
-            enum import_extcommunity {
-              value "1";
-              description "import-extcommunity:";
-            }
-            enum both {
-              value "2";
-              description "export-extcommunity & import-extcommunity:";
-            }
-          }
-        }
-      }
-    }
-
-    container apply-label {
-      description
-        "Apply one label mode for the VPN instance route.";
-
-      choice apply-label-mode {
-        case per-route {
-          description
-            "The apply-label per-route command enables the one-label-per-route
-             mode. The VPN instance IPv4/IPv6 address family assigns a unique
-             label to each route to be sent to the peer PE.";
-
-          leaf apply-label-per-route {
-            type boolean;
-            default "true";
-          }
-        }
-        case per-instance {
-          description
-            "The apply-label per-instance command applies one label to all VPN
-             instance IPv4 address family or IPv6 address family routes to a
-             peer PE.";
-
-        leaf apply-label-per-instance {
-            type boolean;
-            default "false";
-          }
-        }
-      }
-    }//End of "container apply-label"
-
-    leaf import-route-policy {
-      description
-        "The import route-policy command associates a VPN instance enabled
-         with the IPv4 or IPv6 address family with an import routing policy.
-         Only one import routing policy can be associated with a VPN instance
-         enabled with the IPv4 or IPv6 address family. If the import
-         route-policy command is run more than once, the latest configuration
-         overrides the previous ones.";
-
-        config "true";
-        type string {
-          length "1..40";
-        }
-    }
-
-    leaf export-route-policy {
-      description
-        "The export route-policy command associates a VPN instance enabled
-         with the IPv4 or IPv6 address family with an export routing policy.
-         Only one export routing policy can be associated with a VPN instance
-         enabled with the IPv4 or IPv6 address family. If the export
-         route-policy command is run more than once, the latest configuration
-         overrides the previous ones.";
-
-      config "true";
-      type string {
-        length "1..40";
-      }
-    }
-
-
-    container prefix-limit {
-      description
-        "The prefix limit command sets a limit on the maximum number of
-         prefixes supported in the existing VPN instance, preventing the
-         PE from importing excessive VPN route prefixes.";
-
-      leaf prefix-limit-number {
-        description
-          "Specifies the maximum number of prefixes supported in the VPN
-
-
-           instance IPv4 or IPv6 address family.";
-
-        type uint32 {
-          range "1..4294967295";
-        }
-      }
-
-      choice prefix-limit-action {
-        case enable-alert-percent {
-          leaf alert-percent-value {
-            description
-              "Specifies the proportion of the alarm threshold to the maximum
-               number of prefixes.";
-            type uint8 {
-              range "1..100";
-            }
-          }
-          leaf route-unchanged {
-            description
-              "Indicates that the routing table remains unchanged. By default,
-               route-unchanged is not configured. When the number of prefixes
-               in the routing table is greater than the value of the parameter
-               number, routes are processed as follows:
-               (1)If route-unchanged is configured, routes in the routing table
-                  remain unchanged.
-               (2)If route-unchanged is not configured, all routes in the
-                  routing table are deleted and then re-added.";
-
-            config "true";
-            type boolean;
-            default "false";
-          }
-        }
-        case enable-simple-alert {
-          leaf simple-alert {
-            description
-              "Indicates that when the number of VPN route prefixes exceeds
-               number, prefixes can still join the VPN routing table and
-               alarms are displayed.";
-
-            config "true";
-            type boolean;
-            default "false";
-          }
-        }
-      }
-    }
-
-
-
-   container routing-table-limit {
-      description
-        "The routing-table limit command sets a limit on the maximum number of
-        routes that the IPv4 or IPv6 address family of a VPN instance can
-        support.
-        By default, there is no limit on the maximum number of routes that the
-        IPv4 or IPv6 address family of a VPN instance can support, but the
-        total number of private network and public network routes on a device
-        cannot exceed the allowed maximum number of unicast routes.";
-
-      leaf routing-table-limit-number {
-        description
-          "Specifies the maximum number of routes supported by a VPN instance.
-          ";
-
-        config "true";
-        type uint32 {
-          range "1..4294967295";
-        }
-      }
-      choice routing-table-limit-action {
-        case enable-alert-percent {
-          leaf alert-percent-value {
-            description
-              "Specifies the percentage of the maximum number of routes. When
-               the maximum number of routes that join the VPN instance is up
-               to the value (number*alert-percent)/100, the system prompts
-               alarms. The VPN routes can be still added to the routing table,
-               but after the number of routes reaches number, the subsequent
-               routes are dropped.";
-
-            config "true";
-            type uint8 {
-              range "1..100";
-            }
-          }
-        }
-        case enable-simple-alert {
-          leaf simple-alert {
-            description
-              "Indicates that when VPN routes exceed number, routes can still
-               be added into the routing table, but the system prompts alarms.
-               However, after the total number of VPN routes and network public
-               routes reaches the unicast route limit specified in the License,
-               the subsequent VPN routes are dropped.";
-
-            config "true";
-            type boolean;
-
-          }
-        }
-      }
-    }
-
-    leaf vpn-frr {
-      description
-        "Enable VPN FRR in the VPN instance address family view.
-         If a PE is connected to two other PEs, running the vpn frr command in
-         the VPN instance address family view of the PE enables VPN FRR and
-         improves network reliability. After VPN FRR is configured, traffic can
-         switch to the secondary LSP immediately after the primary LSP becomes
-         faulty.";
-
-      type boolean;
-      default "false";
-    }
-
-
-   /*
-    * VPN QoS.
-    */
-    container l3vpnVrfPipe {
-      description
-        "The diffserv-mode command configures the mode of the MPLS
-        differentiated service (Diff-Serv) for ensuring end-to-end QoS.";
-
-      leaf pipeMode {
-        description
-          "Pipe mode";
-
-    type enumeration {
-      enum pipe {
-        value "0";
-        description
-          "pipe: Indicates that the Pipe MPLS Diff-Serv mode is adopted.";
-      }
-      enum shortPipe {
-        value "1";
-        description
-          "shortPipe: Indicates that the Short-pipe MPLS Diff-Serv mode
-          is adopted.";
-      }
-      enum uniform {
-        value "2";
-        description
-          "uniform: Indicates that the Uniform MPLS Diff-Serv mode is
-          adopted.";
-   }
-    }
-    default "uniform";
-
-      }
-
-      leaf serviceClass {
-        description
-          "Service Class, Specifies the service type when the packet enters the
-          public network from the private network. The values are cs7, cs6, ef,
-          af4, af3, af2, af1, be.";
-
-          type enumeration {
-            enum be {
-              value "0";
-              description "be:";
-            }
-            enum af1 {
-              value "1";
-              description "af1:";
-            }
-            enum af2 {
-              value "2";
-              description "af2:";
-            }
-            enum af3 {
-              value "3";
-              description "af3:";
-            }
-            enum af4 {
-              value "4";
-              description "af4:";
-            }
-            enum ef {
-              value "5";
-              description "ef:";
-            }
-            enum cs6 {
-              value "6";
-              description "cs6:";
-            }
-            enum cs7 {
-              value "7";
-              description "cs7:";
-            }
-          }
-          default "be";
-      }
-
-
-      leaf color {
-        description
-          "Specifies a color for marking the discard priority of a packet
-          transferred from a private network to a public network. The values
-          are green, yellow, and red.";
-
-        type enumeration {
-          enum green {
-            value "0";
-            description "green:";
-          }
-          enum yellow {
-            value "1";
-            description "yellow:";
-          }
-          enum red {
-            value "2";
-            description "red:";
-          }
-        }
-        default "green";
-      }
-
-      leaf dsName {
-        description
-          "Specifies the DS domain name of the specified Per-Hop Behavior (PHB)
-          applied to the egress in Short pipe mode. It is a string of 1 to 31
-          characters.";
-
-        type string;
-        default "default";
-      }
-    }
-
-    container l3vpnTtlMode {
-      description
-        "The ttl-mode command enables MPLS to process the TTL in a specified
-        mode. By default, MPLS processes the TTL in pipe mode.";
-
-      leaf ttlMode {
-        description "TTL mode";
-        default "pipe";
-        type enumeration {
-          enum pipe {
-            value "0";
-            description
-              "pipe: Enables MPLS to process the TTL in pipe mode.";
-          }
-
-
-          enum uniform {
-            value "1";
-            description
-              "uniform: Enables MPLS to process the TTL in uniform mode.";
-          }
-        }
-      }
-    }
-
-    leaf tunnel-policy {
-      description
-        "The tnl-policy command associates the IPv4 or IPv6 address family of
-         a VPN instance with a tunnel policy.";
-
-      type string {
-        length "1..39";
-      }
-    }
-
-    container importRibs {
-      description
-        "Import route class";
-
-      leaf protocol {
-        description
-          "Specifies the protocol from which routes are imported.
-          At present, In the IPv4 unicast address family view, the protocol
-          can be IS-IS,static, direct and BGP.";
-
-        type enumeration {
-          enum ALL {
-            value "0";
-            description "ALL:";
-          }
-          enum Direct {
-            value "1";
-            description "Direct:";
-          }
-          enum OSPF {
-            value "2";
-            description "OSPF:";
-          }
-          enum ISIS {
-            value "3";
-            description "ISIS:";
-          }
-          enum Static {
-            value "4";
-
-
-            description "Static:";
-          }
-          enum RIP {
-            value "5";
-            description "RIP:";
-          }
-          enum BGP {
-            value "6";
-            description "BGP:";
-          }
-          enum OSPFV3 {
-            value "7";
-            description "OSPFV3:";
-          }
-          enum RIPNG {
-            value "8";
-            description "RIPNG:";
-          }
-          enum INVALID {
-            value "9";
-            description "INVALID:";
-          }
-        }
-      }
-
-      leaf processId {
-        description
-          "Specifies the process ID if the protocol from routes are imported is
-           IS-IS.";
-
-        default "0";
-        type uint32 {
-          range "0..4294967295";
-        }
-      }
-
-      leaf bgp-valid-route {
-        type boolean;
-      }
-
-      leaf policyName {
-        description
-          "Policy Id for import routes";
-        type string {
-        }
-      }
-
-    }
-
-
-    leaf traffic-statistics {
-      description
-        "The traffic-statistics enable command enables traffic statistics
-         for a VPN instance.";
-
-      type boolean;
-      default "false";
-    }
-
-  }
-
-
-  /*
-   * VPN instance view.
-   */
-  container vpn-instances {
-    description
-      "VPN instances configuration parameters.
-       VPN instances support both the IPv4 and IPv6 address families.";
-
-    list vpn-instance {
-      max-elements "unbounded";
-      min-elements "0";
-      key "vpn-instance-name";
-      description
-        "Specifies the name of the VPN instance. It is a string of 1 to 31
-         case-sensitive characters.";
-
-      leaf vpn-instance-name {
-        mandatory "true";
-        type string;
-        description
-          "The name of the vpn-instance.";
-      }
-      leaf type {
-        description
-          "The type of the VPN Instance.
-           L3 indicates it is an L3VPN.
-           L2 indicates it is an EVPN";
-
-        type enumeration {
-           enum l3 {
-              value "0";
-              description "L3VPN";
-           }
-           enum l2 {
-              value "1";
-              description "EVPN";
-           }
-        }
-        default "l3";
-      }
-
-      leaf l3vni {
-         type uint32;
-      }
-
-
-      leaf description {
-        description
-          "A textual description of VPN instance, the VPN instance description
-          helps users memorize the VPN instance.";
-
-        type string {
-          length "1..242";
-          pattern "([^?]*)";
-        }
-      }
-
-
-
-
-      container ipv4-family {
-        description
-          "The IPv4 address family is enabled for the VPN instance.";
-
-        uses vpn-af-config;
-      }
-
-      container ipv6-family {
-        description
-          "The IPv6 address family is enabled for the VPN instance.";
-
-        uses vpn-af-config;
-      }
-
-
-    }
-  }
-
 
 
   /*
index a0fb7bf8cd2d90cd82c76cbdd5b1898d610ab0f7..b5fcc47301549e10e9e3ebefa09b327245bb4f60 100644 (file)
@@ -24,11 +24,11 @@ import org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase;
 import org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker;
 import org.opendaylight.genius.utils.JvmGlobalLocks;
 import org.opendaylight.netvirt.vpnmanager.api.IVpnManager;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.vpntargets.VpnTarget;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.ElanInstances;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.instances.ElanInstance;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.instances.ElanInstanceKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.vpntargets.VpnTarget;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.NetworkAttributes.NetworkType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.Subnetmaps;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.subnetmaps.Subnetmap;
index 1e4396bb950f43b42071f08ede3adeec0d3800a3..dbc0e934d364cf20e83374bfaa6b2126a9a1e292 100644 (file)
@@ -32,11 +32,11 @@ import org.opendaylight.infrautils.jobcoordinator.JobCoordinator;
 import org.opendaylight.netvirt.fibmanager.api.IFibManager;
 import org.opendaylight.netvirt.vpnmanager.api.InterfaceUtils;
 import org.opendaylight.netvirt.vpnmanager.api.VpnHelper;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.DpnEndpoints;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.dpn.endpoints.DPNTEPsInfo;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.dpn.endpoints.dpn.teps.info.TunnelEndPoints;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.vpn.instance.op.data.entry.vpn.to.dpn.list.VpnInterfaces;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.Uint32;
 import org.opendaylight.yangtools.yang.common.Uint64;
index 753610386dc1e4d510d9438c9c4b88b190d5336d..ba4b4738929924678ee0b42fcd3f0c303d5a3fcf 100644 (file)
@@ -53,11 +53,6 @@ import org.opendaylight.genius.utils.SystemPropertyReader;
 import org.opendaylight.infrautils.jobcoordinator.JobCoordinator;
 import org.opendaylight.infrautils.utils.concurrent.ListenableFutures;
 import org.opendaylight.netvirt.fibmanager.api.IFibManager;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnAfConfig;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInstances;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.VpnTargets;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.vpntargets.VpnTarget;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.ExternalTunnelList;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.external.tunnel.list.ExternalTunnel;
@@ -69,6 +64,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.vpn.instance.op.data.entry.VpnTargetsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.vpn.instance.op.data.entry.vpntargets.VpnTargetBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.vpn.instance.op.data.entry.vpntargets.VpnTargetKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.VpnAfConfig;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.VpnInstances;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.VpnTargets;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.vpntargets.VpnTarget;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.Uint32;
 import org.opendaylight.yangtools.yang.common.Uint64;
index 73f23f197e269d8dfa5f66af0fcff95f50a51820..82f07a50b63c5d73484b28f0870974590e442b70 100644 (file)
@@ -65,9 +65,6 @@ import org.opendaylight.netvirt.vpnmanager.api.intervpnlink.InterVpnLinkDataComp
 import org.opendaylight.netvirt.vpnmanager.populator.input.L3vpnInput;
 import org.opendaylight.netvirt.vpnmanager.populator.registry.L3vpnRegistry;
 import org.opendaylight.serviceutils.upgrade.UpgradeState;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInstances;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.vpntargets.VpnTarget;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction;
@@ -86,6 +83,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.sub
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.subnets.associated.to.route.targets.route.target.AssociatedSubnet;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.subnets.associated.to.route.targets.route.target.associated.subnet.AssociatedVpn;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.to.extraroutes.vpn.extra.routes.Routes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.VpnInstances;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.vpntargets.VpnTarget;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.neutron.vpn.portip.port.data.VpnPortipToPort;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.subnetmaps.Subnetmap;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
index ed3f6ca2fce9d95c40c9c9a9cb7f44ffa64396fb..f65c08621e5b7d9d09b35c1f939cfe2fdd9c95d7 100644 (file)
@@ -87,11 +87,7 @@ import org.opendaylight.netvirt.vpnmanager.api.InterfaceUtils;
 import org.opendaylight.netvirt.vpnmanager.api.VpnExtraRouteHelper;
 import org.opendaylight.netvirt.vpnmanager.api.VpnHelper;
 import org.opendaylight.netvirt.vpnmanager.iplearn.model.MacEntry;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnAfConfig;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInstances;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInterfaces;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstanceKey;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.interfaces.VpnInterface;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.interfaces.VpnInterfaceBuilder;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.interfaces.VpnInterfaceKey;
@@ -221,6 +217,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev16011
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.external.subnets.SubnetsKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.napt.switches.RouterToNaptSwitch;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.napt.switches.RouterToNaptSwitchKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.VpnAfConfig;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.VpnInstances;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstanceKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.NetworkAttributes.NetworkType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.NetworkMaps;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.NeutronVpnPortipPortData;
@@ -2266,15 +2266,15 @@ public final class VpnUtil {
         }
     }
 
-    Set<org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.vpntargets.VpnTarget>
-        getRtListForVpn(String vpnName) {
-        Set<org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.vpntargets
+    Set<org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config
+            .vpntargets.VpnTarget> getRtListForVpn(String vpnName) {
+        Set<org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.vpntargets
                 .VpnTarget> rtList = new HashSet<>();
         InstanceIdentifier<VpnInstance> vpnInstanceId = InstanceIdentifier.builder(VpnInstances.class)
                 .child(VpnInstance.class, new VpnInstanceKey(vpnName)).build();
         Optional<VpnInstance> vpnInstanceOptional = read(LogicalDatastoreType.CONFIGURATION, vpnInstanceId);
         if (vpnInstanceOptional.isPresent()) {
-            org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.VpnTargets
+            org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.VpnTargets
                     vpnTargets = vpnInstanceOptional.get().getIpv4Family().getVpnTargets();
             if (vpnTargets != null && vpnTargets.getVpnTarget() != null) {
                 rtList.addAll(vpnTargets.getVpnTarget());
@@ -2308,10 +2308,10 @@ public final class VpnUtil {
                 .child(RouteTarget.class, new RouteTargetKey(rt, rtType)).build();
     }
 
-    Set<RouteTarget> getRouteTargetSet(Set<org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815
-            .vpn.af.config.vpntargets.VpnTarget> vpnTargets) {
+    Set<RouteTarget> getRouteTargetSet(Set<org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn
+            .rev200204.vpn.af.config.vpntargets.VpnTarget> vpnTargets) {
         Set<RouteTarget> routeTargetSet = new HashSet<>();
-        for (org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.vpntargets
+        for (org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.vpntargets
                 .VpnTarget rt : vpnTargets) {
             String rtValue = rt.getVrfRTValue();
             switch (rt.getVrfRTType()) {
index 95a05070e33a4773cd2c22fc02c3b6f5589297c3..a9a0009add090117eedba9bbbe42c616fefb7bd9 100644 (file)
@@ -13,17 +13,17 @@ import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
 import org.opendaylight.netvirt.vpnmanager.VpnOperDsUtils;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.VpnTargets;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.VpnTargetsBuilder;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.vpntargets.VpnTarget;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.vpntargets.VpnTargetBuilder;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.vpntargets.VpnTargetKey;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstanceBuilder;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.vpn.instance.Ipv4Family;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.vpn.instance.Ipv4FamilyBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.VpnInstanceOpDataEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.VpnInstanceOpDataEntryBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.VpnTargets;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.VpnTargetsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.vpntargets.VpnTarget;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.vpntargets.VpnTargetBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.vpntargets.VpnTargetKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstanceBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.vpn.instance.Ipv4Family;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.vpn.instance.Ipv4FamilyBuilder;
 
 /**
  * Gathers a collections of 'fake' L3VPN objects that can be used in JUnits.
index 3c4cc551d8817ec5ffa86ea35c731ce91408461a..1ef2f5b7d7324a3b1cef208d83d4afe355092bf9 100644 (file)
@@ -17,19 +17,19 @@ import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.netvirt.bgpmanager.api.IBgpManager;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInstances;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.ApplyLabelBuilder;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.VpnTargets;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.VpnTargetsBuilder;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.apply.label.apply.label.mode.PerRouteBuilder;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.vpntargets.VpnTarget;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.vpntargets.VpnTargetBuilder;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.vpntargets.VpnTargetKey;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstanceBuilder;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstanceKey;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.vpn.instance.Ipv4Family;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.vpn.instance.Ipv4FamilyBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.VpnInstances;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.ApplyLabelBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.VpnTargets;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.VpnTargetsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.apply.label.apply.label.mode.PerRouteBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.vpntargets.VpnTarget;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.vpntargets.VpnTargetBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.af.config.vpntargets.VpnTargetKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstanceBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstanceKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.vpn.instance.Ipv4Family;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.vpn.instance.Ipv4FamilyBuilder;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.InstanceIdentifierBuilder;
 
index 2c9f8ae006080a4fa222fed2e40528144c149b8a..4bd3b2f927336de7257d2add7443cf049fcb644a 100644 (file)
@@ -40,9 +40,6 @@ import org.opendaylight.netvirt.vpnmanager.VpnOpDataSyncer;
 import org.opendaylight.netvirt.vpnmanager.VpnSubnetRouteHandler;
 import org.opendaylight.netvirt.vpnmanager.VpnUtil;
 import org.opendaylight.netvirt.vpnmanager.api.InterfaceUtils;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInstances;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.vpn.instance.Ipv4Family;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.vpn.instance.Ipv4FamilyBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev170119.L2vlan;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder;
@@ -86,6 +83,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev16011
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.external.networks.Networks;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.external.networks.NetworksBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.external.networks.NetworksKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.VpnInstances;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.vpn.instance.Ipv4Family;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.vpn.instance.Ipv4FamilyBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.Subnetmaps;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.subnetmaps.Subnetmap;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.subnetmaps.SubnetmapBuilder;
@@ -130,7 +130,8 @@ public class VpnSubnetRouteHandlerTest {
     AllocateIdOutput allocateIdOutput = null;
     AllocateIdInput allocateIdInput = null;
     Networks networks = null;
-    org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance vpnInstnce;
+    org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204
+            .vpn.instances.VpnInstance vpnInstnce;
 
     InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces
         .state.Interface> ifStateId = InterfaceUtils.buildStateInterfaceId(portKey);
@@ -151,11 +152,11 @@ public class VpnSubnetRouteHandlerTest {
     InstanceIdentifier<PortOpData> portOpIdentifr = InstanceIdentifier.builder(PortOpData.class).build();
     InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.to.vpn.id
         .VpnInstance> instVpnInstance = getVpnInstanceToVpnIdIdentifier(interfaceName);
-    InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances
+    InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances
         .VpnInstance>
-        vpnInstanceIdentifier = InstanceIdentifier.builder(VpnInstances.class).child(
-        org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance.class,
-        new org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances
+        vpnInstanceIdentifier = InstanceIdentifier.builder(VpnInstances.class).child(org.opendaylight.yang.gen.v1.urn
+                    .opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance.class,
+        new org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances
             .VpnInstanceKey(interfaceName)).build();
     InstanceIdentifier<Networks> netsIdentifier =
         InstanceIdentifier.builder(ExternalNetworks.class).child(Networks.class, new NetworksKey(portId)).build();
@@ -198,7 +199,7 @@ public class VpnSubnetRouteHandlerTest {
     Optional<Subnetmap> optionalSubnetMap;
     Optional<org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.to.vpn.id.VpnInstance>
         optionalVpnInstnce;
-    Optional<org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance>
+    Optional<org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance>
         vpnInstanceOptional;
     Optional<Networks> optionalNetworks;
 
@@ -305,9 +306,9 @@ public class VpnSubnetRouteHandlerTest {
             new TunnelEndPointsBuilder().setInterfaceName(interfaceName).setIpAddress(ipAddress).build();
         tunnelEndPoints.add(tunlEndPts);
         ipv4Family = new Ipv4FamilyBuilder().setRouteDistinguisher(routeDistinguishers).build();
-        vpnInstnce = new org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances
-            .VpnInstanceBuilder().withKey(new org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn
-            .rev140815.vpn.instances.VpnInstanceKey(interfaceName)).setVpnInstanceName(interfaceName)
+        vpnInstnce = new org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances
+            .VpnInstanceBuilder().withKey(new org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn
+                .rev200204.vpn.instances.VpnInstanceKey(interfaceName)).setVpnInstanceName(interfaceName)
             .setIpv4Family(ipv4Family).build();
         networks = new NetworksBuilder().setId(portId).withKey(new NetworksKey(portId)).build();
         doReturn(mockReadTx).when(dataBroker).newReadOnlyTransaction();
index 994919ed2e3b90e90ee195b6596a57413b6bf437..2b0817ae1805d6ba29accbebcd82123ddd32dd0d 100644 (file)
@@ -24,14 +24,14 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.netvirt.vpnmanager.api.VpnHelper;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnAfConfig;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInstances;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInterfaces;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.interfaces.VpnInterface;
 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.interfaces.vpn._interface.VpnInstanceNames;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.VpnInterfaceOpData;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn._interface.op.data.VpnInterfaceOpDataEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.VpnAfConfig;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.VpnInstances;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
@@ -52,8 +52,8 @@ public class ShowVpn extends OsgiCommandSupport {
     private int totalOperCount = 0;
     private int totalConfigCount = 0;
     private Integer ifPresent;
-    private List<org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance>
-            vpnInstanceList = new ArrayList<>();
+    private List<org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances
+            .VpnInstance> vpnInstanceList = new ArrayList<>();
     private List<VpnInterface> vpnInterfaceConfigList = new ArrayList<>();
     private List<VpnInterfaceOpDataEntry> vpnInterfaceOpList = new ArrayList<>();
 
index 3e1e4255cec4bb24326542444a43a0d4048bf28a..f95908c9c1d87a3d289c67911ba6852005641d21 100644 (file)
@@ -20,11 +20,11 @@ import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInstances;
-import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.VpnInstance;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.VpnInstanceOpData;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.VpnInstanceOpDataEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.vpn.instance.op.data.entry.VpnToDpnList;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.VpnInstances;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.VpnInstance;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;