help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Add VLAN with Guile Netlink link-add


From: Niklas Schmidt
Subject: Add VLAN with Guile Netlink link-add
Date: Mon, 10 Jan 2022 11:29:38 +0000

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]