diff mbox series

[bug#41515] services: nfs: Expose configuration options for TCP and UDP.

Message ID 874ks56sjw.fsf@hurd.i-did-not-set--mail-host-address--so-tickle-me
State Accepted
Headers show
Series [bug#41515] services: nfs: Expose configuration options for TCP and UDP. | expand

Checks

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

Commit Message

Maxim Cournoyer May 24, 2020, 7:28 p.m. UTC
Hello!

While attempting to NFS boot an embedded board, it discovered that
U-Boot expects the server to listen to UDP, which it doesn't by default.

This patch adds a switch to make it possible to configure to what kind
of sockets (TCP/UDP or both) the NFS server listens to.

Maxim

Comments

Gerd Heber via web May 24, 2020, 7:47 p.m. UTC | #1
maxim.cournoyer wrote:
> * gnu/services/nfs.scm (<nfs-configuration>)[nfsd-tcp?, nfsd-udp?]: Newfields.(nfs-shepherd-services)[rpc.nfsd]: Populate the --{no-,}tcp and --{no-,}udpcommand line options based on the values of the nfsd-tcp? and nfsd-upd?fields.
> * doc/guix.texi (Network File System): Add doc.
> ---
>  doc/guix.texi        |  6 ++++++ 
>  gnu/services/nfs.scm | 14 +++++++++++++-

LGTM!
Maxim Cournoyer May 30, 2020, 4:57 a.m. UTC | #2
Hello Brice!

Brice Waegeneire via web <issues.guix.gnu.org@elephly.net> writes:

> maxim.cournoyer wrote:
>> * gnu/services/nfs.scm (<nfs-configuration>)[nfsd-tcp?, nfsd-udp?]:
>> Newfields.(nfs-shepherd-services)[rpc.nfsd]: Populate the
>> --{no-,}tcp and --{no-,}udpcommand line options based on the values
>> of the nfsd-tcp? and nfsd-upd?fields.
>> * doc/guix.texi (Network File System): Add doc.
>> ---
>>  doc/guix.texi        |  6 ++++++ 
>>  gnu/services/nfs.scm | 14 +++++++++++++-
>
> LGTM!

That was quick! For some reason I didn't get your reply, because only
emails addressed directly to me reach my inbox (others are refiled to
groups). That's usually fine as when people send wide replies it sends a
copy to the original poster, not just to the debbugs email.

Perhaps we could improve issues.guix.gnu.org to send wide replies to all
participants if it has their email address available.

Anyway, pushed as commit c08fac0f7d :-).

Thank you!

Maxim
diff mbox series

Patch

From 0fffe89255c313ff3b7993f95627377046312a27 Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Sun, 24 May 2020 15:04:45 -0400
Subject: [PATCH] services: nfs: Expose configuration options for TCP and UDP.

* gnu/services/nfs.scm (<nfs-configuration>)[nfsd-tcp?, nfsd-udp?]: New
fields.
(nfs-shepherd-services)[rpc.nfsd]: Populate the --{no-,}tcp and --{no-,}udp
command line options based on the values of the nfsd-tcp? and nfsd-upd?
fields.
* doc/guix.texi (Network File System): Add doc.
---
 doc/guix.texi        |  6 ++++++
 gnu/services/nfs.scm | 14 +++++++++++++-
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 216422fe31..fb18fa5831 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -22791,6 +22791,12 @@  The network port that the @command{nfsd} daemon should use.
 @item @code{nfsd-threads} (default: @code{8})
 The number of threads used by the @command{nfsd} daemon.
 
+@item @code{nfsd-tcp?} (default: @code{#t})
+Whether the @command{nfsd} daemon should listen on a TCP socket.
+
+@item @code{nfsd-udp?} (default: @code{#f})
+Whether the @command{nfsd} daemon should listen on a UDP socket.
+
 @item @code{pipefs-directory} (default: @code{"/var/lib/nfs/rpc_pipefs"})
 The directory where the pipefs file system is mounted.
 
diff --git a/gnu/services/nfs.scm b/gnu/services/nfs.scm
index 4e358197e2..859097e788 100644
--- a/gnu/services/nfs.scm
+++ b/gnu/services/nfs.scm
@@ -1,6 +1,7 @@ 
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -261,6 +262,10 @@ 
                        (default 2049))
   (nfsd-threads        nfs-configuration-nfsd-threads
                        (default 8))
+  (nfsd-tcp?           nfs-configuration-nfsd-tcp?
+                       (default #t))
+  (nfsd-udp?           nfs-configuration-nfsd-udp?
+                       (default #f))
   (pipefs-directory    nfs-configuration-pipefs-directory
                        (default default-pipefs-directory))
   ;; List of modules to debug; any of nfsd, nfs, rpc, idmap, statd, or mountd.
@@ -272,6 +277,7 @@ 
   (match-record config <nfs-configuration>
     (nfs-utils nfs-versions exports
                rpcmountd-port rpcstatd-port nfsd-port nfsd-threads
+               nfsd-tcp? nfsd-udp?
                pipefs-directory debug)
     (list (shepherd-service
            (documentation "Mount the nfsd pseudo file system.")
@@ -332,7 +338,13 @@ 
                                #$@(map (lambda (version)
                                          (string-append "--nfs-version=" version))
                                        nfs-versions)
-                               #$(number->string nfsd-threads))))))
+                               #$(number->string nfsd-threads)
+                               #$(if nfsd-tcp?
+                                     "--tcp"
+                                     "--no-tcp")
+                               #$(if nfsd-udp?
+                                     "--udp"
+                                     "--no-udp"))))))
            (stop
             #~(lambda _
                 (zero?
-- 
2.26.2