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
This commit is contained in:

committed by
nshrivas

parent
cbef1eafad
commit
f9dc5f972f
@@ -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;
|
||||
|
Reference in New Issue
Block a user