From f6a290932e773b7412978f29fc50c6a8f3dce222 Mon Sep 17 00:00:00 2001 From: Philippe Schaaf Date: Thu, 21 Jul 2022 11:38:03 +0200 Subject: [PATCH] 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 --- nixos/lib/test-driver/test_driver/vlan.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/lib/test-driver/test_driver/vlan.py b/nixos/lib/test-driver/test_driver/vlan.py index e5c8f07b4edf..4d4debedc407 100644 --- a/nixos/lib/test-driver/test_driver/vlan.py +++ b/nixos/lib/test-driver/test_driver/vlan.py @@ -33,7 +33,7 @@ class VLan: 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, @@ -50,7 +50,7 @@ class VLan: 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})")