浏览代码

qcacld-3.0: Add partner links information in join request

Add partner links information in join request to proceed for ML
connection in best links selected in ML scoring.

Change-Id: I463264d9c78f3ab061d54a3245b15174d0940910
CRs-Fixed: 2961881
Bapiraju Alla 3 年之前
父节点
当前提交
660d463b88

+ 3 - 2
components/umac/mlme/connection_mgr/core/src/wlan_cm_roam_offload.c

@@ -960,12 +960,13 @@ static void cm_update_score_params(struct wlan_objmgr_psoc *psoc,
 	req_score_params->sae_pk_ap_weightage =
 		weight_config->sae_pk_ap_weightage;
 
+	/* TODO: update scoring params corresponding to ML scoring */
 	req_score_params->bw_index_score =
-		score_config->bandwidth_weight_per_index;
+		score_config->bandwidth_weight_per_index[0];
 	req_score_params->band_index_score =
 		score_config->band_weight_per_index;
 	req_score_params->nss_index_score =
-		score_config->nss_weight_per_index;
+		score_config->nss_weight_per_index[0];
 
 	req_score_params->vendor_roam_score_algorithm =
 			score_config->vendor_roam_score_algorithm;

+ 7 - 0
components/umac/mlme/connection_mgr/core/src/wlan_cm_vdev_api.h

@@ -29,6 +29,9 @@
 #include "connection_mgr/core/src/wlan_cm_main.h"
 #include "connection_mgr/core/src/wlan_cm_main_api.h"
 #include <wlan_cm_roam_api.h>
+#ifdef WLAN_FEATURE_11BE_MLO
+#include "wlan_mlo_mgr_public_structs.h"
+#endif
 
 /**
  * struct cm_vdev_join_req - connect req from legacy CM to vdev manager
@@ -44,6 +47,7 @@
  * @assoc_ie: assoc ie to be used in assoc req
  * @scan_ie: Default scan ie to be used in the uncast probe req
  * @entry: scan entry for the candidate
+ * @partner_info: Partner link information for an ML connection
  */
 struct cm_vdev_join_req {
 	uint8_t vdev_id;
@@ -55,6 +59,9 @@ struct cm_vdev_join_req {
 	struct element_info assoc_ie;
 	struct element_info scan_ie;
 	struct scan_cache_entry *entry;
+#ifdef WLAN_FEATURE_11BE_MLO
+	struct mlo_partner_info partner_info;
+#endif
 };
 
 /**

+ 16 - 0
components/umac/mlme/connection_mgr/core/src/wlan_cm_vdev_connect.c

@@ -1021,6 +1021,20 @@ QDF_STATUS cm_flush_join_req(struct scheduler_msg *msg)
 	return QDF_STATUS_SUCCESS;
 }
 
+#ifdef WLAN_FEATURE_11BE_MLO
+static void cm_fill_ml_partner_info(struct cm_vdev_join_req *join_req)
+{
+	if (!join_req->entry->ml_info)
+		return;
+
+	join_req->partner_info = util_scan_get_ml_partner_info(join_req->entry);
+}
+#else
+static void cm_fill_ml_partner_info(struct cm_vdev_join_req *join_req)
+{
+}
+#endif
+
 static QDF_STATUS
 cm_copy_join_params(struct cm_vdev_join_req *join_req,
 		    struct wlan_cm_vdev_connect_req *req)
@@ -1045,6 +1059,8 @@ cm_copy_join_params(struct cm_vdev_join_req *join_req,
 	if (!join_req->entry)
 		return QDF_STATUS_E_NOMEM;
 
+	cm_fill_ml_partner_info(join_req);
+
 	join_req->vdev_id = req->vdev_id;
 	join_req->cm_id = req->cm_id;
 	join_req->force_rsne_override = req->force_rsne_override;