mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2025-01-03 10:32:33 +01:00
station: enforce MFPR=1 for 6GHz frequencies
This adds checks if MFP is set to 0 or 1: 0 - Always fail if the frequency is 6GHz 1 - Fail if MFPC=0 and the frequency is 6GHz. If HW is capable set MFPR=1 for 6GHz
This commit is contained in:
parent
2f50038363
commit
c20828f252
@ -1012,9 +1012,13 @@ static int station_build_handshake_rsn(struct handshake_state *hs,
|
|||||||
struct ie_rsn_info info;
|
struct ie_rsn_info info;
|
||||||
uint8_t *ap_ie;
|
uint8_t *ap_ie;
|
||||||
bool disable_ocv;
|
bool disable_ocv;
|
||||||
|
enum band_freq band;
|
||||||
|
|
||||||
memset(&info, 0, sizeof(info));
|
memset(&info, 0, sizeof(info));
|
||||||
|
|
||||||
|
if (!band_freq_to_channel(bss->frequency, &band))
|
||||||
|
goto not_supported;
|
||||||
|
|
||||||
memset(&bss_info, 0, sizeof(bss_info));
|
memset(&bss_info, 0, sizeof(bss_info));
|
||||||
scan_bss_get_rsn_info(bss, &bss_info);
|
scan_bss_get_rsn_info(bss, &bss_info);
|
||||||
|
|
||||||
@ -1061,12 +1065,31 @@ static int station_build_handshake_rsn(struct handshake_state *hs,
|
|||||||
|
|
||||||
switch (mfp_setting) {
|
switch (mfp_setting) {
|
||||||
case 0:
|
case 0:
|
||||||
break;
|
if (band != BAND_FREQ_6_GHZ)
|
||||||
|
break;
|
||||||
|
|
||||||
|
l_error("MFP turned off by [General].ManagementFrameProtection,"
|
||||||
|
" 6GHz frequencies are disabled");
|
||||||
|
goto not_supported;
|
||||||
case 1:
|
case 1:
|
||||||
info.group_management_cipher =
|
info.group_management_cipher =
|
||||||
wiphy_select_cipher(wiphy,
|
wiphy_select_cipher(wiphy,
|
||||||
bss_info.group_management_cipher);
|
bss_info.group_management_cipher);
|
||||||
info.mfpc = info.group_management_cipher != 0;
|
info.mfpc = info.group_management_cipher != 0;
|
||||||
|
|
||||||
|
if (band != BAND_FREQ_6_GHZ)
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (!info.mfpc)
|
||||||
|
goto not_supported;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 802.11ax Section 12.12.2
|
||||||
|
* The STA shall use management frame protection
|
||||||
|
* (MFPR=1) when using RSN.
|
||||||
|
*/
|
||||||
|
info.mfpr = true;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
info.group_management_cipher =
|
info.group_management_cipher =
|
||||||
|
Loading…
Reference in New Issue
Block a user