From 1bd744d52b6917c3d8fa852672284114ce4075be Mon Sep 17 00:00:00 2001 From: Yonghong Song Date: Mon, 10 Aug 2015 17:33:24 -0700 Subject: [PATCH] clean up potential conflict veth before creating new one in create_ns Signed-off-by: Yonghong Song --- examples/distributed_bridge/main.py | 2 +- examples/simulation.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) 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 @@ try: 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 @@ class Simulation(object): # 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() -- 2.7.4