On 11/25/25 06:37, Yureka wrote:
On 11/25/25 11:15, Alyssa Ross wrote:
Yureka Lilian <yureka@cyberchaos.dev> writes:
In preparation to integrating xdp-forwarder, making the net-vm a net-driver VM.
Signed-off-by: Yureka Lilian <yureka@cyberchaos.dev> --- vm/sys/net/Makefile | 2 +- vm/sys/net/default.nix | 8 +++----- vm/sys/net/file-list.mk | 13 +------------ vm/sys/net/image/etc/dbus-1/system.conf | 8 -------- .../etc/s6-rc/connman/dependencies.d/dbus | 0 vm/sys/net/image/etc/s6-rc/connman/run | 19 ------------------- vm/sys/net/image/etc/s6-rc/connman/type | 1 - .../net/image/etc/s6-rc/connman/type.license | 2 -- .../net/image/etc/s6-rc/dbus/notification-fd | 1 - .../etc/s6-rc/dbus/notification-fd.license | 2 -- vm/sys/net/image/etc/s6-rc/dbus/run | 10 ---------- vm/sys/net/image/etc/s6-rc/dbus/type | 1 - vm/sys/net/image/etc/s6-rc/dbus/type.license | 2 -- .../image/etc/s6-rc/ok-all/contents.d/sysctl | 0 vm/sys/net/image/etc/s6-rc/sysctl/type | 1 - .../net/image/etc/s6-rc/sysctl/type.license | 2 -- vm/sys/net/image/etc/s6-rc/sysctl/up | 4 ---- vm/sys/net/image/etc/sysctl.conf | 4 ---- 18 files changed, 5 insertions(+), 75 deletions(-) delete mode 100644 vm/sys/net/image/etc/dbus-1/system.conf delete mode 100644 vm/sys/net/image/etc/s6-rc/connman/dependencies.d/dbus delete mode 100644 vm/sys/net/image/etc/s6-rc/connman/run delete mode 100644 vm/sys/net/image/etc/s6-rc/connman/type delete mode 100644 vm/sys/net/image/etc/s6-rc/connman/type.license delete mode 100644 vm/sys/net/image/etc/s6-rc/dbus/notification-fd delete mode 100644 vm/sys/net/image/etc/s6-rc/dbus/notification-fd.license delete mode 100644 vm/sys/net/image/etc/s6-rc/dbus/run delete mode 100644 vm/sys/net/image/etc/s6-rc/dbus/type delete mode 100644 vm/sys/net/image/etc/s6-rc/dbus/type.license delete mode 100644 vm/sys/net/image/etc/s6-rc/ok-all/contents.d/sysctl delete mode 100644 vm/sys/net/image/etc/s6-rc/sysctl/type delete mode 100644 vm/sys/net/image/etc/s6-rc/sysctl/type.license delete mode 100644 vm/sys/net/image/etc/s6-rc/sysctl/up delete mode 100644 vm/sys/net/image/etc/sysctl.conf Won't we still need connman or NetworkManager or something to configure Wi-Fi?
Thank you for this excellent question.
Me too! I have some comments below, but I will be the first to state that none of them should block merging this patch. The current situation is definitely unsatisfactory.
connman and NetworkManager are all-in-one tools for networking. They mostly provide a unified interface for the underlying stacks (wpa_supplicant/iwd, kernel networking stack, firewall, VPNs). I don't expect we can re-use such an all-in-one tool in the driver VM, as the driver VM is only responsible for one device and shuffling data from and to it. In the Wi-Fi case there is an exception because the device needs special configuration, with user input. In the future, I see wpa_supplicant as a candidate which can maintain Wi-Fi connections in a stateful configuration file, providing both a cli and a GUI which we could forward to the user.
NetworkManager has the advantage that good GUI and CLI tools for it already exist. That said, if we are going to use a daemon directly, I strongly recommend going with iwd over wpa_supplicant. It has much better code quality and can handle network configuration itself.
For more complex networking configuration, I would expect them to be done via the VM "graph", where an advanced user could build a chain of provider VMs which do 1:n multiplexing (the router I'm currently writing), n:1 multiplexing (something like Android's automatic switching between Wi-Fi, cellular uplink and cabled connections depending on network conditions), and VPN/Tor as a 1:1 provider performing some encapsulation.
I don't think that n:1 multiplexing is an advanced configuration. My home laptop and probably many others has Wi-Fi and Ethernet, and others have Wi-Fi and USB/Thunderbolt docking stations. Yet other devices will have cellular data too. It's a mess, and it should work out of the box.
In this current patch series the spectrum router takes over the 1:n multiplexing that connman was previously used for. For the n:1 multiplexing needed for network devices with multiple interfaces, I expect to just use the next best one which receives router advertisements (which should be similar to the previous user experience with connman), but in this current patch series the n:1 multiplexing is not implemented.
NetworkManager might have more complex policies. If so, it might be best to reuse it. I don't think this is an area where it is worth diverging too much from most Linux distros.
From what I can tell Wi-Fi was not a previously working feature, and supporting it in the future via wpa_supplicant would not be much more difficult, as we have tested the router in principle supports multiplexing multiple apps to one Wi-Fi connection. Getting Wi-Fi working should be quite simple, but I expect that choosing between different networks won't be, at least for all of the types of networks in the wild. I would love to be prove wrong on this. -- Sincerely, Demi Marie Obenour (she/her/hers)