guix-patches
[Top][All Lists]
Advanced

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

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


From: Ludovic Courtès
Subject: [bug#51440] [PATCH 00/10] Declarative static networking interface
Date: Thu, 11 Nov 2021 23:08:39 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)

Hi David,

David Aaron Fendley <tricon@triconium.com> skribis:

> If I have:
>
>   (service static-networking-service-type
>          (list (static-networking
>                 (addresses (list (network-address
>                                   (device "eno33559296")
>                                   (value "10.7.99.99/24"))
>                                  (network-address
>                                   (device "eno16780032")
>                                   (value "10.10.199.98/24"))))
>                 (routes (list (network-route
>                                (destination "default")
>                                (gateway "10.10.199.1"))
>                               (network-route
>                                (destination "192.168.0.1/32")
>                                (gateway "10.10.199.1"))))
>                 (name-servers '("10.10.199.17" "10.10.101.2")))))
>
> After reconfigure and restart of the networking service, no routes
> listed are created. Only the standard routes for each network:

Hmm right, I need to investigate this one some more.  Apparently the
‘route-add’ call leads to “Network is unreachable”.

[...]

> If I then change the config to:
>
>   (service static-networking-service-type
>          (list (static-networking
>                 (addresses (list (network-address
>                                   (device "eno33559296")
>                                   (value "10.0.7.15/24"))
>                                  (network-address
>                                   (device "eno16780032")
>                                   (value "10.10.2.15/24"))))
>                 (routes (list (network-route
>                                (destination "default")
>                                (gateway "10.0.2.2"))))
>                 (name-servers '("10.0.2.3")))))
>
>
>
> After reconfigure and restart of the networking service, routes
> specified are still not created, and the addresses and routes are
> appended:

This one is fixed by the patch below: the ‘stop’ method of the service
would not actually load the “tear-down-network” file, oops!

Thanks a lot for testing and reporting!

To be continued…

Ludo’.

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 66683f153f..3123122200 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -2511,7 +2511,7 @@ (define network-set-up/linux
                                 addresses)
                         #$@(map (match-lambda
                                   (($ <network-link> name type arguments)
-                                   #~(link-add #:device #$name #$type
+                                   #~(link-add #$name #$type
                                                #:type-args '#$arguments)))
                                 links)
                         #$@(map (lambda (route)
@@ -2530,7 +2530,7 @@ (define network-set-up/linux
 (define network-tear-down/linux
   (match-lambda
     (($ <static-networking> addresses links routes)
-     (scheme-file "set-up-network"
+     (scheme-file "tear-down-network"
                   (with-extensions (list guile-netlink)
                     #~(begin
                         (use-modules (ip addr) (ip link) (ip route))
@@ -2579,10 +2579,10 @@ (define (static-networking-shepherd-service config)
                                  (network-set-up/hurd config))))))
         (stop #~(lambda _
                   ;; Return #f is successfully stopped.
-                  #$(let-system (system target)
-                      (if (string-contains (or target system) "-linux")
-                          (network-tear-down/linux config)
-                          (network-tear-down/hurd config)))))
+                  (load #$(let-system (system target)
+                            (if (string-contains (or target system) "-linux")
+                                (network-tear-down/linux config)
+                                (network-tear-down/hurd config))))))
         (respawn? #f))))))
 
 (define (static-networking-shepherd-services networks)

reply via email to

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