From b1bb3bcad8b508def149a4c2eb520bdacfef6b85 Mon Sep 17 00:00:00 2001 From: Jared Baur Date: Sun, 31 Jul 2022 14:11:01 -0700 Subject: nixos/systemd.network: Add `IPv6RoutePrefix` options --- nixos/modules/system/boot/networkd.nix | 40 ++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'nixos/modules/system') diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix index 0336930b3ab7..2d2d472ff00d 100644 --- a/nixos/modules/system/boot/networkd.nix +++ b/nixos/modules/system/boot/networkd.nix @@ -858,6 +858,15 @@ let (assertValueOneOf "OnLink" boolValues) ]; + sectionIPv6RoutePrefix = checkUnitConfig "IPv6RoutePrefix" [ + (assertOnlyFields [ + "Route" + "LifetimeSec" + ]) + (assertHasField "Route") + (assertInt "LifetimeSec") + ]; + sectionDHCPServerStaticLease = checkUnitConfig "DHCPServerStaticLease" [ (assertOnlyFields [ "MACAddress" @@ -1246,6 +1255,22 @@ let }; }; + ipv6RoutePrefixOptions = { + options = { + ipv6RoutePrefixConfig = mkOption { + default = {}; + example = { Route = "fd00::/64"; }; + type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6RoutePrefix; + description = '' + Each attribute in this set specifies an option in the + [IPv6RoutePrefix] section of the unit. See + systemd.network + 5 for details. + ''; + }; + }; + }; + dhcpServerStaticLeaseOptions = { options = { dhcpServerStaticLeaseConfig = mkOption { @@ -1399,6 +1424,17 @@ let ''; }; + ipv6RoutePrefixes = mkOption { + default = []; + example = [ { Route = "fd00::/64"; LifetimeSec = 3600; } ]; + type = with types; listOf (submodule ipv6RoutePrefixOptions); + description = '' + A list of ipv6RoutePrefix sections to be added to the unit. See + systemd.network + 5 for details. + ''; + }; + name = mkOption { type = types.nullOr types.str; default = null; @@ -1806,6 +1842,10 @@ let [IPv6Prefix] ${attrsToSection x.ipv6PrefixConfig} '') + + flip concatMapStrings def.ipv6RoutePrefixes (x: '' + [IPv6RoutePrefix] + ${attrsToSection x.ipv6RoutePrefixConfig} + '') + flip concatMapStrings def.dhcpServerStaticLeases (x: '' [DHCPServerStaticLease] ${attrsToSection x.dhcpServerStaticLeaseConfig} -- cgit 1.4.1