For fun I tried to use the exact configuration that is mentioned in the manual and was amazed that it worked, and the networking service is able to start successfully. Here is the working configuration:
--8<---------------cut here---------------start------------->8--- (static-networking (links (list (network-link (name "bond0") (type 'bond) (arguments '((mode . "802.3ad") (miimon . 100) (lacp-active . "on") (lacp-rate . "fast")))) (network-link (mac-address "98:11:22:33:44:55") (arguments '((master . "bond0")))) (network-link (mac-address "98:11:22:33:44:56") (arguments '((master . "bond0")))) (network-link (name "bond0.1055") (type 'vlan) (arguments '((id . 1055) (link . "bond0")))))) (addresses (list (network-address (value "192.168.1.4/24") --8<---------------cut here---------------end--------------->8--- However, if I simply substitute the bond interface with a real interface I get back the error described in my previous message. This configuration fails: --8<---------------cut here---------------start------------->8--- (static-networking (links (list (network-link (name "bond0.1055") (type 'vlan) (arguments '((id . 1055) (link . "ens3")))))) (addresses (list (network-address (value "192.168.1.4/24") (device "bond0.1055"))))) --8<---------------cut here---------------end--------------->8--- So it seems that VLANs do work for bonds, but not for physical network interfaces. I've done a lot of digging on the internet and cannot find a single example of anyone using VLANs at all in Guix, so maybe that is why this problem hasn't been discovered yet.