mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
services: Add dhcpd-service-type and <dhcpd-configuration>.
* doc/guix.texi (Networking Services): Document it. * gnu/services/networking.scm (dhcpd-service-type): Add it. (dhcpd-configuration, dhcpd-configuration?): Add it. (dhcpd-configuration-package): Add it. (dhcpd-configuration-config-file): Add it. (dhcpd-configuration-version): Add it. (dhcpd-configuration-run-directory): Add it. (dhcpd-configuration-lease-file): Add it. (dhcpd-configuration-pid-file): Add it. (dhcpd-configuration-interfaces): Add it. * gnu/tests/networking.scm (minimal-dhcpd-v4-config-file) (dhcpd-v4-configuration, %dhcpd-os, run-dhcpd-test, %test-dhcpd): New variables.
This commit is contained in:
parent
e33498b868
commit
f1104d9009
3 changed files with 219 additions and 1 deletions
|
@ -10694,6 +10694,51 @@ Return a service that runs @var{dhcp}, a Dynamic Host Configuration
|
|||
Protocol (DHCP) client, on all the non-loopback network interfaces.
|
||||
@end deffn
|
||||
|
||||
@deffn {Scheme Procedure} dhcpd-service-type
|
||||
This type defines a service that runs a DHCP daemon. To create a
|
||||
service of this type, you must supply a @code{<dhcpd-configuration>}.
|
||||
For example:
|
||||
|
||||
@example
|
||||
(service dhcpd-service-type
|
||||
(dhcpd-configuration
|
||||
(config-file (local-file "my-dhcpd.conf"))
|
||||
(interfaces '("enp0s25"))))
|
||||
@end example
|
||||
@end deffn
|
||||
|
||||
@deftp {Data Type} dhcpd-configuration
|
||||
@table @asis
|
||||
@item @code{package} (default: @code{isc-dhcp})
|
||||
The package that provides the DHCP daemon. This package is expected to
|
||||
provide the daemon at @file{sbin/dhcpd} relative to its output
|
||||
directory. The default package is the
|
||||
@uref{http://www.isc.org/products/DHCP, ISC's DHCP server}.
|
||||
@item @code{config-file} (default: @code{#f})
|
||||
The configuration file to use. This is required. It will be passed to
|
||||
@code{dhcpd} via its @code{-cf} option. This may be any ``file-like''
|
||||
object (@pxref{G-Expressions, file-like objects}). See @code{man
|
||||
dhcpd.conf} for details on the configuration file syntax.
|
||||
@item @code{version} (default: @code{"4"})
|
||||
The DHCP version to use. The ISC DHCP server supports the values ``4'',
|
||||
``6'', and ``4o6''. These correspond to the @code{dhcpd} program
|
||||
options @code{-4}, @code{-6}, and @code{-4o6}. See @code{man dhcpd} for
|
||||
details.
|
||||
@item @code{run-directory} (default: @code{"/run/dhcpd"})
|
||||
The run directory to use. At service activation time, this directory
|
||||
will be created if it does not exist.
|
||||
@item @code{pid-file} (default: @code{"/run/dhcpd/dhcpd.pid"})
|
||||
The PID file to use. This corresponds to the @code{-pf} option of
|
||||
@code{dhcpd}. See @code{man dhcpd} for details.
|
||||
@item @code{interfaces} (default: @code{'()})
|
||||
The names of the network interfaces on which dhcpd should listen for
|
||||
broadcasts. If this list is not empty, then its elements (which must be
|
||||
strings) will be appended to the @code{dhcpd} invocation when starting
|
||||
the daemon. It may not be necessary to explicitly specify any
|
||||
interfaces here; see @code{man dhcpd} for details.
|
||||
@end table
|
||||
@end deftp
|
||||
|
||||
@defvr {Scheme Variable} static-networking-service-type
|
||||
This is the type for statically-configured network interfaces.
|
||||
@c TODO Document <static-networking> data structures.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue