summaryrefslogtreecommitdiff
path: root/config/networking/bridges.nix
diff options
context:
space:
mode:
authorquentin@aristote.fr <quentin@aristote.fr>2024-09-29 19:56:08 +0200
committerquentin@aristote.fr <quentin@aristote.fr>2024-10-27 19:08:46 +0100
commit491c4bf6b4596b486b12724e9124a854cc7abc26 (patch)
tree3911453e589959da652a1d5f62e5966b05f1643e /config/networking/bridges.nix
parent072ad00164e98823691e7da1cdd07ac368391c38 (diff)
migrate hostapd config
Diffstat (limited to 'config/networking/bridges.nix')
-rw-r--r--config/networking/bridges.nix47
1 files changed, 24 insertions, 23 deletions
diff --git a/config/networking/bridges.nix b/config/networking/bridges.nix
index e423e03..eecd34e 100644
--- a/config/networking/bridges.nix
+++ b/config/networking/bridges.nix
@@ -4,29 +4,30 @@
pkgs,
...
}: let
- nets = config.personal.networking.networks;
+ bridges = config.personal.networking.interfaces.bridges;
in {
- config = lib.mkMerge ([
- {
- systemd.services.hostapd.postStart = lib.mkForce (lib.mkBefore ''
- sleep 3
- '');
- }
- ]
- ++ (builtins.map (network: let
- bridge = network.interface;
- device = network.device;
- in {
- networking.bridges."${bridge}".interfaces = [];
+ config = {
+ networking.bridges = lib.mapAttrs (_: _: {interfaces = [];}) bridges;
+ systemd.services = lib.mkMerge ([
+ {
+ hostapd.postStart = lib.mkBefore ''
+ sleep 10
+ '';
+ }
+ ]
+ ++ (lib.mapAttrsToList (bridge: {interfaces, ...}: {
+ "${bridge}-netdev".script = ''
+ echo Setting forward delay to 0 for ${bridge}...
+ ip link set ${bridge} type bridge forward_delay 0
+ '';
- systemd.services."${bridge}-netdev".script = ''
- echo Setting forward delay to 0 for ${bridge}...
- ip link set ${bridge} type bridge forward_delay 0
- '';
-
- systemd.services.hostapd.postStart = lib.mkForce ''
- echo Setting ${device} to hairpin mode...
- ${pkgs.iproute2}/bin/bridge link set dev ${device} hairpin on
- '';
- }) [nets.wan nets.iot]));
+ hostapd.postStart =
+ lib.concatMapStringsSep "\n" (interface: ''
+ echo Setting ${interface} to hairpin mode...
+ ${pkgs.iproute2}/bin/bridge link set dev ${interface} hairpin on
+ '')
+ interfaces;
+ })
+ bridges));
+ };
}