diff options
| author | Srinivas Girigowda <sgirigow@qca.qualcomm.com> | 2014-05-13 18:00:52 -0700 |
|---|---|---|
| committer | Pitani Venkata Rajesh Kumar <c_vpitan@qti.qualcomm.com> | 2014-05-15 16:19:44 +0530 |
| commit | bf0d8f714cd7747a12026401c65e5d81d2adb0f4 (patch) | |
| tree | c35d3974c26302d189a36e4e39c13891cdcd5d15 | |
| parent | d73c6575010b9d2c2625e8bf09afe9019a76d821 (diff) | |
wlan: Don't add PMKSA-IDs to RSN IE for CCKM AKM
csrConstructRSNIe() would always add the PMKSA-IDs to the RSN IE.
While this is helpful for non-CCX (and non-FT) associations, as a way of
eliminating the 802.1X exchange, it is not required for CCX associations
using CCKM as the AKM. Because CCKM will avoid both 802.1X and 802.11i
security exchanges. Also, with the "CCX UPLOAD" it was causing the
supplicants version of the RSN IE and the Host Driver version of the RSN
IE to not match. Which lead to issues during re-assoc. Leaving out the
PMKSA-IDs fixes those issues.
Change-Id: I705dfffcc2f0a859aaaee79918fa523a0e49145d
CRs-Fixed: 663810
| -rw-r--r-- | CORE/SME/src/csr/csrUtil.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/CORE/SME/src/csr/csrUtil.c b/CORE/SME/src/csr/csrUtil.c index 78a9d4440409..600a2dea4d43 100644 --- a/CORE/SME/src/csr/csrUtil.c +++ b/CORE/SME/src/csr/csrUtil.c @@ -3950,6 +3950,7 @@ tANI_U8 csrConstructRSNIe( tHalHandle hHal, tANI_U32 sessionId, tCsrRoamProfile tANI_U8 *pGroupMgmtCipherSuite; #endif tDot11fBeaconIEs *pIesLocal = pIes; + eCsrAuthType negAuthType = eCSR_AUTH_TYPE_UNKNOWN; smsLog(pMac, LOGW, "%s called...", __func__); @@ -3965,7 +3966,7 @@ tANI_U8 csrConstructRSNIe( tHalHandle hHal, tANI_U32 sessionId, tCsrRoamProfile // See if the cyphers in the Bss description match with the settings in the profile. fRSNMatch = csrGetRSNInformation( hHal, &pProfile->AuthType, pProfile->negotiatedUCEncryptionType, &pProfile->mcEncryptionType, &pIesLocal->RSN, - UnicastCypher, MulticastCypher, AuthSuite, &RSNCapabilities, NULL, NULL ); + UnicastCypher, MulticastCypher, AuthSuite, &RSNCapabilities, &negAuthType, NULL ); if ( !fRSNMatch ) break; pRSNIe->IeHeader.ElementID = SIR_MAC_RSN_EID; @@ -3997,7 +3998,12 @@ tANI_U8 csrConstructRSNIe( tHalHandle hHal, tANI_U32 sessionId, tCsrRoamProfile pPMK = (tCsrRSNPMKIe *)( ((tANI_U8 *)(&pAuthSuite->AuthOui[ 1 ])) + sizeof(tANI_U16) ); - if( csrLookupPMKID( pMac, sessionId, pSirBssDesc->bssId, &(PMKId[0]) ) ) + // Don't include the PMK SA IDs for CCKM associations. + if ( +#ifdef FEATURE_WLAN_ESE + (eCSR_AUTH_TYPE_CCKM_RSN != negAuthType) && +#endif + csrLookupPMKID( pMac, sessionId, pSirBssDesc->bssId, &(PMKId[0]))) { pPMK->cPMKIDs = 1; |
