ndppd module: init (#35533)
parent
21b926003d
commit
9f1da66587
@ -0,0 +1,47 @@ |
||||
{ config, lib, pkgs, ... }: |
||||
|
||||
with lib; |
||||
|
||||
let |
||||
cfg = config.services.ndppd; |
||||
|
||||
configFile = pkgs.runCommand "ndppd.conf" {} '' |
||||
substitute ${pkgs.ndppd}/etc/ndppd.conf $out \ |
||||
--replace eth0 ${cfg.interface} \ |
||||
--replace 1111:: ${cfg.network} |
||||
''; |
||||
in { |
||||
options = { |
||||
services.ndppd = { |
||||
enable = mkEnableOption "daemon that proxies NDP (Neighbor Discovery Protocol) messages between interfaces"; |
||||
interface = mkOption { |
||||
type = types.string; |
||||
default = "eth0"; |
||||
example = "ens3"; |
||||
description = "Interface which is on link-level with router."; |
||||
}; |
||||
network = mkOption { |
||||
type = types.string; |
||||
default = "1111::"; |
||||
example = "2001:DB8::/32"; |
||||
description = "Network that we proxy."; |
||||
}; |
||||
configFile = mkOption { |
||||
type = types.nullOr types.path; |
||||
default = null; |
||||
description = "Path to configuration file."; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
config = mkIf cfg.enable { |
||||
systemd.packages = [ pkgs.ndppd ]; |
||||
environment.etc."ndppd.conf".source = if (cfg.configFile != null) then cfg.configFile else configFile; |
||||
systemd.services.ndppd = { |
||||
serviceConfig.RuntimeDirectory = [ "ndppd" ]; |
||||
wantedBy = [ "multi-user.target" ]; |
||||
}; |
||||
}; |
||||
|
||||
meta.maintainers = with maintainers; [ gnidorah ]; |
||||
} |
Loading…
Reference in new issue