Эх сурвалжийг харах

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 жил өмнө
parent
commit
bfc48d43fa

+ 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,