summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSrinivas Girigowda <sgirigow@qca.qualcomm.com>2014-05-13 18:00:52 -0700
committerPitani Venkata Rajesh Kumar <c_vpitan@qti.qualcomm.com>2014-05-15 16:19:44 +0530
commitbf0d8f714cd7747a12026401c65e5d81d2adb0f4 (patch)
treec35d3974c26302d189a36e4e39c13891cdcd5d15
parentd73c6575010b9d2c2625e8bf09afe9019a76d821 (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.c10
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;