emacs-bug-tracker
[Top][All Lists]
Advanced

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

bug#51440: closed ([PATCH 00/10] Declarative static networking interface


From: GNU bug Tracking System
Subject: bug#51440: closed ([PATCH 00/10] Declarative static networking interface)
Date: Sun, 12 Dec 2021 23:12:02 +0000

Your message dated Mon, 13 Dec 2021 00:11:41 +0100
with message-id <87mtl52zbm.fsf_-_@gnu.org>
and subject line Re: bug#51440: [PATCH 00/10] Declarative static networking 
interface
has caused the debbugs.gnu.org bug report #51440,
regarding [PATCH 00/10] Declarative static networking interface
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
51440: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=51440
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: [PATCH 00/10] Declarative static networking interface Date: Wed, 27 Oct 2021 15:59:18 +0200
Hi!

This patch set builds on Julien’s neat Guile-Netlink to finally
provide a proper static networking configuration interface.  One
can now write things like:

  (service static-networking-service-type
           ;; Network configuration for one NIC, IPv4 + IPv6.
           (static-networking
            (addresses (list (network-address
                              (device "eno1")
                              (value "10.0.2.15/24"))
                             (network-address
                              (device "eno1")
                              (value "2001:123:4567:101::1"))))
            (routes (list (network-route
                           (destination "default")
                           (gateway "10.0.2.2"))
                          (network-route
                           (destination "default")
                           (gateway "2020:321:4567:42::1"))))
            (name-servers '("10.0.2.3"))))

For the record, the ‘static-networking-service’ procedure currently
in ‘master’ is IPv4-only and would not allow you to assign more
than one address to an interface anyway, among other limitations.
These long-overdue patches close an embarrassing gap.

The interface provided here is a direct mapping of that of Guile-Netlink,
which is the same as that of the ‘ip’ command, itself closely
modeled after Linux’s internal interfaces AIUI.  Thus, it should be
roughly as expressive as ‘ip’, but declarative.

I’m not a network person though, so I’d appreciate if more
knowledgeable people would take a look at the interface.  In particular,
I’d like to have examples of ‘links’ to include in the manual—I’m not
quite sure how to use that.  Ideas?

This patches preserve backward-compatibility: the
‘static-networking-service’ procedure still works the same.  There’s
one observable difference though: there’s only one ‘networking’
Shepherd service now; you no longer get ‘networking-eno1’ and similar.
The ‘static-networking’ constructor was public since commit
c9436025a90b86047ba2203d58bbf238f8f9b2f9 but undocumented; thus I
changed the fields of <static-networking> without worrying about
compatibility.

I tested this with:

  make check-system \
    TESTS="static-networking openvswitch ganeti-kvm dhcpd childhurd"

I would appreciate more testing, including tests on the bare metal
for IPv6 support.

Ensuring portability to GNU/Hurd took me more time than I’d have
thought, but it works.  “Links” are not supported there, and only
“default” routes are supported.

I took a detour in commit “Use Guile-Netlink on GNU/Linux”: that
patch shows that I was blissfully hoping to use good’ol ioctls
on GNU/Hurd, but that turned out to be a dead end because they
don’t support IPv6 (which really isn’t a surprise but I don’t know,
I must have been lacking focus at that point of my journey!).

With all this I think we should be able to do “cool things with
containers”, but again, that’s not my area of expertise so please
do chime in if you container networking is your thing.

Feedback welcome!

Ludo’.

Ludovic Courtès (10):
  tests: Add 'static-networking' test.
  tests: openvswitch: Check whether ovs0 is up.
  doc: Add new "Networking Setup" node for the main setup options.
  gnu: guile-netlink: Allow cross-compilation.
  services: static-networking: Use Guile-Netlink on GNU/Linux.
  services: secret-service: Turn into a Shepherd service.
  services: static-networking: Change interface to mimic netlink.
  services: Define '%qemu-static-networking'.
  services: Define '%loopback-static-networking'.
  tests: Replace uses of deprecated 'static-networking-service'.

 doc/guix.texi                   | 505 ++++++++++++++++++++++----------
 gnu/build/hurd-boot.scm         |  10 +-
 gnu/build/secret-service.scm    |  17 +-
 gnu/packages/guile-xyz.scm      |  11 +-
 gnu/services/base.scm           | 391 +++++++++++++++++++------
 gnu/services/virtualization.scm |  45 ++-
 gnu/system/hurd.scm             |  12 +-
 gnu/system/install.scm          |   5 +-
 gnu/tests/ganeti.scm            |   7 +-
 gnu/tests/networking.scm        | 141 ++++++++-
 10 files changed, 851 insertions(+), 293 deletions(-)


base-commit: 0a42998a50e8bbe9e49142b21a570db00efe7491
-- 
2.33.0




--- End Message ---
--- Begin Message --- Subject: Re: bug#51440: [PATCH 00/10] Declarative static networking interface Date: Mon, 13 Dec 2021 00:11:41 +0100 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
I went ahead and pushed this series:

  c8609493ba news: Add entry about 'static-networking-service-type'.
  f73ba627ab tests: Replace uses of deprecated 'static-networking-service'.
  5967aee398 services: Define '%loopback-static-networking'.
  1644f4f1f8 services: Define '%qemu-static-networking'.
  223f1b1eb3 services: static-networking: Change interface to mimic netlink.
  39e3b4b7ce services: secret-service: Turn into a Shepherd service.
  0cc742b261 services: static-networking: Use Guile-Netlink on GNU/Linux.
  1759292c8b gnu: guile-netlink: Allow cross-compilation.
  a4d33fef31 doc: Add new "Networking Setup" node for the main setup options.
  33c498b9ee tests: openvswitch: Check whether ovs0 is up.
  72f140c253 tests: Add 'static-networking' test.

Let me know if anything’s amiss!

Thanks,
Ludo’.


--- End Message ---

reply via email to

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