From 4dfb2e31d2a21158d2f07486f269cf468082607b Mon Sep 17 00:00:00 2001 From: "quentin@aristote.fr" Date: Sat, 1 Apr 2023 15:08:14 +0200 Subject: networking: modularize --- config/networking/hostapd.nix | 138 ------------------------------------------ 1 file changed, 138 deletions(-) delete mode 100644 config/networking/hostapd.nix (limited to 'config/networking/hostapd.nix') diff --git a/config/networking/hostapd.nix b/config/networking/hostapd.nix deleted file mode 100644 index f5f399b..0000000 --- a/config/networking/hostapd.nix +++ /dev/null @@ -1,138 +0,0 @@ -{ config, lib, utils, pkgs, secrets, ... }: - -let - cfg = config.services.hostapd; - makeHostapdConf = { name, interface ? cfg.interface, driver ? cfg.driver, ssid - , hwMode ? cfg.hwMode, channel ? cfg.channel, countryCode ? cfg.countryCode - , passphrase ? secrets.wifi."${name}".passphrase, logLevel ? cfg.logLevel - , extraConfig ? "" }: - builtins.toFile "hostapd.${name}.conf" ('' - interface=${interface} - driver=${driver} - - # IEEE 802.11 - ssid=${ssid} - hw_mode=${hwMode} - channel=${toString channel} - max_num_sta=128 - auth_algs=1 - disassoc_low_ack=1 - - # DFS - ieee80211h=1 - ieee80211d=1 - country_code=${countryCode} - - - # WPA/IEEE 802.11i - wpa=2 - wpa_key_mgmt=WPA-PSK - wpa_passphrase=${passphrase} - wpa_pairwise=CCMP - - # hostapd event logger configuration - logger_syslog=-1 - logger_syslog_level=${toString logLevel} - logger_stdout=-1 - logger_stdout_level=${toString logLevel} - - # WMM - wmm_enabled=1 - uapsd_advertisement_enabled=1 - wmm_ac_bk_cwmin=4 - wmm_ac_bk_cwmax=10 - wmm_ac_bk_aifs=7 - wmm_ac_bk_txop_limit=0 - wmm_ac_bk_acm=0 - wmm_ac_be_aifs=3 - wmm_ac_be_cwmin=4 - wmm_ac_be_cwmax=10 - wmm_ac_be_txop_limit=0 - wmm_ac_be_acm=0 - wmm_ac_vi_aifs=2 - wmm_ac_vi_cwmin=3 - wmm_ac_vi_cwmax=4 - wmm_ac_vi_txop_limit=94 - wmm_ac_vi_acm=0 - wmm_ac_vo_aifs=2 - wmm_ac_vo_cwmin=2 - wmm_ac_vo_cwmax=3 - wmm_ac_vo_txop_limit=47 - wmm_ac_vo_acm=0 - - # TX queue parameters - tx_queue_data3_aifs=7 - tx_queue_data3_cwmin=15 - tx_queue_data3_cwmax=1023 - tx_queue_data3_burst=0 - tx_queue_data2_aifs=3 - tx_queue_data2_cwmin=15 - tx_queue_data2_cwmax=63 - tx_queue_data2_burst=0 - tx_queue_data1_aifs=1 - tx_queue_data1_cwmin=7 - tx_queue_data1_cwmax=15 - tx_queue_data1_burst=3.0 - tx_queue_data0_aifs=1 - tx_queue_data0_cwmin=3 - tx_queue_data0_cwmax=7 - tx_queue_data0_burst=1.5 - '' + extraConfig); - hostapd2ghzConf = makeHostapdConf { - name = "2ghz"; - interface = config.personal.networking.interfaces.wlp2ghz; - ssid = "Quentinternet of Things"; - hwMode = "g"; - channel = 0; - extraConfig = '' - # IEEE 802.11n - ieee80211n=1 - require_ht=1 - ht_capab=[HT40+][SHORT-GI-40][TX-STBC][RX-STBC1][DSSS_CCK-40] - ''; - }; - hostapd5ghzConf = makeHostapdConf { - name = "5ghz"; - interface = config.personal.networking.interfaces.wlp5ghz; - ssid = "Quentintranet"; - hwMode = "a"; - channel = 36; - extraConfig = '' - # IEEE 802.11n - ieee80211n=1 - require_ht=1 - ht_capab=[HT40+][LDPC][SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1][DSSS_CCK-40] - - # IEEE 802.11ac - require_vht=1 - ieee80211ac=1 - vht_oper_chwidth=1 - vht_oper_centr_freq_seg0_idx=42 - vht_capab=[MAX-MPDU-11454][RXLDPC][SHORT-GI-80][TX-STBC-2BY1][RX-STBC-1][MAX-A-MPDU-LEN-EXP7][RX-ANTENNA-PATTERN][TX-ANTENNA-PATTERN] - ''; - }; -in { - services.hostapd = { - enable = true; - driver = "nl80211"; - countryCode = "FR"; - }; - - systemd.services.hostapd = let - interfaces = with config.personal.networking.interfaces; [ - wlp2ghz - wlp5ghz - ]; - netDevices = builtins.map (interface: - "sys-subsystem-net-devices-${utils.escapeSystemdPath interface}.device") - interfaces; - networkLinkServices = - builtins.map (interface: "network-link-${interface}.service") interfaces; - in { - serviceConfig.ExecStart = lib.mkForce - "${pkgs.hostapd}/bin/hostapd ${hostapd2ghzConf} ${hostapd5ghzConf}"; - after = lib.mkForce netDevices; - bindsTo = lib.mkForce netDevices; - requiredBy = lib.mkForce networkLinkServices; - }; -} -- cgit v1.2.3