mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-13 21:25:30 +03:00
nixos/networking: use optionalAttrs -> mkIf for networkd route generation
Suggested in https://github.com/NixOS/nixpkgs/pull/312472#discussion_r1605894882
This commit is contained in:
parent
c4fd7cf16d
commit
f9f943b36e
1 changed files with 38 additions and 37 deletions
|
@ -95,63 +95,64 @@ let
|
||||||
address = forEach (interfaceIps i)
|
address = forEach (interfaceIps i)
|
||||||
(ip: "${ip.address}/${toString ip.prefixLength}");
|
(ip: "${ip.address}/${toString ip.prefixLength}");
|
||||||
routes = forEach (interfaceRoutes i)
|
routes = forEach (interfaceRoutes i)
|
||||||
(route:
|
(route: mkMerge [
|
||||||
# Most of these route options have not been tested.
|
# Most of these route options have not been tested.
|
||||||
# Please fix or report any mistakes you may find.
|
# Please fix or report any mistakes you may find.
|
||||||
optionalAttrs (route.address != null && route.prefixLength != null) {
|
(mkIf (route.address != null && route.prefixLength != null) {
|
||||||
Destination = "${route.address}/${toString route.prefixLength}";
|
Destination = "${route.address}/${toString route.prefixLength}";
|
||||||
} //
|
})
|
||||||
optionalAttrs (route.options ? fastopen_no_cookie) {
|
(mkIf (route.options ? fastopen_no_cookie) {
|
||||||
FastOpenNoCookie = route.options.fastopen_no_cookie;
|
FastOpenNoCookie = route.options.fastopen_no_cookie;
|
||||||
} //
|
})
|
||||||
optionalAttrs (route.via != null) {
|
(mkIf (route.via != null) {
|
||||||
Gateway = route.via;
|
Gateway = route.via;
|
||||||
} //
|
})
|
||||||
optionalAttrs (route.type != null) {
|
(mkIf (route.type != null) {
|
||||||
Type = route.type;
|
Type = route.type;
|
||||||
} //
|
})
|
||||||
optionalAttrs (route.options ? onlink) {
|
(mkIf (route.options ? onlink) {
|
||||||
GatewayOnLink = true;
|
GatewayOnLink = true;
|
||||||
} //
|
})
|
||||||
optionalAttrs (route.options ? initrwnd) {
|
(mkIf (route.options ? initrwnd) {
|
||||||
InitialAdvertisedReceiveWindow = route.options.initrwnd;
|
InitialAdvertisedReceiveWindow = route.options.initrwnd;
|
||||||
} //
|
})
|
||||||
optionalAttrs (route.options ? initcwnd) {
|
(mkIf (route.options ? initcwnd) {
|
||||||
InitialCongestionWindow = route.options.initcwnd;
|
InitialCongestionWindow = route.options.initcwnd;
|
||||||
} //
|
})
|
||||||
optionalAttrs (route.options ? pref) {
|
(mkIf (route.options ? pref) {
|
||||||
IPv6Preference = route.options.pref;
|
IPv6Preference = route.options.pref;
|
||||||
} //
|
})
|
||||||
optionalAttrs (route.options ? mtu) {
|
(mkIf (route.options ? mtu) {
|
||||||
MTUBytes = route.options.mtu;
|
MTUBytes = route.options.mtu;
|
||||||
} //
|
})
|
||||||
optionalAttrs (route.options ? metric) {
|
(mkIf (route.options ? metric) {
|
||||||
Metric = route.options.metric;
|
Metric = route.options.metric;
|
||||||
} //
|
})
|
||||||
optionalAttrs (route.options ? src) {
|
(mkIf (route.options ? src) {
|
||||||
PreferredSource = route.options.src;
|
PreferredSource = route.options.src;
|
||||||
} //
|
})
|
||||||
optionalAttrs (route.options ? protocol) {
|
(mkIf (route.options ? protocol) {
|
||||||
Protocol = route.options.protocol;
|
Protocol = route.options.protocol;
|
||||||
} //
|
})
|
||||||
optionalAttrs (route.options ? quickack) {
|
(mkIf (route.options ? quickack) {
|
||||||
QuickAck = route.options.quickack;
|
QuickAck = route.options.quickack;
|
||||||
} //
|
})
|
||||||
optionalAttrs (route.options ? scope) {
|
(mkIf (route.options ? scope) {
|
||||||
Scope = route.options.scope;
|
Scope = route.options.scope;
|
||||||
} //
|
})
|
||||||
optionalAttrs (route.options ? from) {
|
(mkIf (route.options ? from) {
|
||||||
Source = route.options.from;
|
Source = route.options.from;
|
||||||
} //
|
})
|
||||||
optionalAttrs (route.options ? table) {
|
(mkIf (route.options ? table) {
|
||||||
Table = route.options.table;
|
Table = route.options.table;
|
||||||
} //
|
})
|
||||||
optionalAttrs (route.options ? advmss) {
|
(mkIf (route.options ? advmss) {
|
||||||
TCPAdvertisedMaximumSegmentSize = route.options.advmss;
|
TCPAdvertisedMaximumSegmentSize = route.options.advmss;
|
||||||
} //
|
})
|
||||||
optionalAttrs (route.options ? ttl-propagate) {
|
(mkIf (route.options ? ttl-propagate) {
|
||||||
TTLPropagate = route.options.ttl-propagate == "enabled";
|
TTLPropagate = route.options.ttl-propagate == "enabled";
|
||||||
});
|
})
|
||||||
|
]);
|
||||||
networkConfig.IPv6PrivacyExtensions = "kernel";
|
networkConfig.IPv6PrivacyExtensions = "kernel";
|
||||||
linkConfig = optionalAttrs (i.macAddress != null) {
|
linkConfig = optionalAttrs (i.macAddress != null) {
|
||||||
MACAddress = i.macAddress;
|
MACAddress = i.macAddress;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue