summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.texi6
-rw-r--r--gnu/services/nfs.scm14
2 files changed, 19 insertions, 1 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index ba5729bd41..beeda34ea2 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -22858,6 +22858,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?