Skip to content

Commit 95414fd

Browse files
committed
bench: Add support for creating VLAN interfaces
VLAN interfaces are indexed by their VLAN ID and function like normal network interfaces (as expected)
1 parent 0380e56 commit 95414fd

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

dsatest/bench/interface.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ def __init__(self, name, machine, switch=None, port_id=None):
1010
self.machine = machine
1111
self.switch = switch
1212
self.port_id = port_id
13+
self.vlan_interfaces = {}
1314

1415

1516
def __repr__(self):
@@ -39,3 +40,19 @@ def ping(self, destination, count=None, deadline=None):
3940

4041
def arp_get(self, address):
4142
return self.machine.arp_get(address, self.name)
43+
44+
def add_vlan(self, vid):
45+
ret = self.machine.add_vid(self.name, vid)
46+
""" Treat existing interfaces as okay """
47+
if ret != 0:
48+
return ret
49+
vlan = Interface("{}.{}".format(self.name, vid),
50+
self.machine, self.switch, self.port_id)
51+
self.vlan_interfaces[vid] = vlan
52+
53+
def del_vlan(self, vid):
54+
ret = self.machine.del_vid(self.name, vid)
55+
if ret != 0:
56+
return ret
57+
del self.vlan_interfaces[vid]
58+

dsatest/bench/machine.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,3 +80,13 @@ def arp_get(self, address, interface):
8080
return mac
8181

8282
return None
83+
84+
def add_vid(self, interface, vid):
85+
command = "ip link add {0}.{1} link {0} type vlan id {1}".format(interface, vid)
86+
ret, _, _ = self.control.execute(command)
87+
return ret
88+
89+
def del_vid(self, interface, vid):
90+
command = "ip link del {0}.{1}".format(interface, vid)
91+
ret, _, _, = self.control.execute(command)
92+
return ret

0 commit comments

Comments
 (0)