Ver Fonte

qcacmn: Limit join timeout try to 1 for MCC concurrency

Currently join timeout is retried 2 extra time which can lead
to unsuccessful connect time of about 9+ sec, this lead to
beacon miss on the MCC concurrency.

So reduce it to 1 try to limit connect time to around 3+ sec in
case of candidate freq can lead to MCC concurrency.

Change-Id: I642a7acd1e2a49308836bd1bb6c77ab1aeb110e4
CRs-Fixed: 3328642
Abhishek Singh há 2 anos atrás
pai
commit
84e3277bc8
1 ficheiros alterados com 11 adições e 1 exclusões
  1. 11 1
      umac/mlme/connection_mgr/core/src/wlan_cm_connect.c

+ 11 - 1
umac/mlme/connection_mgr/core/src/wlan_cm_connect.c

@@ -837,9 +837,11 @@ static bool cm_is_retry_with_same_candidate(struct cnx_mgr *cm_ctx,
 	struct wlan_objmgr_psoc *psoc;
 	bool sae_connection;
 	QDF_STATUS status;
+	qdf_freq_t freq;
 
 	psoc = wlan_pdev_get_psoc(wlan_vdev_get_pdev(cm_ctx->vdev));
 	key_mgmt = req->cur_candidate->entry->neg_sec_info.key_mgmt;
+	freq = req->cur_candidate->entry->channel.chan_freq;
 
 	/* Try once again for the invalid PMKID case without PMKID */
 	if (resp->status_code == STATUS_INVALID_PMKID)
@@ -848,7 +850,15 @@ static bool cm_is_retry_with_same_candidate(struct cnx_mgr *cm_ctx,
 	/* Try again for the JOIN timeout if only one candidate */
 	if (resp->reason == CM_JOIN_TIMEOUT &&
 	    qdf_list_size(req->candidate_list) == 1) {
-		/* Get assoc retry count */
+		/*
+		 * If there is a interface connected which can lead to MCC,
+		 * do not retry as it can lead to beacon miss on that interface.
+		 * Coz as part of vdev start mac remain on candidate freq for 3
+		 * sec.
+		 */
+		if (policy_mgr_will_freq_lead_to_mcc(psoc, freq))
+			return false;
+
 		wlan_mlme_get_sae_assoc_retry_count(psoc, &max_retry_count);
 		goto use_same_candidate;
 	}