fix driver get Association fail with FT-SAE

WLAN_AKM_SUITE_FT_OVER_SAE(0x000FAC09) is not processed in
rtw_cfg80211_set_key_mgt, which makes rtw_ft_validate_akm_type not set
RTW_FT_PEER_EN to ft_flags, and thus MDIE is not built in
rtw_ft_build_assoc_req_ies

Fix:
- Add WLAN_AKM_SUITE_FT_OVER_SAE into rtw_cfg80211_set_key_mgt check condition
- Add 9 into rtw_ft_valid_akm check condition
- Update driver version number to 277-9-6

Bug 5580277

Change-Id: I7cc987a9141dc65577dc20e804e92def10e9412e
Signed-off-by: Shaofu <shaofu@realtek.com>
Signed-off-by: Narayana Reddy P <narayanr@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3485741
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
Reviewed-by: Shobek Attupurath <sattupurath@nvidia.com>
This commit is contained in:
Shaofu
2025-11-07 17:24:38 +00:00
committed by mobile promotions
parent 422ec5c90a
commit e7201ee607
4 changed files with 23 additions and 7 deletions

View File

@@ -96,7 +96,7 @@ enum rtw_ft_capability {
#define rtw_ft_valid_akm(a, t) \ #define rtw_ft_valid_akm(a, t) \
((rtw_ft_chk_flags(a, RTW_FT_EN)) && \ ((rtw_ft_chk_flags(a, RTW_FT_EN)) && \
(((t) == 3) || ((t) == 4))) (((t) == 3) || ((t) == 4) || ((t) == 9)))
/* allow OTD while driver disconnect with current AP */ /* allow OTD while driver disconnect with current AP */
#define rtw_ft_otd_roam_en(a) \ #define rtw_ft_otd_roam_en(a) \

View File

@@ -1 +1 @@
#define DRIVERVERSION "v1.19.16_nv-277-9-5-gffa42c96d.20251029_Certified_Module" #define DRIVERVERSION "v1.19.16_nv-277-9-6-ga45134aae.20251107_Certified_Module"

View File

@@ -81,7 +81,9 @@
#if (LINUX_VERSION_CODE <= KERNEL_VERSION(4, 11, 12)) #if (LINUX_VERSION_CODE <= KERNEL_VERSION(4, 11, 12))
#ifdef CONFIG_RTW_80211R #ifdef CONFIG_RTW_80211R
#define WLAN_AKM_SUITE_FT_8021X 0x000FAC03 #define WLAN_AKM_SUITE_FT_8021X 0x000FAC03
#define WLAN_AKM_SUITE_FT_PSK 0x000FAC04 #define WLAN_AKM_SUITE_FT_PSK 0x000FAC04
#define WLAN_AKM_SUITE_FT_OVER_SAE 0x000FAC09
#define WLAN_AKM_SUITE_FT_FILS_SHA256 0x000FAC16
#endif #endif
#endif #endif
@@ -3865,6 +3867,12 @@ static int rtw_cfg80211_set_key_mgt(struct security_priv *psecuritypriv, u32 key
} else if (key_mgt == WLAN_AKM_SUITE_FT_PSK) { } else if (key_mgt == WLAN_AKM_SUITE_FT_PSK) {
psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_8021X; psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_8021X;
psecuritypriv->rsn_akm_suite_type = 4; psecuritypriv->rsn_akm_suite_type = 4;
} else if ((key_mgt == WLAN_AKM_SUITE_FT_OVER_SAE)
|| (key_mgt == WLAN_AKM_SUITE_FT_FILS_SHA256)
) {
RTW_INFO("FT-SAE key mgt: 0x%x\n", key_mgt);
if (key_mgt == WLAN_AKM_SUITE_FT_OVER_SAE)
psecuritypriv->rsn_akm_suite_type = 9;
} }
#endif #endif
else { else {
@@ -4301,6 +4309,9 @@ static bool rtw_check_connect_sae_compat(struct cfg80211_connect_params *sme)
struct rtw_ieee802_11_elems elems; struct rtw_ieee802_11_elems elems;
struct rsne_info info; struct rsne_info info;
u8 AKM_SUITE_SAE[] = {0x00, 0x0f, 0xac, 8}; u8 AKM_SUITE_SAE[] = {0x00, 0x0f, 0xac, 8};
#ifdef CONFIG_RTW_80211R
u8 AKM_SUITE_FTSAE[] = { 0x00, 0x0f, 0xac, 9 };
#endif
int i; int i;
if (sme->auth_type != (int)MLME_AUTHTYPE_SHARED_KEY) if (sme->auth_type != (int)MLME_AUTHTYPE_SHARED_KEY)
@@ -4316,9 +4327,14 @@ static bool rtw_check_connect_sae_compat(struct cfg80211_connect_params *sme)
if (rtw_rsne_info_parse(elems.rsn_ie - 2, elems.rsn_ie_len + 2, &info) == _FAIL) if (rtw_rsne_info_parse(elems.rsn_ie - 2, elems.rsn_ie_len + 2, &info) == _FAIL)
return false; return false;
for (i = 0; i < info.akm_cnt; i++) for (i = 0; i < info.akm_cnt; i++) {
if (_rtw_memcmp(info.akm_list + i * RSN_SELECTOR_LEN, if ((_rtw_memcmp(info.akm_list + i * RSN_SELECTOR_LEN,
AKM_SUITE_SAE, RSN_SELECTOR_LEN) == _TRUE) AKM_SUITE_SAE, RSN_SELECTOR_LEN) == _TRUE)
#ifdef CONFIG_RTW_80211R
|| (_rtw_memcmp(info.akm_list + i * RSN_SELECTOR_LEN,
AKM_SUITE_FTSAE, RSN_SELECTOR_LEN) == 0)
#endif
)
return true; return true;
return false; return false;

View File

@@ -26,14 +26,14 @@
#define __PHL_GIT_INFO_H__ #define __PHL_GIT_INFO_H__
/*@--------------------------[Define] ---------------------------------------*/ /*@--------------------------[Define] ---------------------------------------*/
#define RTK_CORE_SHA1 "ffa42c96d0976a0c1acca4323d8c2d20b490ecc3" #define RTK_CORE_SHA1 "a45134aae5536af874f77cd8f1d7ef514b0cf2d3"
#define RTK_PHL_SHA1 "6048a181360ad851e05d6eacb227ace5b0adc5b2" #define RTK_PHL_SHA1 "6048a181360ad851e05d6eacb227ace5b0adc5b2"
#define RTK_HALMAC_SHA1 "a8003e258e7ceec767c2e329732e7e3b63934473" #define RTK_HALMAC_SHA1 "a8003e258e7ceec767c2e329732e7e3b63934473"
#define RTK_HALBB_SHA1 "92a03ddae85d8138c9705a9552dee1b9e31c0c64" #define RTK_HALBB_SHA1 "92a03ddae85d8138c9705a9552dee1b9e31c0c64"
#define RTK_HALRF_SHA1 "bb8bf83e65f756e2ae3ccd9ec0dc41ee50948b2b" #define RTK_HALRF_SHA1 "bb8bf83e65f756e2ae3ccd9ec0dc41ee50948b2b"
#define RTK_BTC_SHA1 "33bcdb9f10f24aa8b92ee86a7076f89faf6ccbed" #define RTK_BTC_SHA1 "33bcdb9f10f24aa8b92ee86a7076f89faf6ccbed"
#define RTK_CORE_TAGINFO "v1.19.16_nv-277-9-5-gffa42c96d" #define RTK_CORE_TAGINFO "v1.19.16_nv-277-9-6-ga45134aae"
#define RTK_PHL_TAGINFO "PHL_1_19_111_0100-109-g6048a1813" #define RTK_PHL_TAGINFO "PHL_1_19_111_0100-109-g6048a1813"
#define RTK_HALMAC_TAGINFO "HALMAC_0_29_95_0-1-ga8003e258e" #define RTK_HALMAC_TAGINFO "HALMAC_0_29_95_0-1-ga8003e258e"
#define RTK_HALBB_TAGINFO "HALBB_029_167_15-8-g92a03ddae" #define RTK_HALBB_TAGINFO "HALBB_029_167_15-8-g92a03ddae"