pkgs/openwrt/uci-config: configure a static ieee80211rKey so that fast transition works with WPA3

This commit is contained in:
Astro 2023-11-02 00:27:08 +01:00
parent fa5ef40657
commit ccd904f700
4 changed files with 106 additions and 93 deletions

View File

@ -1,77 +1,78 @@
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
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
5A== SaxDcm5pZyPnObHgCoEvdQuocWeGR5yagYD44UVz5uJfEPTC5PRLiy394d9w6xOZ
=J2bZ vBRWFPKRG6oYInxitDUJZtdu2/+iiQ1Y36JtegqW
=lSzz
-----END PGP MESSAGE----- -----END PGP MESSAGE-----

View File

@ -2,6 +2,8 @@
{ {
site.net = { site.net = {
core.ospf.secret = "encrypted"; core.ospf.secret = "encrypted";
pub.wifi.ieee80211rKey = "2dc40abba46da9490ea0e00f93f18ce5";
c3d2.wifi.ieee80211rKey = "d1b1fa2461efc0df9e2d96579607b7f6";
}; };
site.hosts = { site.hosts = {

View File

@ -194,6 +194,13 @@ let
type = with types; nullOr int; type = with types; nullOr int;
default = null; default = null;
}; };
wifi.ieee80211rKey = mkOption {
type = with types; nullOr str;
default = null;
description = ''
Key between WiFi access points for Fast Transition
'';
};
}; };
}; };

View File

@ -311,27 +311,30 @@ in
${lib.optionalString (!ssidConfig.disassocLowAck) '' ${lib.optionalString (!ssidConfig.disassocLowAck) ''
uci set wireless.@wifi-iface[-1].disassoc_low_ack='0' uci set wireless.@wifi-iface[-1].disassoc_low_ack='0'
''} ''}
${lib.optionalString (netConfig.wifi.ieee80211rKey != null) ''
# for usteerd # for usteerd
uci set wireless.@wifi-iface[-1].bss_transition=1 uci set wireless.@wifi-iface[-1].bss_transition=1
uci set wireless.@wifi-iface[-1].wnm_sleep_mode=1 uci set wireless.@wifi-iface[-1].wnm_sleep_mode=1
uci set wireless.@wifi-iface[-1].time_advertisement=2 uci set wireless.@wifi-iface[-1].time_advertisement=2
uci set wireless.@wifi-iface[-1].time_zone='GMT0' uci set wireless.@wifi-iface[-1].time_zone=GMT0
uci set wireless.@wifi-iface[-1].ieee80211k=1 uci set wireless.@wifi-iface[-1].ieee80211k=1
uci set wireless.@wifi-iface[-1].rrm_neighbor_report=1 uci set wireless.@wifi-iface[-1].rrm_neighbor_report=1
uci set wireless.@wifi-iface[-1].rrm_beacon_report=1 uci set wireless.@wifi-iface[-1].rrm_beacon_report=1
uci set wireless.@wifi-iface[-1].ieee80211r=1 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_over_ds=1
uci set wireless.@wifi-iface[-1].ft_psk_generate_local=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} uci set wireless.@wifi-iface[-1].ft_bridge=${mgmtInterface}
uci set wireless.@wifi-iface[-1].ft_psk_generate_local=0
uci set wireless.@wifi-iface[-1].nasid=${pad 12 "0" (
toString ((lib.toInt (lib.removePrefix "ap" hostName)) * 65536 + index)
)}
uci set wireless.@wifi-iface[-1].mobility_domain=${
pad 4 "0" (lib.toHexString (49920 + netConfig.vlan))
}
uci set wireless.@wifi-iface[-1].r0kh=ff:ff:ff:ff:ff:ff,\*,${netConfig.wifi.ieee80211rKey}
uci set wireless.@wifi-iface[-1].r1kh=00:00:00:00:00:00,00:00:00:00:00:00,${netConfig.wifi.ieee80211rKey}
uci set wireless.@wifi-iface[-1].pmk_r1_push=1
''}
'' ''
) (builtins.attrNames radioConfig.ssids)} ) (builtins.attrNames radioConfig.ssids)}
'') (builtins.attrNames hostConfig.wifi))} '') (builtins.attrNames hostConfig.wifi))}