wifi: detect FT support per interface and avoid enabling it

System Internals / NetworkManager - Thomas Haller [redhat.com] - 20 August 2019 14:28 EDT

Previously we only cared whether supplicant is build with support for FT. In that case we would pass FT-PSK to supplicant, like

Config: added 'key_mgmt' value 'WPA-PSK WPA-PSK-SHA256 FT-PSK'

Supplicant would then always try FT with preference, regardless whether the interface/driver support it. That results in a failure to associate, if the driver does not support it.

NetworkManager[1356]: [1566296144.9940] Config: added 'key_mgmt' value 'WPA-PSK WPA-PSK-SHA256 FT-PSK'

wpa_supplicant[1348]: wlan0: WPA: AP key_mgmt 0x42 network profile key_mgmt 0x142; available key_mgmt 0x42 wpa_supplicant[1348]: wlan0: WPA: using KEY_MGMT FT/PSK

wpa_supplicant[1348]: * akm=0xfac04

kernel: ERROR @wl_set_key_mgmt : kernel: invalid cipher group (1027076)

Since we pass a list of acceptable "key_mgmt" options to supplicant, FT-PSK should not be used when supplicant knows it's not supported. That is a supplicant bug.

Regardless, work around it by checking the per-interface capability, and avoid it if support is apparently not present.

2f8a4e90f wifi: detect FT support per interface and avoid enabling it
src/supplicant/nm-supplicant-interface.c | 35 ++++++++++++++++++++++++--------
1 file changed, 26 insertions(+), 9 deletions(-)

Upstream: cgit.freedesktop.org


  • Share