pkgs/openwrt/uci-config: properly set mobility_domain, nasid to fix fast transition

This commit is contained in:
Astro 2023-11-01 01:14:24 +01:00
parent 053b49b83f
commit 779cbe9795
1 changed files with 15 additions and 1 deletions

View File

@ -272,6 +272,7 @@ in
${concatMapStrings (ssid:
let
ssidConfig = radioConfig.ssids.${ssid};
netConfig = config.site.net.${ssidConfig.net};
# mapping our option to openwrt/hostapd setting
encryption = {
@ -286,6 +287,11 @@ in
then ssidConfig.ifname
else "${ifPrefix}-${ssidConfig.net}";
pad = len: prefix: s:
if builtins.stringLength s < len
then pad len prefix "${prefix}${s}"
else s;
in ''
uci add wireless wifi-iface
uci set wireless.@wifi-iface[-1].ifname=${ifname}
@ -316,7 +322,15 @@ in
uci set wireless.@wifi-iface[-1].ieee80211r=1
uci set wireless.@wifi-iface[-1].ft_over_ds=1
uci set wireless.@wifi-iface[-1].ft_psk_generate_local=1
uci set wireless.@wifi-iface[-1].ieee80211v=1
uci set wireless.@wifi-iface[-1].nasid='${pad 12 "0" (
toString ((lib.toInt (lib.removePrefix "ap" hostName)) * 65536 + index)
)}'
${lib.optionalString (netConfig.vlan != null) ''
uci set wireless.@wifi-iface[-1].mobility_domain='${
pad 4 "0" (lib.toHexString (49920 + netConfig.vlan))
}'
''}
uci set wireless.@wifi-iface[-1].bss_transition=1
uci set wireless.@wifi-iface[-1].ft_bridge=${mgmtInterface}
''
) (builtins.attrNames radioConfig.ssids)}