From f9dc5f972fd3ecb851a97cb3eecd11011dbb7468 Mon Sep 17 00:00:00 2001 From: Abhishek Ambure Date: Fri, 19 Jun 2020 01:22:52 +0530 Subject: [PATCH] qcacld-3.0: Add basic rates if probe rsp don't have supported rates Some IOT APs set supported rates to zero in probe response. Host uses probe response/beacon to update scan cache. Host uses supported rates from scan cache to update in assoc request. As the supported rates in probe response are zeros, host doesn't add supported rate IE in assoc request which leads to association failure. Hence add BSS basic rates in assoc request if supported rates in scan cache is not present. Change-Id: Ie2d75a980f5aede0b7985ddf385516a6b15c7560 CRs-Fixed: 2706797 --- core/sme/src/csr/csr_api_roam.c | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 91bd00d30c53..14c5e528aa09 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -15033,9 +15033,19 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId, qdf_mem_copy(&csr_join_req->operationalRateSet. rate, OpRateSet.rate, OpRateSet.numRates); - } else - csr_join_req->operationalRateSet.numRates = 0; + } else if (pProfile->phyMode == eCSR_DOT11_MODE_AUTO && + WLAN_REG_IS_24GHZ_CH_FREQ( + pBssDescription->chan_freq)) { + /* + * Some IOT APs don't send supported rates in + * probe resp, hence add BSS basic rates in + * supported rates IE of assoc request. + */ + tSirMacRateSet b_rates; + csr_populate_basic_rates(&b_rates, false, true); + csr_join_req->operationalRateSet = b_rates; + } /* ExtendedRateSet */ if (ExRateSet.numRates) { csr_join_req->extendedRateSet.numRates = @@ -15043,8 +15053,20 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId, qdf_mem_copy(&csr_join_req->extendedRateSet. rate, ExRateSet.rate, ExRateSet.numRates); - } else + } else { csr_join_req->extendedRateSet.numRates = 0; + } + } else if (pProfile->phyMode == eCSR_DOT11_MODE_AUTO && + WLAN_REG_IS_24GHZ_CH_FREQ( + pBssDescription->chan_freq)) { + /* + * To connect IOT AP, add basic rates in supported + * rates IE of assoc req. + */ + tSirMacRateSet b_rates; + + csr_populate_basic_rates(&b_rates, false, true); + csr_join_req->operationalRateSet = b_rates; } else { csr_join_req->operationalRateSet.numRates = 0; csr_join_req->extendedRateSet.numRates = 0;