Fix for Bug 3428 - table0 tunnel entry not deleted
[vpnservice.git] / vpnmanager / vpnmanager-impl / src / main / java / org / opendaylight / vpnservice / VpnInterfaceManager.java
index 92f990df978d7fbac1426f7256ebcd56f9c4b7d2..3585a6f17578884fc0007bb483abef5c30509eb7 100644 (file)
@@ -201,7 +201,7 @@ public class VpnInterfaceManager extends AbstractDataChangeListener<VpnInterface
 
             LOG.trace("NextHops are {}", nextHops);
             for (Adjacency nextHop : nextHops) {
-                String key = nextHop.getIpAddress();
+                String key = rd + VpnConstants.SEPARATOR + nextHop.getIpAddress();
                 long label = getUniqueId(key);
                 value.add(new AdjacencyBuilder(nextHop).setLabel(label).build());
             }
@@ -211,7 +211,7 @@ public class VpnInterfaceManager extends AbstractDataChangeListener<VpnInterface
             InstanceIdentifier<VpnInterface> interfaceId = VpnUtil.getVpnInterfaceIdentifier(intfName);
             syncWrite(LogicalDatastoreType.OPERATIONAL, interfaceId, opInterface, DEFAULT_CALLBACK);
             for (Adjacency nextHop : nextHops) {
-                String key = nextHop.getIpAddress();
+                String key = rd + VpnConstants.SEPARATOR + nextHop.getIpAddress();
                 long label = getUniqueId(key);
                 updatePrefixToBGP(rd, nextHop, nextHopIp, label);
             }
@@ -494,7 +494,8 @@ public class VpnInterfaceManager extends AbstractDataChangeListener<VpnInterface
                     label = nextHop.getLabel();
                     if(label == VpnConstants.INVALID_ID) {
                         //Generate label using ID Manager
-                        label = getUniqueId(nextHop.getIpAddress());
+                        String key = newRd + VpnConstants.SEPARATOR + nextHop.getIpAddress();
+                        label = getUniqueId(key);
                     }
                     removePrefixFromBGP(rd, nextHop);
                     //updatePrefixToBGP(newRd, nextHop, nextHopIp, label);
@@ -563,7 +564,7 @@ public class VpnInterfaceManager extends AbstractDataChangeListener<VpnInterface
     }
 
 
-    private void makeTunnelIngressFlow(BigInteger dpnId, String ifName, int addOrRemoveFlow) {
+    protected void makeTunnelIngressFlow(BigInteger dpnId, String ifName, int addOrRemoveFlow) {
         long portNo = 0;
         String flowName = ifName;
         String flowRef = getTunnelInterfaceFlowRef(dpnId, VpnConstants.LPORT_INGRESS_TABLE, ifName);