summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCNSS_WLAN Service <cnssbldsw@qualcomm.com>2018-05-30 02:12:31 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2018-05-30 02:12:31 -0700
commite521139b8c7d0fe81fa361df04ca64defeffe3c2 (patch)
tree7663f979d139ab9e9600d9bb4f03e93ad1f198b2
parent21f376fced96beac75d8cb13becaf6732c377e12 (diff)
parent7e30c67dfd97d100de0b13e9f6f15a9fbeb6b290 (diff)
Merge "qcacld-2.0: Improve empty beacon fix in 802.11k" into wlan-cld2.driver.lnx.1.0
-rw-r--r--CORE/SME/src/rrm/sme_rrm.c37
1 files changed, 21 insertions, 16 deletions
diff --git a/CORE/SME/src/rrm/sme_rrm.c b/CORE/SME/src/rrm/sme_rrm.c
index 6f090be694d1..cec781bd13e4 100644
--- a/CORE/SME/src/rrm/sme_rrm.c
+++ b/CORE/SME/src/rrm/sme_rrm.c
@@ -474,6 +474,7 @@ static eHalStatus sme_RrmSendScanResult( tpAniSirGlobal pMac,
tpRrmSMEContext pSmeRrmContext = &pMac->rrm.rrmSmeContext;
tANI_U32 sessionId;
tCsrRoamInfo *roam_info;
+ tSirScanType scan_type;
#if defined WLAN_VOWIFI_DEBUG
smsLog( pMac, LOGE, "Send scan result to PE ");
@@ -591,31 +592,35 @@ static eHalStatus sme_RrmSendScanResult( tpAniSirGlobal pMac,
#endif /*FEATURE_WLAN_ESE_UPLOAD*/
status = sme_RrmSendBeaconReportXmitInd( pMac, NULL, measurementDone, 0 );
}
+ if (eRRM_MSG_SOURCE_ESE_UPLOAD == pSmeRrmContext->msgSource ||
+ eRRM_MSG_SOURCE_LEGACY_ESE == pSmeRrmContext->msgSource)
+ scan_type = pSmeRrmContext->measMode[pSmeRrmContext->currentIndex];
+ else
+ scan_type = pSmeRrmContext->measMode[0];
counter=0;
while (pScanResult)
{
/*
- * If scan results containing connected BSS, "pScanResult->timer >= RRM_scan_timer"
- * is not suitable for the scan timer of connected BSS is unchangable.
+ * In passive scan, sta listens beacon. Connected AP beacon
+ * is offloaded to firmware. Firmware will discard
+ * connected AP beacon except that special IE exists.
+ * Connected AP beacon will not be sent to host. Hence, timer
+ * of connected AP in scan results is not updated and can
+ * not meet "pScanResult->timer >= RRM_scan_timer".
*/
- uint8_t i;
tCsrRoamSession *session;
uint8_t is_conn_bss_found = false;
- for (i = 0; i < CSR_ROAM_SESSION_MAX; i++)
- {
- if (CSR_IS_SESSION_VALID(pMac, i))
- {
- session = CSR_GET_SESSION(pMac, i);
- if (csrIsConnStateConnectedInfra(pMac, i) && (NULL != session->pConnectBssDesc) &&
- (csrIsDuplicateBssDescription(pMac, &pScanResult->BssDescriptor,
- session->pConnectBssDesc, NULL, FALSE)))
- {
- is_conn_bss_found = true;
- break;
- }
- }
+ if (scan_type == eSIR_PASSIVE_SCAN) {
+ session = CSR_GET_SESSION(pMac, sessionId);
+ if (csrIsConnStateConnectedInfra(pMac, sessionId) &&
+ (NULL != session->pConnectBssDesc) &&
+ (csrIsDuplicateBssDescription(pMac, &pScanResult->BssDescriptor,
+ session->pConnectBssDesc, NULL, FALSE))) {
+ is_conn_bss_found = true;
+ smsLog(pMac, LOG1, "Connected BSS in scan results");
+ }
}
pNextResult = sme_ScanResultGetNext(pMac, pResult);
smsLog(pMac, LOG1, "Scan res timer:%lu, rrm scan timer:%lu",