3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/nixos/modules/services/networking/radvd.nix
Franz Pletz 79e7f7af9a
radvd service: fix due to systemd upgrade
After the systemd 237 upgrade, radvd wouldn't start anymore because the
PID file cannot be written. It seems that directories in /run has to be
explicitely defined as RuntimeDirectory now. The PID file isn't needed
due to systemd, though, so it was removed along with forking and loggia
via syslog.

This fixes the ipv6 NixOS test.
2018-02-15 07:02:08 +01:00

73 lines
1.5 KiB
Nix

# Module for the IPv6 Router Advertisement Daemon.
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.radvd;
confFile = pkgs.writeText "radvd.conf" cfg.config;
in
{
###### interface
options = {
services.radvd.enable = mkOption {
default = false;
description =
''
Whether to enable the Router Advertisement Daemon
(<command>radvd</command>), which provides link-local
advertisements of IPv6 router addresses and prefixes using
the Neighbor Discovery Protocol (NDP). This enables
stateless address autoconfiguration in IPv6 clients on the
network.
'';
};
services.radvd.config = mkOption {
example =
''
interface eth0 {
AdvSendAdvert on;
prefix 2001:db8:1234:5678::/64 { };
};
'';
description =
''
The contents of the radvd configuration file.
'';
};
};
###### implementation
config = mkIf cfg.enable {
users.extraUsers.radvd =
{ uid = config.ids.uids.radvd;
description = "Router Advertisement Daemon User";
};
systemd.services.radvd =
{ description = "IPv6 Router Advertisement Daemon";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig =
{ ExecStart = "@${pkgs.radvd}/bin/radvd radvd -n -u radvd -C ${confFile}";
Restart = "always";
};
};
};
}