浏览代码

qcacld-3.0: Use peer link address for multi link

Currently, Host driver is using MLD mac address
for TWT set peer capabilities after the roaming.

This change is to use peer link address for setting
TWT peer caps after roaming, for multi link roaming.

Change-Id: I6cdfda5ee9f75a3509b5f12bdbbce92f8202397c
CRs-Fixed: 3618635
Aasir Rasheed 1 年之前
父节点
当前提交
bfc48d43fa
共有 2 个文件被更改,包括 11 次插入3 次删除
  1. 9 2
      core/mac/src/pe/lim/lim_api.c
  2. 2 1
      core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c

+ 9 - 2
core/mac/src/pe/lim/lim_api.c

@@ -2568,6 +2568,7 @@ lim_fill_roamed_peer_twt_caps(struct mac_context *mac_ctx,
 	uint32_t status;
 	tDot11fReAssocResponse *reassoc_rsp;
 	struct pe_session *pe_session;
+	struct qdf_mac_addr mac_addr;
 
 	pe_session = pe_find_session_by_vdev_id(mac_ctx, vdev_id);
 	if (!pe_session) {
@@ -2597,11 +2598,17 @@ lim_fill_roamed_peer_twt_caps(struct mac_context *mac_ctx,
 			 status, len);
 	}
 
-	if (lim_is_session_he_capable(pe_session))
+	if (lim_is_session_he_capable(pe_session)) {
+		if (is_multi_link_roam(roam_synch))
+			mlo_get_sta_link_mac_addr(vdev_id, roam_synch,
+						  &mac_addr);
+		else
+			qdf_copy_macaddr(&mac_addr, &roam_synch->bssid);
 		lim_set_twt_peer_capabilities(mac_ctx,
-					      &roam_synch->bssid,
+					      &mac_addr,
 					      &reassoc_rsp->he_cap,
 					      &reassoc_rsp->he_op);
+	}
 	qdf_mem_free(reassoc_rsp);
 }
 #endif

+ 2 - 1
core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c

@@ -1384,7 +1384,8 @@ lim_process_assoc_rsp_frame(struct mac_context *mac_ctx, uint8_t *rx_pkt_info,
 				&assoc_rsp->obss_scanparams);
 
 	if (lim_is_session_he_capable(session_entry)) {
-		lim_set_twt_peer_capabilities(
+		if (!wlan_cm_is_vdev_roaming(session_entry->vdev))
+			lim_set_twt_peer_capabilities(
 				mac_ctx,
 				(struct qdf_mac_addr *)current_bssid,
 				&assoc_rsp->he_cap,