unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
From: Julien Lepiller <julien@lepiller.eu>
To: help-guix@gnu.org, Niklas Schmidt <snlabs@posteo.net>
Subject: Re: Add VLAN with Guile Netlink link-add
Date: Tue, 11 Jan 2022 14:01:08 +0100	[thread overview]
Message-ID: <DFE5F0D6-6F86-4B1D-A423-67A64505C70E@lepiller.eu> (raw)
In-Reply-To: <YdwYoqttwaO7LYYQ@posteo.de>

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
>

  reply	other threads:[~2022-01-11 14:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-10 11:29 Add VLAN with Guile Netlink link-add Niklas Schmidt
2022-01-11 13:01 ` Julien Lepiller [this message]
2022-01-11 19:30   ` Niklas Schmidt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DFE5F0D6-6F86-4B1D-A423-67A64505C70E@lepiller.eu \
    --to=julien@lepiller.eu \
    --cc=help-guix@gnu.org \
    --cc=snlabs@posteo.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).