Merge pull request #184340 from jmbaur/ipv6routeprefix
nixos/systemd.network: Add `IPv6RoutePrefix` options
This commit is contained in:
commit
087fa6565d
1 changed files with 40 additions and 0 deletions
|
@ -879,6 +879,15 @@ let
|
||||||
(assertValueOneOf "OnLink" boolValues)
|
(assertValueOneOf "OnLink" boolValues)
|
||||||
];
|
];
|
||||||
|
|
||||||
|
sectionIPv6RoutePrefix = checkUnitConfig "IPv6RoutePrefix" [
|
||||||
|
(assertOnlyFields [
|
||||||
|
"Route"
|
||||||
|
"LifetimeSec"
|
||||||
|
])
|
||||||
|
(assertHasField "Route")
|
||||||
|
(assertInt "LifetimeSec")
|
||||||
|
];
|
||||||
|
|
||||||
sectionDHCPServerStaticLease = checkUnitConfig "DHCPServerStaticLease" [
|
sectionDHCPServerStaticLease = checkUnitConfig "DHCPServerStaticLease" [
|
||||||
(assertOnlyFields [
|
(assertOnlyFields [
|
||||||
"MACAddress"
|
"MACAddress"
|
||||||
|
@ -1242,6 +1251,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
|
||||||
|
<literal>[IPv6RoutePrefix]</literal> section of the unit. See
|
||||||
|
<citerefentry><refentrytitle>systemd.network</refentrytitle>
|
||||||
|
<manvolnum>5</manvolnum></citerefentry> for details.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
dhcpServerStaticLeaseOptions = {
|
dhcpServerStaticLeaseOptions = {
|
||||||
options = {
|
options = {
|
||||||
dhcpServerStaticLeaseConfig = mkOption {
|
dhcpServerStaticLeaseConfig = mkOption {
|
||||||
|
@ -1384,6 +1409,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
|
||||||
|
<citerefentry><refentrytitle>systemd.network</refentrytitle>
|
||||||
|
<manvolnum>5</manvolnum></citerefentry> for details.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
name = mkOption {
|
name = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
|
@ -1775,6 +1811,10 @@ let
|
||||||
[IPv6Prefix]
|
[IPv6Prefix]
|
||||||
${attrsToSection x.ipv6PrefixConfig}
|
${attrsToSection x.ipv6PrefixConfig}
|
||||||
'')
|
'')
|
||||||
|
+ flip concatMapStrings def.ipv6RoutePrefixes (x: ''
|
||||||
|
[IPv6RoutePrefix]
|
||||||
|
${attrsToSection x.ipv6RoutePrefixConfig}
|
||||||
|
'')
|
||||||
+ flip concatMapStrings def.dhcpServerStaticLeases (x: ''
|
+ flip concatMapStrings def.dhcpServerStaticLeases (x: ''
|
||||||
[DHCPServerStaticLease]
|
[DHCPServerStaticLease]
|
||||||
${attrsToSection x.dhcpServerStaticLeaseConfig}
|
${attrsToSection x.dhcpServerStaticLeaseConfig}
|
||||||
|
|
Loading…
Reference in a new issue