diff options
author | rnhmjoj <rnhmjoj@inventati.org> | 2017-07-28 16:45:58 +0200 |
---|---|---|
committer | rnhmjoj <rnhmjoj@inventati.org> | 2018-02-17 14:01:23 +0100 |
commit | f41111c4da9a7eb5cade95d945eec7576757d27d (patch) | |
tree | 4b0616ec89107b10aa06920baf73fde5428b82ce /nixos/modules/tasks | |
parent | d00c91c5dab1428941c4ee61e341b01a26f14c90 (diff) | |
download | nixlib-f41111c4da9a7eb5cade95d945eec7576757d27d.tar nixlib-f41111c4da9a7eb5cade95d945eec7576757d27d.tar.gz nixlib-f41111c4da9a7eb5cade95d945eec7576757d27d.tar.bz2 nixlib-f41111c4da9a7eb5cade95d945eec7576757d27d.tar.lz nixlib-f41111c4da9a7eb5cade95d945eec7576757d27d.tar.xz nixlib-f41111c4da9a7eb5cade95d945eec7576757d27d.tar.zst nixlib-f41111c4da9a7eb5cade95d945eec7576757d27d.zip |
nixos/tests: add test for static routes
Diffstat (limited to 'nixos/modules/tasks')
-rw-r--r-- | nixos/modules/tasks/network-interfaces-scripted.nix | 5 | ||||
-rw-r--r-- | nixos/modules/tasks/network-interfaces.nix | 12 |
2 files changed, 9 insertions, 8 deletions
diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix index 9dba6d1bd0a2..28bbc27a2693 100644 --- a/nixos/modules/tasks/network-interfaces-scripted.nix +++ b/nixos/modules/tasks/network-interfaces-scripted.nix @@ -210,12 +210,13 @@ let ${flip concatMapStrings (i.ipv4Routes ++ i.ipv6Routes) (route: let cidr = "${route.address}/${toString route.prefixLength}"; - nextHop = optionalString (route.nextHop != null) ''via "${route.nextHop}"''; + via = optionalString (route.via != null) ''via "${route.via}"''; + options = concatStrings (mapAttrsToList (name: val: "${name} ${val} ") route.options); in '' echo "${cidr}" >> $state echo -n "adding route ${cidr}... " - if out=$(ip route add "${cidr}" ${route.options} ${nextHop} dev "${i.name}" 2>&1); then + if out=$(ip route add "${cidr}" ${options} ${via} dev "${i.name}" 2>&1); then echo "done" elif ! echo "$out" | grep "File exists" >/dev/null 2>&1; then echo "failed" diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix index d437a829be5f..6f8ee147649d 100644 --- a/nixos/modules/tasks/network-interfaces.nix +++ b/nixos/modules/tasks/network-interfaces.nix @@ -131,16 +131,16 @@ let ''; }; - nextHop = mkOption { + via = mkOption { type = types.nullOr types.str; default = null; description = "IPv${toString v} address of the next hop."; }; options = mkOption { - type = types.str; - default = ""; - example = "mtu 1492 window 524288"; + type = types.attrsOf types.str; + default = { }; + example = { mtu = "1492"; window = "524288"; }; description = '' Other route options. See the symbol <literal>OPTION</literal> in the <literal>ip-route(8)</literal> manual page for the details. @@ -237,7 +237,7 @@ let default = []; example = [ { address = "10.0.0.0"; prefixLength = 16; } - { address = "192.168.2.0"; prefixLength = 24; nextHop = "192.168.1.1"; } + { address = "192.168.2.0"; prefixLength = 24; via = "192.168.1.1"; } ]; type = with types; listOf (submodule (routeOpts 4)); description = '' @@ -249,7 +249,7 @@ let default = []; example = [ { address = "fdfd:b3f0::"; prefixLength = 48; } - { address = "2001:1470:fffd:2098::"; prefixLength = 64; nextHop = "fdfd:b3f0::1"; } + { address = "2001:1470:fffd:2098::"; prefixLength = 64; via = "fdfd:b3f0::1"; } ]; type = with types; listOf (submodule (routeOpts 6)); description = '' |