clean up potential conflict veth before creating new one in create_ns
Signed-off-by: Yonghong Song <yhs@plumgrid.com>
diff --git a/examples/distributed_bridge/main.py b/examples/distributed_bridge/main.py
index 939b3c3..9e135f3 100755
--- a/examples/distributed_bridge/main.py
+++ b/examples/distributed_bridge/main.py
@@ -54,7 +54,7 @@
for p in sim.processes: p.communicate(b"\n")
except:
if "sim" in locals():
- for p in sim.processes: p.kill(); p.wait()
+ for p in sim.processes: p.kill(); p.wait(); p.release()
finally:
if "br-fabric" in ipdb.interfaces: ipdb.interfaces["br-fabric"].remove().commit()
if "sim" in locals(): sim.release()
diff --git a/examples/simulation.py b/examples/simulation.py
index 269ad3f..9e2e677 100644
--- a/examples/simulation.py
+++ b/examples/simulation.py
@@ -1,3 +1,4 @@
+import os
import subprocess
import pyroute2
from pyroute2 import IPRoute, NetNS, IPDB, NSPopen
@@ -46,6 +47,9 @@
# move half of veth into namespace
v.net_ns_fd = ns_ipdb.nl.netns
else:
+ # delete the potentially leaf-over veth interfaces
+ subprocess.call(["ip", "link", "del", "%sa" % ifc_base_name],
+ stderr=open(os.devnull, 'w'))
try:
out_ifc = self.ipdb.create(ifname="%sa" % ifc_base_name, kind="veth",
peer="%sb" % ifc_base_name).commit()