Dualstack support for L3VPN-two router design 21/63421/107
authorPhilippe Guibert <philippe.guibert@6wind.com>
Mon, 16 Oct 2017 15:35:20 +0000 (16:35 +0100)
committerSam Hague <shague@redhat.com>
Sat, 30 Jun 2018 01:55:23 +0000 (01:55 +0000)
commitb5deca298046f743e05aa385f14705a1e13afc37
treebbe315d994ac898ddf8f34dad7cd2a58af9e990f
parentac3fdc26e97f26b20a4657e122a97a928a814f10
Dualstack support for L3VPN-two router design

According to dualstack specification [0], this commit introduces
following changes:

* neutronvpn.yang: Use "router-ids" leaf-list instead of "router-ids"
  leaf in grouping "vpn-instance" and "vpnMaps" container. Two neutron
  routers can be attached to one L3 BGPVPN instance at the same time:
  the first one with only IPv4 ports and the second one with only IPv6
  ports.

* NeutronvpnManager, NeutronvpnUtils: Support routerIds list in all
  basic methods. Control the number of associated routers in "add" and
  "handleRoutersUpdate" methods. Consequently assign each router
  accordingly.

* IVpnLinkServiceImpl: Appropriate changes, due to support of routerIds
  list in neutronvpn.yang.

* NatUtil:

  * "getRouterIdfromVpnInstance": control, that we get routerId from
    appropriate IPv4 Subnetmap, which is corresponding to given vpnId;
  * "getVpnForRouter" support routerIdsList, due to  changes in
    neutronvpn.yang.

* neutronvpn: rpc L3VPN support for assoc/disassoc routers list

Change yang model to associate or dissociate two routers with a vpnid in
the same curl query.

Change-Id: Iade14e52baee2da4a82f01231c7ea6f8051e520b
Signed-off-by: Noel de Prandières <prandieres@6wind.com>
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Signed-off-by: Karthikeyan Krishnan <karthikeyangceb007@gmail.com>
natservice/impl/src/main/java/org/opendaylight/netvirt/natservice/internal/NatUtil.java
neutronvpn/api/src/main/java/org/opendaylight/netvirt/neutronvpn/api/utils/NeutronConstants.java
neutronvpn/api/src/main/java/org/opendaylight/netvirt/neutronvpn/api/utils/NeutronUtils.java
neutronvpn/api/src/main/yang/neutronvpn.yang
neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronBgpvpnChangeListener.java
neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnManager.java
neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnUtils.java
vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/intervpnlink/IVpnLinkServiceImpl.java