use vde switch in hubmode by default

Within a dual VM test-setup a strange behaviour was observed.
The two VMs are connected via one vde_switch instance
(instancevirtualisation.vlans = [ 1 ]; IMO a bad attribute name for
switch instances, has nothing to do with VLANs in sense of 802.1Q).

A ping on the base interface (eth1) works, but not on VLAN
subinterfaces (vlan1@eth1). A tcpdump of eth1 includes the ARP requests
tagged with the subinterfaces VLAN ID, but responses seems not to pass
the vde_switch. This works fine if performed on the base interface.

Putting the vde_switch in hub mode results in flooding
traffic to all vde_switch ports. This results in a expected behaviour
and a ping on a VLAN subinterface works as expected.

Signed-off-by: Philippe Schaaf <philippe.schaaf@secunet.com>

Changed files
+2 -2
nixos
lib
test-driver
test_driver
+2 -2
nixos/lib/test-driver/test_driver/vlan.py
···
pty_master, pty_slave = pty.openpty()
self.process = subprocess.Popen(
-
["vde_switch", "-s", self.socket_dir, "--dirmode", "0700"],
+
["vde_switch", "-s", self.socket_dir, "--dirmode", "0700", "--hub"],
stdin=pty_slave,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
···
if not (self.socket_dir / "ctl").exists():
rootlog.error("cannot start vde_switch")
-
rootlog.info(f"running vlan (pid {self.pid})")
+
rootlog.info(f"running vlan (pid {self.pid}; ctl {self.socket_dir})")
def __del__(self) -> None:
rootlog.info(f"kill vlan (pid {self.pid})")