qcacld-3.0: Report BSS of only requested RC in Rrm

Propagation from cld2.0 to cld3.0.

When receiving beacon request for radio measurement, sta
reports BSS in all valid channels regardless of specified
regulatory class in request. To fix this, let sta report only
BSS of requested RC.

Change-Id: I98c80ab3d53dd9d63225349e3c7657f48c758957
CRs-Fixed: 2237989
This commit is contained in:
tinlin 2018-05-21 17:43:04 +08:00 committed by nshrivas
parent b482995186
commit 3855eaadc7

View File

@ -26,6 +26,7 @@
#include "sme_inside.h"
#include "sme_api.h"
#include "cfg_api.h"
#include "cds_regdomain.h"
#ifdef FEATURE_WLAN_DIAG_SUPPORT
#include "host_diag_core_event.h"
@ -869,6 +870,7 @@ QDF_STATUS sme_rrm_process_beacon_report_req_ind(tpAniSirGlobal pMac,
tpSirBeaconReportReqInd pBeaconReq = (tpSirBeaconReportReqInd) pMsgBuf;
tpRrmSMEContext pSmeRrmContext = &pMac->rrm.rrmSmeContext;
uint32_t len = 0, i = 0;
uint8_t temp = 0;
sme_debug("Received Beacon report request ind Channel = %d",
pBeaconReq->channelInfo.channelNum);
@ -886,7 +888,19 @@ QDF_STATUS sme_rrm_process_beacon_report_req_ind(tpAniSirGlobal pMac,
}
csr_get_cfg_valid_channels(pMac, pSmeRrmContext->channelList.
ChannelList, &len);
pSmeRrmContext->channelList.numOfChannels = (uint8_t) len;
for (i = 0; i < len; i++) {
if (wlan_reg_dmn_get_opclass_from_channel(
pMac->scan.countryCodeCurrent,
pSmeRrmContext->channelList.ChannelList[i],
BWALL) ==
pBeaconReq->channelInfo.regulatoryClass) {
pSmeRrmContext->channelList.ChannelList[temp] =
pSmeRrmContext->channelList.ChannelList[i];
temp++;
}
}
pSmeRrmContext->channelList.numOfChannels = (uint8_t)temp;
} else {
len = 0;
pSmeRrmContext->channelList.numOfChannels = 0;