[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Add VLAN with Guile Netlink link-add
From: |
Julien Lepiller |
Subject: |
Re: Add VLAN with Guile Netlink link-add |
Date: |
Tue, 11 Jan 2022 14:01:08 +0100 |
User-agent: |
K-9 Mail for Android |
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 <snlabs@posteo.net> 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
>