qcacmn: Allow 6Ghz if any 6Ghz AKM is supported

Currently, Userspace can send multiple AKMs in connect req.
For 6GHz, some AKMs are not supported. Suppose in multiple
AKMs, any AKM doesn't support 6GHz then driver returns failure.
Due to this, DUT doesn't not able to connect to 6Ghz.

Fix is, allow 6Ghz if any 6Ghz AKM is supported.

Also adds necessary prints in scan filter API to help
debug the candidate rejection.

Change-Id: Id9967af5ec7f64e95b33dd8be3bd6c9649e72bb2
CRs-Fixed: 3158489
This commit is contained in:
Deeksha Gupta
2022-03-24 15:58:37 +05:30
committed by Madan Koyyalamudi
parent 9e0ab8e096
commit e8e16bec58
2 changed files with 79 additions and 40 deletions

View File

@@ -2110,8 +2110,10 @@ bool wlan_cm_6ghz_allowed_for_akm(struct wlan_objmgr_psoc *psoc,
if (!config->check_6ghz_security) {
if (!config->key_mgmt_mask_6ghz)
return true;
/* Check if AKM is allowed as per user 6Ghz allowed AKM mask */
if ((config->key_mgmt_mask_6ghz & key_mgmt) != key_mgmt) {
/*
* Check if any AKM is allowed as per user 6Ghz allowed AKM mask
*/
if (!(config->key_mgmt_mask_6ghz & key_mgmt)) {
mlme_debug("user configured mask %x didnt match AKM %x",
config->key_mgmt_mask_6ghz , key_mgmt);
return false;
@@ -2120,9 +2122,12 @@ bool wlan_cm_6ghz_allowed_for_akm(struct wlan_objmgr_psoc *psoc,
return true;
}
/* Check if the AKM is allowed as per the 6Ghz allowed AKM mask */
if ((key_mgmt & ALLOWED_KEYMGMT_6G_MASK) != key_mgmt)
/* Check if any AKM is allowed as per the 6Ghz allowed AKM mask */
if (!(key_mgmt & ALLOWED_KEYMGMT_6G_MASK)) {
mlme_debug("AKM 0x%x didn't match with allowed 6ghz AKM 0x%x",
key_mgmt, ALLOWED_KEYMGMT_6G_MASK);
return false;
}
/* if check_6ghz_security is set validate all checks for 6Ghz */
if (!(rsn_caps & WLAN_CRYPTO_RSN_CAP_MFP_ENABLED)) {