diff mbox series

[bug#51440,08/10] services: Define '%qemu-static-networking'.

Message ID 20211027140245.18970-8-ludo@gnu.org
State Accepted
Headers show
Series [bug#51440,01/10] tests: Add 'static-networking' test. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Ludovic Courtès Oct. 27, 2021, 2:02 p.m. UTC
* gnu/services/base.scm (%qemu-static-networking): New variable.
* gnu/system/hurd.scm (%base-services/hurd): Use it.
* doc/guix.texi (Networking Setup): Document it.
---
 doc/guix.texi         |  8 ++++++++
 gnu/services/base.scm | 16 ++++++++++++++++
 gnu/system/hurd.scm   | 21 ++++++---------------
 3 files changed, 30 insertions(+), 15 deletions(-)
diff mbox series

Patch

diff --git a/doc/guix.texi b/doc/guix.texi
index b529a8db6c..0b23075d8c 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -16923,6 +16923,14 @@  List of arguments for this type of link.
 @end table
 @end deftp
 
+@cindex networking, with QEMU
+@cindex QEMU, networking
+@defvr {Scheme Variable} %qemu-static-networking
+This is the @code{static-networking} record representing network setup
+when using QEMU's user-mode network stack on @code{eth0} (@pxref{Using
+the user mode network stack,,, QEMU, QEMU Documentation}).
+@end defvr
+
 @cindex DHCP, networking service
 @defvr {Scheme Variable} dhcp-client-service-type
 This is the type of services that run @var{dhcp}, a Dynamic Host Configuration
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 03f6b388a8..380be1c71e 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -113,6 +113,8 @@  (define-module (gnu services base)
             static-networking-service
             static-networking-service-type
 
+            %qemu-static-networking
+
             udev-configuration
             udev-configuration?
             udev-configuration-rules
@@ -2656,6 +2658,20 @@  (define-deprecated (static-networking-service interface ip
                          (provision provision)
                          (name-servers name-servers)))))
 
+(define %qemu-static-networking
+  ;; Networking configuration for QEMU's user-mode network stack (info "(QEMU)
+  ;; Using the user mode network stack").
+  (static-networking
+   (addresses (list (network-address
+                     (device "eth0")
+                     (value "10.0.2.15/24"))))
+   (routes (list (network-route
+                  (destination "default")
+                  (gateway "10.0.2.2"))))
+   (requirement '())
+   (provision '(networking))
+   (name-servers '("10.0.2.3"))))
+
 
 (define %base-services
   ;; Convenience variable holding the basic services.
diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm
index 0e73ca0d99..ec8484d746 100644
--- a/gnu/system/hurd.scm
+++ b/gnu/system/hurd.scm
@@ -86,21 +86,12 @@  (define %base-services/hurd
                                 (value "127.0.0.1"))))
                         (requirement '())
                         (provision '(loopback)))
-                       (static-networking
-                        (addresses
-                         ;; The default QEMU guest address.  To get "eth0",
-                         ;; you need QEMU to emulate a device for which Mach
-                         ;; has an in-kernel driver, for instance with:
-                         ;; --device rtl8139,netdev=net0 --netdev user,id=net0
-                         (list (network-address
-                                (device "eth0")
-                                (value "10.0.2.15/24"))))
-                        (routes
-                         (list (network-route
-                                (destination "default")
-                                (gateway "10.0.2.2"))))
-                        (provision '(networking))
-                        (name-servers '("10.0.2.3")))))
+
+                       ;; QEMU user-mode networking.  To get "eth0", you need
+                       ;; QEMU to emulate a device for which Mach has an
+                       ;; in-kernel driver, for instance with:
+                       ;; --device rtl8139,netdev=net0 --netdev user,id=net0
+                       %qemu-static-networking))
         (syslog-service)
         (service guix-service-type
                  (guix-configuration