Эх сурвалжийг харах

qcacld-3.0: Avoid beacon parsing on channels not in scan list for ACS

When STA is already up on some 2.4Ghz channel and SAP needs to be started
on some 5Ghz channel through ACS, scan channel list contains only 5Ghz
channels. But scan results contains beacons on STA 2.4Ghz channel as well
which is getting parsed contributing to bsscount and rssi on that 2.4Ghz
channel which should not be the scenario as bsscount should be 0 and rssi
should be -100 on this 2.4Ghz channel as it is not present in the scan
channel list sent by HOST to fw.

Avoid beacon parsing on all the channels other than the channels present
in ACS scan channel list.

Change-Id: I85ab967386b19748c32e98a7e468d471e31f9b9a
CRs-Fixed: 2266170
Himanshu Agarwal 6 жил өмнө
parent
commit
170b497c19

+ 18 - 0
core/sap/src/sap_ch_select.c

@@ -1526,6 +1526,8 @@ static void sap_compute_spect_weight(tSapChSelSpectInfo *pSpectInfoParams,
 	int8_t rssi = 0;
 	uint8_t chn_num = 0;
 	uint8_t channel_id = 0;
+	uint8_t i;
+	bool found = false;
 
 	tCsrScanResultInfo *pScanResult;
 	tSapSpectChInfo *pSpectCh = pSpectInfoParams->pSpectCh;
@@ -1588,6 +1590,22 @@ static void sap_compute_spect_weight(tSapChSelSpectInfo *pSpectInfoParams,
 		for (chn_num = 0; chn_num < pSpectInfoParams->numSpectChans;
 		     chn_num++) {
 
+			/*
+			 * Check if channel is present in scan channel list or
+			 * not. If not present, then continue as no need to
+			 * process the beacon on this channel.
+			 */
+			for (i = 0; i < sap_ctx->num_of_channel; i++) {
+				if (pSpectCh->chNum ==
+				    sap_ctx->channelList[i]) {
+					found = true;
+					break;
+				}
+			}
+
+			if (!found)
+				continue;
+
 			/*
 			 *  if the Beacon has channel ID, use it other wise we will
 			 *  rely on the channelIdSelf