mbox series

[bug#51440,v2,00/10] Declarative static networking interface

Message ID 20211115223044.10943-1-ludo@gnu.org
Headers show
Series Declarative static networking interface | expand

Message

Ludovic Courtès Nov. 15, 2021, 10:30 p.m. UTC
Hi!

Changes since v1:

  • ‘herd stop networking’ fixed, as reported by David Aaron
    Fendley.

  • Guile-Netlink cross-compilation simplified thanks to changes
    in Guile-Netlink 1.1.

  • ‘provision’ field of <static-networking> defaults to
    '(networking), as suggested by Julien.

  • “network-tear-down” script wraps calls in ‘false-if-netlink-error’
    to go as far as possible.

  • Documentation fixed as suggested by Julien.

Thoughts?  Test reports?  :-)

Note: It requires Guile-Netlink 1.1 as added in
46432cceebe392a1744980f370a48ef73afbac2c (it fixes another issue
David reported earlier.)

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                   | 504 ++++++++++++++++++++++----------
 gnu/build/hurd-boot.scm         |  10 +-
 gnu/build/secret-service.scm    |  17 +-
 gnu/packages/guile-xyz.scm      |   3 +-
 gnu/services/base.scm           | 406 +++++++++++++++++++------
 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, 855 insertions(+), 295 deletions(-)


base-commit: 21332f3b8cb8f407a89cdfe7d0460a9947675872

Comments

Ludovic Courtès Nov. 17, 2021, 5:13 p.m. UTC | #1
Hi!

Ludovic Courtès <ludo@gnu.org> skribis:

>   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'.

I pushed this as ‘wip-networking-netlink’ to make it easier for people
to test with something like:

  guix time-machine --branch=wip-networking-netlink -- \
    reconfigure …

Useful test scenarios:

  • You’re already using the ‘static-networking-service’ procedure; it’s
    now deprecated but you can reconfigure without changing your config
    file and check that networking works the same as before.

  • Using the new ‘static-networking’ records to define your network,
    particularly with IPv6 connectivity, crazy routes, or anything that
    was not previously possible.

Thanks in advance.  :-)

Ludo’.
Jonathan Brielmaier Nov. 17, 2021, 7:36 p.m. UTC | #2
On 17.11.21 18:13, Ludovic Courtès wrote:> Useful test scenarios
Mine is much simpler. I use GNOME and want to end the "war" between
NetworkManager and dnsmasq. At the moment I only configured IPv4 as
Vivien said in IRC that IPv6 is a bit broken.

I stumbled across the missing `(list )` around `static-networking` in
your example. In the doc/manual commit although its correct :)

If one uses %desktop-services don't forget to remove
network-manager-service-type...