diff options
| author | quentin@aristote.fr <quentin@aristote.fr> | 2023-07-28 12:49:23 +0200 |
|---|---|---|
| committer | quentin@aristote.fr <quentin@aristote.fr> | 2023-07-28 12:55:52 +0200 |
| commit | d7572d923ba7e119c27193cbe1a057cc556d04d3 (patch) | |
| tree | c56eb508883ef015c47c91b27bd0a3b6bfb96963 /config/networking/services | |
| parent | 17d229f3ed3de70e4de74ff6e1a0b9b5b4c58873 (diff) | |
networking: add dependencies on netdev services
Diffstat (limited to 'config/networking/services')
| -rw-r--r-- | config/networking/services/ap.nix | 27 | ||||
| -rw-r--r-- | config/networking/services/dhcp.nix | 10 | ||||
| -rw-r--r-- | config/networking/services/igmpproxy.nix | 7 |
3 files changed, 22 insertions, 22 deletions
diff --git a/config/networking/services/ap.nix b/config/networking/services/ap.nix index 9976fc6..2324c41 100644 --- a/config/networking/services/ap.nix +++ b/config/networking/services/ap.nix @@ -2,6 +2,7 @@ let cfg = config.services.hostapd; + nets = config.personal.networking.networks; makeHostapdConf = { name, device, interface, driver ? cfg.driver, ssid , hwMode ? cfg.hwMode, channel ? cfg.channel, countryCode ? cfg.countryCode , passphrase ? secrets.wifi."${name}".passphrase, logLevel ? cfg.logLevel @@ -83,7 +84,7 @@ let '' + extraConfig); hostapdIotConf = makeHostapdConf { name = "iot"; - inherit (config.personal.networking.networks.iot) device interface; + inherit (nets.iot) device interface; ssid = "Quentinternet of Things"; hwMode = "g"; channel = 0; @@ -96,7 +97,7 @@ let }; hostapdWanConf = makeHostapdConf { name = "wan"; - inherit (config.personal.networking.networks.wan) device interface; + inherit (nets.wan) device interface; ssid = "Quentintranet"; hwMode = "a"; channel = 36; @@ -123,20 +124,18 @@ in { }; systemd.services.hostapd = let - devices = with config.personal.networking.networks; [ - wan.device - iot.device - ]; - netDevices = builtins.map (device: - "sys-subsystem-net-devices-${utils.escapeSystemdPath device}.device") - devices; - networkLinkServices = - builtins.map (device: "network-link-${device}.service") devices; + subnets = with nets; [ wan iot ]; + netDevices = builtins.map (subnet: + "sys-subsystem-net-devices-${ + utils.escapeSystemdPath subnet.device + }.device") subnets; + netdevServices = + builtins.map (subnet: "${subnet.interface}-netdev.service") subnets; + dependencies = lib.mkForce (netDevices ++ netdevServices); in { serviceConfig.ExecStart = lib.mkForce "${pkgs.hostapd}/bin/hostapd ${hostapdIotConf} ${hostapdWanConf}"; - after = lib.mkForce netDevices; - bindsTo = lib.mkForce netDevices; - requiredBy = lib.mkForce networkLinkServices; + after = dependencies; + bindsTo = dependencies; }; } diff --git a/config/networking/services/dhcp.nix b/config/networking/services/dhcp.nix index 1958f28..c50129c 100644 --- a/config/networking/services/dhcp.nix +++ b/config/networking/services/dhcp.nix @@ -1,6 +1,9 @@ { config, ... }: -let nets = config.personal.networking.networks; +let + nets = config.personal.networking.networks; + netdevServices = builtins.map (subnet: "${subnet.interface}-netdev.service") + (with nets; [ wan iot ]); in { services.kea.dhcp4 = { enable = true; @@ -45,7 +48,6 @@ in { }; }; - systemd.services.kea-dhcp4-server.after = - builtins.map (subnet: "${subnet.interface}-netdev.service") - (with nets; [ wan iot ]); + systemd.services.kea-dhcp4-server.after = netdevServices; + systemd.services.kea-dhcp4-server.bindsTo = netdevServices; } diff --git a/config/networking/services/igmpproxy.nix b/config/networking/services/igmpproxy.nix index 6bfb43b..b7a25da 100644 --- a/config/networking/services/igmpproxy.nix +++ b/config/networking/services/igmpproxy.nix @@ -2,8 +2,7 @@ let nets = config.personal.networking.networks; - nets-dependencies = - builtins.map (subnet: "${subnet.interface}-netdev.service") + netdevServices = builtins.map (subnet: "${subnet.interface}-netdev.service") (with nets; [ wan iot ]); conf = pkgs.writeText "igmpproxy.conf" '' phyint ${nets.wan.interface} upstream @@ -14,8 +13,8 @@ in { systemd.services.igmpproxy = { description = "Multicast router utilizing IGMP forwarding"; wantedBy = [ "multi-user.target" ]; - after = [ "network.target" ] ++ nets-dependencies; - requires = nets-dependencies; + after = [ "kea-dhcp4-server.service" ] ++ netdevServices; + bindsTo = netdevServices; path = [ pkgs.igmpproxy ]; script = "igmpproxy -v -n ${conf}"; }; |
