Răsfoiți Sursa

qcacld-3.0: Populate assoc link id in ML IE of assoc request

Populate assoc assoc link id in ML IE of an assoc request from
scan cache entry

Change-Id: I82b2b68f45411b1588c76ddd7ce9d21a93d972f3
CRs-Fixed: 3013684
Bapiraju Alla 3 ani în urmă
părinte
comite
d599410e45

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

@@ -48,6 +48,7 @@
  * @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
+ * @assoc_link_id: Assoc link ID of an ML connection
  */
 struct cm_vdev_join_req {
 	uint8_t vdev_id;
@@ -61,6 +62,7 @@ struct cm_vdev_join_req {
 	struct scan_cache_entry *entry;
 #ifdef WLAN_FEATURE_11BE_MLO
 	struct mlo_partner_info partner_info;
+	uint8_t assoc_link_id;
 #endif
 };
 

+ 4 - 6
components/umac/mlme/connection_mgr/core/src/wlan_cm_vdev_connect.c

@@ -1051,15 +1051,13 @@ QDF_STATUS cm_flush_join_req(struct scheduler_msg *msg)
 }
 
 #ifdef WLAN_FEATURE_11BE_MLO
-static void cm_fill_ml_partner_info(struct cm_vdev_join_req *join_req)
+static void cm_fill_ml_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);
+	join_req->assoc_link_id = join_req->entry->ml_info.self_link_id;
 }
 #else
-static void cm_fill_ml_partner_info(struct cm_vdev_join_req *join_req)
+static void cm_fill_ml_info(struct cm_vdev_join_req *join_req)
 {
 }
 #endif
@@ -1088,7 +1086,7 @@ 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);
+	cm_fill_ml_info(join_req);
 
 	join_req->vdev_id = req->vdev_id;
 	join_req->cm_id = req->cm_id;

+ 1 - 0
core/mac/inc/sir_api.h

@@ -990,6 +990,7 @@ struct join_req {
 	tSirAddie addIEAssoc;
 #ifdef WLAN_FEATURE_11BE_MLO
 	struct mlo_partner_info partner_info;
+	uint8_t assoc_link_id;
 #endif
 	/* Warning:::::::::::: Do not add any new param in this struct */
 	/* Pls make this as last variable in struct */

+ 6 - 5
core/mac/src/pe/lim/lim_process_sme_req_messages.c

@@ -3670,8 +3670,8 @@ static void lim_fill_crypto_params(struct mac_context *mac_ctx,
 }
 
 #ifdef WLAN_FEATURE_11BE_MLO
-static void lim_fill_ml_partner_info(struct cm_vdev_join_req *req,
-				     struct join_req *pe_join_req)
+static void lim_fill_ml_info(struct cm_vdev_join_req *req,
+			     struct join_req *pe_join_req)
 {
 	uint8_t idx, num_links = 0;
 	struct mlo_partner_info *partner_info = NULL;
@@ -3696,10 +3696,11 @@ static void lim_fill_ml_partner_info(struct cm_vdev_join_req *req,
 			 QDF_MAC_ADDR_REF(partner_info->partner_link_info[idx].
 					  link_addr.bytes));
 	}
+	pe_join_req->assoc_link_id = req->assoc_link_id;
 }
 #else
-static void lim_fill_ml_partner_info(struct cm_vdev_join_req *req,
-				     struct join_req *pe_join_req)
+static void lim_fill_ml_info(struct cm_vdev_join_req *req,
+			     struct join_req *pe_join_req)
 {
 }
 #endif
@@ -3784,7 +3785,7 @@ lim_fill_session_params(struct mac_context *mac_ctx,
 		}
 	}
 
-	lim_fill_ml_partner_info(req, pe_join_req);
+	lim_fill_ml_info(req, pe_join_req);
 
 	return QDF_STATUS_SUCCESS;
 }

+ 3 - 0
core/mac/src/sys/legacy/src/utils/src/parser_api.c

@@ -8715,6 +8715,9 @@ QDF_STATUS populate_dot11f_assoc_req_mlo_ie(struct mac_context *mac_ctx,
 		     mld_addr,
 		     QDF_MAC_ADDR_SIZE);
 	mlo_ie->link_id_info_present = 0;
+	mlo_ie->link_id_info.info.link_id =
+				pe_session->lim_join_req->assoc_link_id;
+
 	mlo_ie->bss_param_change_cnt_present = 0;
 	mlo_ie->medium_sync_delay_info_present = 0;
 	mlo_ie->eml_capab_present = 0;