Thanks for the report! It looks like I didn't read the netlink documentation properly and forgot a part of the message. I think I just fixed that in guile-netlink 1.1.2. You can access it with --with-latest=guile-netlink ;)
Le 10 janvier 2022 12:29:38 GMT+01:00, Niklas Schmidt <[email protected]> a écrit : >Dear Guix, > >I really appreciate the ability to declare a static-networking >configuration. > >I face some difficulties adding a 802.1Q VLAN interface using the Guile >Netlink package. I added guile-netlink to my operating system >definition's packages field. > >Running guile as root using su, I get the following error: > > scheme@(guile-user)> (use-modules (ip link)) > scheme@(guile-user)> (link-add "ens3.12" "vlan" #:type-args '((id . 12))) > ice-9/boot-9.scm:1685:16: In procedure raise-exception: > ERROR: > 1. &netlink-response-error: 22 > > Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue. > scheme@(guile-user) [1]> > > >The documentation [1] states: > > Scheme Procedure: link-add name type [#:type-args '()] > > Add a new link with given name and type. Additional arguments can be > passed to control the state of the link at creation. type-args is an > association list containing additional values for the given type. > > When type is "vlan", type-args can contain a number associated with 'id: > the VLAN id to be created. > >It is unclear to me how to specify the hardware interface for which the >VLAN link is to be added. Maybe I am missing something? > >Calling the above command with "ens3" instead of "ens3.12" results in >the same error. > >I am able to add the link manually with iproute2 by executing > > ip link add link ens3 name ens3.12 type vlan id 12 > >and was able to verifiy that it works by assigning a static IPv4 >address. > >If I run another command given in the documentation [1], > > (link-add "v0p0" "veth" #:type-args '((peer . "v0p1"))) > >that returns #t and creates the interface pair. So I think, Guile >Netlink generally works with my configuration. > >Has someone got a working code sample showing how to add VLANs using >Guile Netlink? >I don't understand the internals of the Netlink kernel interface yet. A >comment in the source code [2] says that every link type except veth and >vlan is not implemented in Guile Netlink. I am not sure whether the >functionality I whish to use is supported at all. > >My goal is to specify VLAN links in the links field of a >static-networking record. > >Im running Guix inside QEMU-KVM. If that would help, I am willing to >test this on real hardware. > >Thanks for advice. > > >Greetings >Niklas > >[1]: https://git.lepiller.eu/guile-netlink/manual/html_node/Link.html >[2]: https://git.lepiller.eu/guile-netlink/tree/-/ip/link.scm >
