"neutronvpn:createL3VPN" fails to create L3VPN for IPv6 use case.
[netvirt.git] / vpnmanager / impl / src / main / java / org / opendaylight / netvirt / vpnmanager / VpnInstanceListener.java
index ba4b4738929924678ee0b42fcd3f0c303d5a3fcf..84ceaf7dce235877d5b63f7c5b2b6dc6cc1a6f59 100644 (file)
@@ -64,11 +64,10 @@ 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.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.vpn.instance.VpnTargets;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.l3vpn.rev200204.vpn.instances.vpn.instance.vpntargets.VpnTarget;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.Uint32;
 import org.opendaylight.yangtools.yang.common.Uint64;
@@ -176,14 +175,14 @@ public class VpnInstanceListener extends AsyncDataTreeChangeListenerBase<VpnInst
         VpnInstance original, VpnInstance update) {
         LOG.trace("VPN-UPDATE: update: VPN event key: {}, value: {}.", identifier, update);
         String vpnName = update.getVpnInstanceName();
-        if (original.getIpv4Family() != null && update.getIpv4Family() != null
-                && original.getIpv4Family().getRouteDistinguisher() != null
-                && update.getIpv4Family().getRouteDistinguisher() != null
-                && original.getIpv4Family().getRouteDistinguisher().size()
-                !=  update.getIpv4Family().getRouteDistinguisher().size()) {
+        if (original != null && update != null
+                && original.getRouteDistinguisher() != null
+                && update.getRouteDistinguisher() != null
+                && original.getRouteDistinguisher().size()
+                !=  update.getRouteDistinguisher().size()) {
             LOG.debug("VPN-UPDATE: VpnInstance:{} updated with new RDs: {} from old RDs: {}", vpnName,
-                    update.getIpv4Family().getRouteDistinguisher(),  original.getIpv4Family().getRouteDistinguisher());
-            vpnUtil.updateVpnInstanceWithRdList(vpnName, update.getIpv4Family().getRouteDistinguisher());
+                    update.getRouteDistinguisher(),  original.getRouteDistinguisher());
+            vpnUtil.updateVpnInstanceWithRdList(vpnName, update.getRouteDistinguisher());
         }
         vpnInterfaceManager.updateVpnInterfacesForUnProcessAdjancencies(vpnName);
     }
@@ -217,7 +216,7 @@ public class VpnInstanceListener extends AsyncDataTreeChangeListenerBase<VpnInst
                         addVpnInstance(vpnInstance, confTx, operTx));
                 ListenableFutures.addErrorLogging(future, LOG, "{} call: error creating VPN {} rd {}",
                         LOGGING_PREFIX_ADD, vpnInstance.getVpnInstanceName(),
-                        vpnInstance.getIpv4Family().getRouteDistinguisher());
+                        vpnInstance.getRouteDistinguisher());
                 futures.add(future);
             }));
             Futures.addCallback(Futures.allAsList(futures),
@@ -241,7 +240,6 @@ public class VpnInstanceListener extends AsyncDataTreeChangeListenerBase<VpnInst
                 addVpnInstance(value, writeConfigTxn, tx)), LOG, "Error adding VPN instance {}", value);
             return;
         }
-        VpnAfConfig config = value.getIpv4Family();
         String vpnInstanceName = value.getVpnInstanceName();
 
         Uint32 vpnId = vpnUtil.getUniqueId(VpnConstants.VPN_IDPOOL_NAME, vpnInstanceName);
@@ -293,10 +291,10 @@ public class VpnInstanceListener extends AsyncDataTreeChangeListenerBase<VpnInst
             if (value.getL3vni() != null) {
                 builder.setL3vni(value.getL3vni());
             }
-            if (value.getType() == VpnInstance.Type.L2) {
+            if (value.isL2vpn()) {
                 builder.setType(VpnInstanceOpDataEntry.Type.L2);
             }
-            VpnTargets vpnTargets = config.getVpnTargets();
+            VpnTargets vpnTargets = value.getVpnTargets();
             if (vpnTargets != null) {
                 List<VpnTarget> vpnTargetList = vpnTargets.getVpnTarget();
                 if (vpnTargetList != null) {
@@ -314,7 +312,7 @@ public class VpnInstanceListener extends AsyncDataTreeChangeListenerBase<VpnInst
             VpnTargetsBuilder vpnTargetsBuilder = new VpnTargetsBuilder().setVpnTarget(opVpnTargetList);
             builder.setVpnTargets(vpnTargetsBuilder.build());
 
-            List<String> rds = config.getRouteDistinguisher();
+            List<String> rds = value.getRouteDistinguisher();
             builder.setRd(rds);
         } else {
             builder.setBgpvpnType(VpnInstanceOpDataEntry.BgpvpnType.VPN);
@@ -343,8 +341,7 @@ public class VpnInstanceListener extends AsyncDataTreeChangeListenerBase<VpnInst
             if rd is null, then its either a router vpn instance (or) a vlan external network vpn instance.
             if rd is non-null, then it is a bgpvpn instance
              */
-            VpnAfConfig config = vpnInstance.getIpv4Family();
-            List<String> rd = config.getRouteDistinguisher();
+            List<String> rd = vpnInstance.getRouteDistinguisher();
             if (rd == null || addBgpVrf()) {
                 notifyTask();
                 vpnInterfaceManager.vpnInstanceIsReady(vpnName);
@@ -387,9 +384,8 @@ public class VpnInstanceListener extends AsyncDataTreeChangeListenerBase<VpnInst
         // TODO Clean up the exception handling
         @SuppressWarnings("checkstyle:IllegalCatch")
         private boolean addBgpVrf() {
-            VpnAfConfig config = vpnInstance.getIpv4Family();
             String primaryRd = vpnUtil.getPrimaryRd(vpnName);
-            List<VpnTarget> vpnTargetList = config.getVpnTargets().getVpnTarget();
+            List<VpnTarget> vpnTargetList = vpnInstance.getVpnTargets().getVpnTarget();
 
             if (vpnTargetList == null) {
                 log.error("{} addBgpVrf: vpn target list is empty for vpn {} RD {}", LOGGING_PREFIX_ADD,