summaryrefslogtreecommitdiff
path: root/tests/common
diff options
context:
space:
mode:
Diffstat (limited to 'tests/common')
-rw-r--r--tests/common/iface.py23
-rw-r--r--tests/common/veth.py55
2 files changed, 50 insertions, 28 deletions
diff --git a/tests/common/iface.py b/tests/common/iface.py
new file mode 100644
index 00000000..dbd052ab
--- /dev/null
+++ b/tests/common/iface.py
@@ -0,0 +1,23 @@
+from common import netns
+
+# up interface. if netns is None, then up in global rt. if ok returns 0
+def up(iface, netns_name):
+ command = ["ip", "link", "set", iface, "up"]
+ exit, out, err = netns.exec(netns_name, command)
+ print(
+ "iface.up: iface=%s netns=%s exit=%d out=%s err=%s"
+ % (iface, netns_name, exit, out, err)
+ )
+
+ return exit
+
+
+# delete interface. if netns is None, then up in global rt. if ok returns 0
+def delete(iface, netns_name):
+ exit, out, err = netns.exec(netns_name, ["ip", "link", "delete", iface])
+ print(
+ "iface.delete: iface=%s netns=%s exit=%d out=%s err=%s"
+ % (iface, netns_name, exit, out, err)
+ )
+
+ return exit
diff --git a/tests/common/veth.py b/tests/common/veth.py
index a31d2453..c9d3006c 100644
--- a/tests/common/veth.py
+++ b/tests/common/veth.py
@@ -1,4 +1,4 @@
-from common import process, netns, vlan
+from common import process, netns, vlan, iface
import time
import math
@@ -12,14 +12,6 @@ def create_pair(name_a, name_b):
return veth
-# deletes veth pair. if ok returns 0
-def delete_veth(name_a):
- veth, out, err = process.run(["ip", "link", "delete", name_a])
- print("veth.delete: exit=%d out=%s err=%s" % (veth, out, err))
-
- return veth
-
-
# put veth to netns. if ok returns 0
def assign_netns(veth, netns):
veth, out, err = process.run(["ip", "link", "set", veth, "netns", netns])
@@ -28,18 +20,6 @@ def assign_netns(veth, netns):
return veth
-# up interface. if netns is None, then up in global rt. if ok returns 0
-def up_interface(iface, netns_name):
- command = ["ip", "link", "set", iface, "up"]
- exit, out, err = netns.exec(netns_name, command)
- print(
- "veth.up_interface: iface=%s netns=%s exit=%d out=%s err=%s"
- % (iface, str(netns_name), exit, out, err)
- )
-
- return exit
-
-
# creates netns, creates veth pair and place second link to netns
# creates vlans over veth interfaces according to veth_pair_vlans_config
# return dict with 'netns', 'veth_a', 'veth_b'
@@ -55,30 +35,49 @@ def create_veth_pair_netns(veth_pair_vlans_config):
pair_status = create_pair(veth_a, veth_b)
print("create_veth_pair_netns: pair_status=%d" % pair_status)
- up_interface(veth_a, None)
+ iface.up(veth_a, None)
assign_status = assign_netns(veth_b, netns_name)
print("create_veth_pair_netns: assign_status=%d" % assign_status)
- up_interface(veth_b, netns_name)
+ iface.up(veth_b, netns_name)
vlans_a = veth_pair_vlans_config["vlans_a"]
for vlan_num in vlans_a:
vlan.create(veth_a, vlan_num, None)
- up_interface(veth_a + "." + str(vlan_num), None)
+ iface.up(veth_a + "." + str(vlan_num), None)
vlans_b = veth_pair_vlans_config["vlans_b"]
for vlan_num in vlans_b:
vlan.create(veth_b, vlan_num, netns_name)
- up_interface(veth_b + "." + str(vlan_num), netns_name)
+ iface.up(veth_b + "." + str(vlan_num), netns_name)
- return {"netns": netns_name, "veth_a": veth_a, "veth_b": veth_b}
+ return {
+ "netns": netns_name,
+ "veth_a": veth_a,
+ "veth_b": veth_b,
+ "vlans_a": vlans_a,
+ "vlans_b": vlans_b,
+ }
# deletes veth pair and netns created by create_veth_pair_netns
def delete_veth_pair_netns(veth_pair_netns):
- veth_status = delete_veth(veth_pair_netns["veth_a"])
+
+ vlans_a = veth_pair_netns["vlans_a"]
+ veth_a = veth_pair_netns["veth_a"]
+ vlans_b = veth_pair_netns["vlans_b"]
+ veth_b = veth_pair_netns["veth_b"]
+ netns_name = veth_pair_netns["netns"]
+
+ # remove vlans on top of veth interface
+ for vlan_num in vlans_a:
+ iface.delete(veth_a + "." + str(vlan_num), None)
+ for vlan_num in vlans_b:
+ iface.delete(veth_b + "." + str(vlan_num), netns_name)
+
+ veth_status = iface.delete(veth_a, None)
print("delete_veth_pair_netns: veth_status=%d" % veth_status)
- netns_status = netns.delete(veth_pair_netns["netns"])
+ netns_status = netns.delete(netns_name)
print("delete_veth_pair_netns: netns_status=%d" % netns_status)