Bug 4644 : Reverting workaround for Tunnel deletion issue 72/37872/2
authorFaseela K <faseela.k@ericsson.com>
Wed, 20 Apr 2016 12:55:10 +0000 (18:25 +0530)
committerFaseela K <faseela.k@ericsson.com>
Wed, 20 Apr 2016 14:04:15 +0000 (14:04 +0000)
Description: TerminationPoint was not removed from switch
if termination point is added to the existing bridge
which was already present before OVSDB node got connected
to the controller. There was a workaround in interface-manager to overcome this
issue, reverting the same when the actual issue is fixed in ovsdb plugin

Change-Id: I00d77d8c0df7504721a44f4748cc0bb72a1a6c37
Signed-off-by: Faseela K <faseela.k@ericsson.com>
interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/listeners/InterfaceTopologyStateListener.java
interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/statehelpers/OvsInterfaceStateRemoveHelper.java
interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/statehelpers/OvsInterfaceTopologyStateAddHelper.java
interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/statehelpers/OvsInterfaceTopologyStateRemoveHelper.java

index cf6005324fbe81caa31d392f08c3bd6691e3289c..9621a0bdbd40a43bb43ef410518bbb955b0e3ae6 100644 (file)
@@ -58,7 +58,7 @@ public class InterfaceTopologyStateListener extends AsyncDataChangeListenerBase<
                 identifier, bridgeOld);
         DataStoreJobCoordinator jobCoordinator = DataStoreJobCoordinator.getInstance();
         RendererStateRemoveWorker rendererStateRemoveWorker = new RendererStateRemoveWorker(identifier, bridgeOld);
-        jobCoordinator.enqueueJob(bridgeOld.getBridgeName().getValue() + bridgeOld.getDatapathId(), rendererStateRemoveWorker);
+        jobCoordinator.enqueueJob(bridgeOld.getBridgeName().getValue(), rendererStateRemoveWorker);
     }
 
     @Override
@@ -70,7 +70,7 @@ public class InterfaceTopologyStateListener extends AsyncDataChangeListenerBase<
             DataStoreJobCoordinator jobCoordinator = DataStoreJobCoordinator.getInstance();
             RendererStateAddWorker rendererStateAddWorker = new RendererStateAddWorker(identifier, bridgeNew);
             jobCoordinator.enqueueJob(bridgeNew.getBridgeName().getValue(), rendererStateAddWorker);
-        } else if(bridgeOld.getDatapathId() != bridgeNew.getDatapathId()){
+        } else if(!bridgeOld.getDatapathId().equals(bridgeNew.getDatapathId())){
             DataStoreJobCoordinator jobCoordinator = DataStoreJobCoordinator.getInstance();
             RendererStateUpdateWorker rendererStateAddWorker = new RendererStateUpdateWorker(identifier, bridgeNew, bridgeOld);
             jobCoordinator.enqueueJob(bridgeNew.getBridgeName().getValue(), rendererStateAddWorker);
@@ -83,7 +83,7 @@ public class InterfaceTopologyStateListener extends AsyncDataChangeListenerBase<
                 identifier, bridgeNew);
         DataStoreJobCoordinator jobCoordinator = DataStoreJobCoordinator.getInstance();
         RendererStateAddWorker rendererStateAddWorker = new RendererStateAddWorker(identifier, bridgeNew);
-        jobCoordinator.enqueueJob(bridgeNew.getBridgeName().getValue() + bridgeNew.getDatapathId(), rendererStateAddWorker);
+        jobCoordinator.enqueueJob(bridgeNew.getBridgeName().getValue(), rendererStateAddWorker);
     }
 
     private class RendererStateAddWorker implements Callable<List<ListenableFuture<Void>>> {
index 9360c57059e16cc625c7cc5bf6d0b2c49ed312ad..a2a8b7d0e8afe33e73a5e30b352770e45e79cdc2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015 Ericsson India Global Services Pvt Ltd. and others.  All rights reserved.
+ * Copyright (c) 2015 - 2016 Ericsson India Global Services Pvt Ltd. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
@@ -94,7 +94,7 @@ public class OvsInterfaceStateRemoveHelper {
         InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface>
                 higerLayerChildIfStateId = IfmUtil.buildStateInterfaceId(higherlayerChild.getChildInterface());
         Interface higherLayerIfChildState = InterfaceManagerCommonUtils.getInterfaceStateFromOperDS(higherlayerChild.getChildInterface(), dataBroker);
-        if (interfaceState != null) {
+        if (interfaceState != null && higherLayerIfChildState != null) {
             transaction.delete(LogicalDatastoreType.OPERATIONAL, higerLayerChildIfStateId);
             FlowBasedServicesUtils.removeIngressFlow(higherLayerIfChildState.getName(), dpId, transaction);
         }
index 95f9e91ff3deb42d1479da2c05038d4a02eaab89..5315180668fc36a81afa9305ce14640f99d5e13b 100644 (file)
@@ -52,9 +52,6 @@ public class OvsInterfaceTopologyStateAddHelper {
         // create bridge reference entry in interface meta operational DS
         InterfaceMetaUtils.createBridgeRefEntry(dpnId, bridgeIid, writeTransaction);
 
-        // FIX for OVSDB Bug - manually copying the bridge info from topology operational DS to config DS
-        SouthboundUtils.addBridge(bridgeIid, bridgeNew, dataBroker, futures);
-
         // handle pre-provisioning of tunnels for the newly connected dpn
         BridgeEntry bridgeEntry = InterfaceMetaUtils.getBridgeEntryFromConfigDS(dpnId, dataBroker);
         if (bridgeEntry == null) {
index ca03320cfd43e56aab62c37d2e6aef7a1cf7cf3d..9ce801cec6eaf96f11a4ba9973ab8c5080ac19fb 100644 (file)
@@ -42,9 +42,6 @@ public class OvsInterfaceTopologyStateRemoveHelper {
         //delete bridge reference entry in interface meta operational DS
         InterfaceMetaUtils.deleteBridgeRefEntry(dpnId, transaction);
 
-        // FIX for ovsdb bug for delete TEP
-        SouthboundUtils.deleteBridge(bridgeIid, dataBroker, futures);
-
         futures.add(transaction.submit());
         return futures;
     }