瀏覽代碼

qcacmn: Fix link probe response generation failure

As 11be 2.1 spec 35.3.3.3 Fields and elements not carried in a per-STA
profile, an AP affiliated with an AP MLD shall not include a Timestamp
field, a Beacon Interval field. Change ML probe rsp per-STA profile decode
logic accordingly. Copy Timestamp from the starting of the probe response
frame.

Change-Id: I0fe5682c170dc3dcd6e5a93c68473cd4cb6999b8
CRs-Fixed: 3280227
Jianmin Zhu 2 年之前
父節點
當前提交
ea0eca7d21
共有 1 個文件被更改,包括 4 次插入17 次删除
  1. 4 17
      umac/mlo_mgr/src/utils_mlo.c

+ 4 - 17
umac/mlo_mgr/src/utils_mlo.c

@@ -2102,19 +2102,9 @@ QDF_STATUS util_gen_link_reqrsp_cmn(uint8_t *frame, qdf_size_t frame_len,
 		/* This is a probe response */
 		mlo_debug("Populating fixed fields for probe response in link specific frame");
 
-		if (sta_prof_remlen < WLAN_TIMESTAMP_LEN) {
-			mlo_err_rl("Remaining length of STA profile %zu octets is less than length of Timestamp Length %u",
-				   sta_prof_remlen,
-				   WLAN_TIMESTAMP_LEN);
-
-			qdf_mem_free(mlieseqpayload_copy);
-			return QDF_STATUS_E_PROTO;
-		}
-
-		/* Timestamp field information is specific to the link.
-		 * Copy this from the STA profile.
-		 */
-
+		 /* Copy Timestamp from the starting of the probe response
+		  * frame.
+		  */
 		if ((link_frame_maxsize - link_frame_currlen) <
 				WLAN_TIMESTAMP_LEN) {
 			mlo_err("Insufficent space in link specific frame for Timestamp Info field. Required: %u octets, available: %zu octets",
@@ -2125,16 +2115,13 @@ QDF_STATUS util_gen_link_reqrsp_cmn(uint8_t *frame, qdf_size_t frame_len,
 			return QDF_STATUS_E_NOMEM;
 		}
 
-		qdf_mem_copy(link_frame_currpos, sta_prof_currpos,
+		qdf_mem_copy(link_frame_currpos, frame,
 			     WLAN_TIMESTAMP_LEN);
 		link_frame_currpos += WLAN_TIMESTAMP_LEN;
 		link_frame_currlen += WLAN_TIMESTAMP_LEN;
 		mlo_debug("Added Timestamp Info field (%u octets) to link specific frame",
 			  WLAN_TIMESTAMP_LEN);
 
-		sta_prof_currpos += WLAN_TIMESTAMP_LEN;
-		sta_prof_remlen -= WLAN_TIMESTAMP_LEN;
-
 		if (!is_beaconinterval_valid) {
 			mlo_err_rl("Beacon interval information not present in STA info field of per-STA profile");
 			qdf_mem_free(mlieseqpayload_copy);