From c09c0542311b5f31dc22364192565721d33c6db8 Mon Sep 17 00:00:00 2001 From: Ricardo Ardissone Date: Sun, 3 May 2020 22:38:43 -0300 Subject: [PATCH] nixos/hostapd: add countryCode option --- nixos/modules/services/networking/hostapd.nix | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/networking/hostapd.nix b/nixos/modules/services/networking/hostapd.nix index fc6e4c77a9a..f2434be2462 100644 --- a/nixos/modules/services/networking/hostapd.nix +++ b/nixos/modules/services/networking/hostapd.nix @@ -20,6 +20,7 @@ let ssid=${cfg.ssid} hw_mode=${cfg.hwMode} channel=${toString cfg.channel} + ${optionalString (cfg.countryCode != null) ''country_code=${cfg.countryCode}''} # logging (debug level) logger_syslog=-1 @@ -144,6 +145,19 @@ in ''; }; + countryCode = mkOption { + default = null; + example = "US"; + type = with types; nullOr str; + description = '' + Country code (ISO/IEC 3166-1). Used to set regulatory domain. + Set as needed to indicate country in which device is operating. + This can limit available channels and transmit power. + These two octets are used as the first two octets of the Country String + (dot11CountryString) + ''; + }; + extraConfig = mkOption { default = ""; example = '' @@ -164,7 +178,7 @@ in environment.systemPackages = [ pkgs.hostapd ]; - services.udev.packages = [ pkgs.crda ]; + services.udev.packages = optional (cfg.countryCode != null) [ pkgs.crda ]; systemd.services.hostapd = { description = "hostapd wireless AP";