qcacld-3.0: Fix PMF configuration for LFR2 and LFR3 roaming

This commit will fix the incorrect pmf config param for STA DUT
in-case of LFR2/3 roaming scenario.

Change-Id: Ic0d6d4632cfeaa0589b435a6710f3c2380cf5883
CRs-Fixed: 935947
This commit is contained in:
Krunal Soni 2015-11-02 18:41:08 -08:00 • committed by Prakash Dhavali
commit b2f1304e77
3 changed files with 38 additions and 6 deletions

View file

@ -974,6 +974,11 @@ CDF_STATUS csr_roam_copy_connect_profile(tpAniSirGlobal pMac,
pProfile->eseCckmInfo.krk_plumbed =
connected_prof->eseCckmInfo.krk_plumbed;
}
#endif
#ifdef WLAN_FEATURE_11W
pProfile->MFPEnabled = connected_prof->MFPEnabled;
pProfile->MFPRequired = connected_prof->MFPRequired;
pProfile->MFPCapable = connected_prof->MFPCapable;
#endif
}
return status;
@ -6932,6 +6937,11 @@ CDF_STATUS csr_roam_copy_connected_profile(tpAniSirGlobal pMac,
pSrcProfile->MDID.mobilityDomain;
}
#endif
#ifdef WLAN_FEATURE_11W
pDstProfile->MFPEnabled = pSrcProfile->MFPEnabled;
pDstProfile->MFPRequired = pSrcProfile->MFPRequired;
pDstProfile->MFPCapable = pSrcProfile->MFPCapable;
#endif
end:
if (!CDF_IS_STATUS_SUCCESS(status)) {
@ -13261,6 +13271,11 @@ csr_roam_remove_connected_bss_from_scan_cache(tpAniSirGlobal pMac,
pScanFilter->bOSENAssociation = false;
pScanFilter->countryCode[0] = 0;
pScanFilter->phyMode = eCSR_DOT11_MODE_AUTO;
#ifdef WLAN_FEATURE_11W
pScanFilter->MFPEnabled = pConnProfile->MFPEnabled;
pScanFilter->MFPRequired = pConnProfile->MFPRequired;
pScanFilter->MFPCapable = pConnProfile->MFPCapable;
#endif
csr_ll_lock(&pMac->scan.scanResultList);
pEntry = csr_ll_peek_head(&pMac->scan.scanResultList, LL_ACCESS_NOLOCK);
while (pEntry) {

View file

@ -2056,20 +2056,28 @@ bool csr_neighbor_roam_is_ssid_and_security_match(tpAniSirGlobal pMac,
pIes->SSID.ssid,
pIes->SSID.num_ssid, true);
if (true == fMatch) {
#ifdef WLAN_FEATURE_11W
/*
* for now we are sending NULL for all PMF related filter
* parameters during roam to the neighbor AP because
* so far 80211W spec doesn't specify anything about
* roaming scenario.
* We are sending current connected APs profile setting
* if other AP doesn't have the same PMF setting as currently
* connected AP then we will have some issues in roaming.
*
* Once roaming scenario is defined, we should re-visit
* this section and remove this comment.
* Make sure all the APs have same PMF settings to avoid
* any corner cases.
*/
fMatch = csr_is_security_match(pMac, &authType,
&uCEncryptionType, &mCEncryptionType,
&pCurProfile->MFPEnabled,
&pCurProfile->MFPRequired,
&pCurProfile->MFPCapable,
pBssDesc, pIes, NULL, NULL, NULL);
#else
fMatch = csr_is_security_match(pMac, &authType,
&uCEncryptionType,
&mCEncryptionType, NULL,
NULL, NULL, pBssDesc,
pIes, NULL, NULL, NULL);
#endif
return fMatch;
} else {
return fMatch;

View file

@ -4867,9 +4867,18 @@ bool csr_match_connected_bss_security(tpAniSirGlobal pMac,
authList.numEntries = 1;
authList.authType[0] = pProfile->AuthType;
#ifdef WLAN_FEATURE_11W
return csr_is_security_match(pMac, &authList, &ucEncryptionList,
&mcEncryptionList,
&pProfile->MFPEnabled,
&pProfile->MFPRequired,
&pProfile->MFPCapable,
pBssDesc, pIes, NULL, NULL, NULL);
#else
return csr_is_security_match(pMac, &authList, &ucEncryptionList,
&mcEncryptionList, NULL, NULL, NULL,
pBssDesc, pIes, NULL, NULL, NULL);
#endif
}