summary refs log tree commit diff
path: root/nixos/modules/tasks/network-interfaces-scripted.nix
diff options
context:
space:
mode:
authorWilliam A. Kennington III <william@wkennington.com>2014-11-29 22:43:54 -0800
committerWilliam A. Kennington III <william@wkennington.com>2014-11-29 22:47:04 -0800
commit66f45268ab961562b314ea1b5a077b7d81841e86 (patch)
tree9ec3e15bd5e58b07e9a8c39c165d08254dea2f30 /nixos/modules/tasks/network-interfaces-scripted.nix
parent7ecb084b77ae7f4ae66f844ae23f22e7ceea0879 (diff)
downloadnixlib-66f45268ab961562b314ea1b5a077b7d81841e86.tar
nixlib-66f45268ab961562b314ea1b5a077b7d81841e86.tar.gz
nixlib-66f45268ab961562b314ea1b5a077b7d81841e86.tar.bz2
nixlib-66f45268ab961562b314ea1b5a077b7d81841e86.tar.lz
nixlib-66f45268ab961562b314ea1b5a077b7d81841e86.tar.xz
nixlib-66f45268ab961562b314ea1b5a077b7d81841e86.tar.zst
nixlib-66f45268ab961562b314ea1b5a077b7d81841e86.zip
nixos/networking: Improve service ordering
Diffstat (limited to 'nixos/modules/tasks/network-interfaces-scripted.nix')
-rw-r--r--nixos/modules/tasks/network-interfaces-scripted.nix11
1 files changed, 8 insertions, 3 deletions
diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix
index 12be812c71cb..42db6d61b4f1 100644
--- a/nixos/modules/tasks/network-interfaces-scripted.nix
+++ b/nixos/modules/tasks/network-interfaces-scripted.nix
@@ -157,6 +157,7 @@ in
             requires = [ "dev-net-tun.device" ];
             after = [ "dev-net-tun.device" ];
             wantedBy = [ "network.target" (subsystemDevice i.name) ];
+            before = [ "network-interfaces.target" (subsystemDevice i.name) ];
             path = [ pkgs.iproute ];
             serviceConfig = {
               Type = "oneshot";
@@ -180,6 +181,7 @@ in
             wantedBy = [ "network.target" (subsystemDevice n) ];
             bindsTo = deps;
             after = deps;
+            before = [ "network-interfaces.target" (subsystemDevice n) ];
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
             path = [ pkgs.iproute ];
@@ -212,8 +214,8 @@ in
           { description = "Bond Interface ${n}";
             wantedBy = [ "network.target" (subsystemDevice n) ];
             bindsTo = deps;
-            after = deps;
-            before = [ "${n}-cfg.service" ];
+            after = deps ++ concatMap (i: [ "network-addresses-${i}.service" "network-link-${i}.service" ]) v.interfaces;
+            before = [ "network-interfaces.target" (subsystemDevice n) ];
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
             path = [ pkgs.iproute pkgs.gawk ];
@@ -248,7 +250,8 @@ in
           { description = "Vlan Interface ${n}";
             wantedBy = [ "network.target" (subsystemDevice n) ];
             bindsTo = deps;
-            after = deps;
+            after = deps ++ concatMap (i: [ "network-addresses-${i}.service" "network-link-${i}.service" ]) v.interfaces;
+            before = [ "network-interfaces.target" (subsystemDevice n) ];
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
             path = [ pkgs.iproute ];
@@ -272,6 +275,7 @@ in
             wantedBy = [ "network.target" (subsystemDevice n) ];
             bindsTo = deps;
             after = deps;
+            before = [ "network-interfaces.target" (subsystemDevice n) ];
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
             path = [ pkgs.iproute ];
@@ -298,6 +302,7 @@ in
             wantedBy = [ "network.target" (subsystemDevice n) ];
             bindsTo = deps;
             after = deps;
+            before = [ "network-interfaces.target" (subsystemDevice n) ];
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
             path = [ pkgs.iproute ];