qcacld-3.0: Add FW support for AKM 24

Add FW support for AKM 24

Change-Id: I067c7f2a4eabe680fdd38e78cb5ffbd8ad306ad3
CRs-Fixed: 3301709
This commit is contained in:
Vijay Raj
2022-09-27 22:58:16 -07:00
committed by Madan Koyyalamudi
orang tua d607d5e5e8
melakukan f101354847
3 mengubah file dengan 19 tambahan dan 0 penghapusan

Melihat File

@@ -1769,6 +1769,7 @@ struct bss_load_trigger {
#define AKM_SAE 3 #define AKM_SAE 3
#define AKM_OWE 4 #define AKM_OWE 4
#define AKM_SUITEB 5 #define AKM_SUITEB 5
#define AKM_SAE_EXT 6
#define LFR3_STA_ROAM_DISABLE_BY_P2P BIT(0) #define LFR3_STA_ROAM_DISABLE_BY_P2P BIT(0)
#define LFR3_STA_ROAM_DISABLE_BY_NAN BIT(1) #define LFR3_STA_ROAM_DISABLE_BY_NAN BIT(1)

Melihat File

@@ -57,10 +57,15 @@
#define CM_IS_FW_SAE_ROAM_SUPPORTED(fw_akm_bitmap) \ #define CM_IS_FW_SAE_ROAM_SUPPORTED(fw_akm_bitmap) \
(((fw_akm_bitmap) & (1 << AKM_SAE)) ? true : false) (((fw_akm_bitmap) & (1 << AKM_SAE)) ? true : false)
#define CM_IS_FW_SAE_EXT_ROAM_SUPPORTED(fw_akm_bitmap) \
(((fw_akm_bitmap) & (1 << AKM_SAE_EXT)) ? true : false)
#else #else
#define CM_IS_FW_FT_SAE_SUPPORTED(fw_akm_bitmap) (false) #define CM_IS_FW_FT_SAE_SUPPORTED(fw_akm_bitmap) (false)
#define CM_IS_FW_SAE_ROAM_SUPPORTED(fw_akm_bitmap) (false) #define CM_IS_FW_SAE_ROAM_SUPPORTED(fw_akm_bitmap) (false)
#define CM_IS_FW_SAE_EXT_SUPPORTED(fw_akm_bitmap) (false)
#endif #endif
/** /**
@@ -1581,6 +1586,8 @@ static uint32_t cm_get_rsn_wmi_auth_type(int32_t akm)
return WMI_AUTH_RSNA_SUITE_B_8021X_SHA384; return WMI_AUTH_RSNA_SUITE_B_8021X_SHA384;
else if (QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_FT_IEEE8021X_SHA384)) else if (QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_FT_IEEE8021X_SHA384))
return WMI_AUTH_FT_RSNA_SUITE_B_8021X_SHA384; return WMI_AUTH_FT_RSNA_SUITE_B_8021X_SHA384;
else if (QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_SAE_EXT_KEY))
return WMI_AUTH_WPA3_SAE_SHA384;
else else
return WMI_AUTH_NONE; return WMI_AUTH_NONE;
} }
@@ -3480,6 +3487,12 @@ cm_akm_roam_allowed(struct wlan_objmgr_psoc *psoc,
return QDF_STATUS_E_NOSUPPORT; return QDF_STATUS_E_NOSUPPORT;
} }
if (QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_SAE_EXT_KEY) &&
!CM_IS_FW_SAE_EXT_ROAM_SUPPORTED(fw_akm_bitmap)) {
mlme_info("Roaming not supported for SAE EXT akm");
return QDF_STATUS_E_NOSUPPORT;
}
if ((QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_IEEE8021X_SUITE_B) || if ((QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_IEEE8021X_SUITE_B) ||
QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_IEEE8021X_SUITE_B_192)) && QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_IEEE8021X_SUITE_B_192)) &&
!(fw_akm_bitmap & (1 << AKM_SUITEB))) { !(fw_akm_bitmap & (1 << AKM_SUITEB))) {

Melihat File

@@ -6178,6 +6178,11 @@ static void wma_set_mlme_caps(struct wlan_objmgr_psoc *psoc)
if (tgt_cap) if (tgt_cap)
akm_bitmap |= (1 << AKM_SUITEB); akm_bitmap |= (1 << AKM_SUITEB);
tgt_cap = wmi_service_enabled(wma->wmi_handle,
wmi_service_wpa3_sha384_roam_support);
if (tgt_cap)
akm_bitmap |= (1 << AKM_SAE_EXT);
status = mlme_set_tgt_wpa3_roam_cap(psoc, akm_bitmap); status = mlme_set_tgt_wpa3_roam_cap(psoc, akm_bitmap);
if (QDF_IS_STATUS_ERROR(status)) if (QDF_IS_STATUS_ERROR(status))
wma_err("Failed to set sae roam support"); wma_err("Failed to set sae roam support");