Browse Source

qcacld-3.0: If MCC is disabled do not roam to an AP which cause MCC

qcacld-2.0 to qcacld-3.0 propagation

Even though MCC is disabled by gEnableMCCMode ini, driver try to
roam to APs which may cause MCC but as MCC is disable the roaming
fails eventually in CSR while trying to connect to the new profile.

Driver creates a preauth session which is not deleted upon failure.
The session sme state is eLIM_SME_WT_REASSOC_STATE and thus fresh
scan required is set to false and cached scan result are returned.

Do not add the APs which cause MCC scenario, in preauth candidate
list if MCC is disabled.

Change-Id: Iae2a887e1fa34f89f340bd7392d757e1add97a16
CRs-Fixed: 992672
Abhishek Singh 9 năm trước cách đây
mục cha
commit
c50055ab90
1 tập tin đã thay đổi với 19 bổ sung0 xóa
  1. 19 0
      core/sme/src/csr/csr_host_scan_roam.c

+ 19 - 0
core/sme/src/csr/csr_host_scan_roam.c

@@ -203,6 +203,25 @@ void csr_neighbor_roam_process_scan_results(tpAniSirGlobal mac_ctx,
 					  "SKIP-currently associated AP");
 				continue;
 			}
+
+			/*
+			 * Continue if MCC is disabled in INI and if AP
+			 * will create MCC
+			 */
+			if (cds_concurrent_open_sessions_running() &&
+			   !mac_ctx->roam.configParam.fenableMCCMode) {
+				uint8_t conc_channel;
+
+				conc_channel =
+				  csr_get_concurrent_operation_channel(mac_ctx);
+				if (conc_channel &&
+				   (conc_channel !=
+				   scan_result->BssDescriptor.channelId)) {
+					sms_log(mac_ctx, LOG1, FL("MCC not supported so Ignore AP on channel %d"),
+					  scan_result->BssDescriptor.channelId);
+					continue;
+				}
+			}
 			/*
 			 * In case of reassoc requested by upper layer, look
 			 * for exact match of bssid & channel. csr cache might