ovs_vanilla: Fix vswitch shutdown process 31/47931/1
authorMartin Klozik <martinx.klozik@intel.com>
Tue, 28 Nov 2017 10:12:30 +0000 (10:12 +0000)
committerMartin Klozik <martinx.klozik@intel.com>
Tue, 28 Nov 2017 12:57:05 +0000 (12:57 +0000)
Datapath must be removed before vswitch termination.

JIRA: VSPERF-548

Change-Id: I7408ddc1b21e2bc02a44785dca07d9c026bc28c1
Signed-off-by: Martin Klozik <martinx.klozik@intel.com>
Reviewed-by: Al Morton <acmorton@att.com>
Reviewed-by: Christian Trautman <ctrautma@redhat.com>
Reviewed-by: Sridhar Rao <sridhar.rao@spirent.com>
Reviewed-by: Trevor Cooper <trevor.cooper@intel.com>
vswitches/ovs_vanilla.py

index cfde3b4..942ddd4 100644 (file)
@@ -16,6 +16,7 @@
 """
 
 import logging
+import time
 from conf import settings
 from vswitches.ovs import IVSwitchOvs
 from src.ovs import DPCtl
@@ -57,10 +58,14 @@ class OvsVanilla(IVSwitchOvs):
             tasks.run_task(tap_cmd_list, self._logger, 'Deleting ' + tapx, False)
         self._vport_id = 0
 
-        super(OvsVanilla, self).stop()
+        # remove datapath before vswitch shutdown
         dpctl = DPCtl()
         dpctl.del_dp()
 
+        super(OvsVanilla, self).stop()
+
+        # give vswitch time to terminate before modules are removed
+        time.sleep(5)
         self._module_manager.remove_modules()
 
     def add_phy_port(self, switch_name):