瀏覽代碼

qcacld-3.0: Reset the vdev level T2LM info as default mapping

Currently, during disconnection vdev level T2LM established
mapping set as 0.

Add changes to reset it to default mapping T2LM mapping
instead to 0.

Change-Id: I4590045a65d3e715ceddcbf73252ec853abc7cb3
CRs-Fixed: 3560022
Deeksha Gupta 1 年之前
父節點
當前提交
fb6061d91f
共有 2 個文件被更改,包括 16 次插入16 次删除
  1. 3 1
      components/umac/mlme/mlo_mgr/src/wlan_t2lm_api.c
  2. 13 15
      core/mac/src/sys/legacy/src/utils/src/parser_api.c

+ 3 - 1
components/umac/mlme/mlo_mgr/src/wlan_t2lm_api.c

@@ -571,7 +571,9 @@ wlan_t2lm_clear_all_tid_mapping(struct wlan_objmgr_vdev *vdev)
 	}
 	qdf_mem_zero(&t2lm_ctx->established_t2lm,
 		     sizeof(struct wlan_mlo_t2lm_ie));
-	t2lm_ctx->established_t2lm.t2lm.direction = WLAN_T2LM_INVALID_DIRECTION;
+	t2lm_ctx->established_t2lm.t2lm.direction = WLAN_T2LM_BIDI_DIRECTION;
+	t2lm_ctx->established_t2lm.t2lm.default_link_mapping = 1;
+	t2lm_ctx->established_t2lm.t2lm.link_mapping_size = 0;
 
 	qdf_mem_zero(&t2lm_ctx->upcoming_t2lm,
 		     sizeof(struct wlan_mlo_t2lm_ie));

+ 13 - 15
core/mac/src/sys/legacy/src/utils/src/parser_api.c

@@ -2915,11 +2915,6 @@ sir_convert_probe_frame2_t2lm_struct(tDot11fProbeResponse *pr,
 	struct wlan_t2lm_info t2lm;
 	uint8_t i;
 
-	if (!pr->num_t2lm_ie) {
-		pe_debug("T2LM IEs not present");
-		return status;
-	}
-
 	t2lm_ctx = &bcn_struct->t2lm_ctx;
 	qdf_mem_zero(&t2lm_ctx->established_t2lm.t2lm,
 		     sizeof(struct wlan_t2lm_info));
@@ -2929,6 +2924,11 @@ sir_convert_probe_frame2_t2lm_struct(tDot11fProbeResponse *pr,
 		     sizeof(struct wlan_t2lm_info));
 	t2lm_ctx->upcoming_t2lm.t2lm.direction = WLAN_T2LM_INVALID_DIRECTION;
 
+	if (!pr->num_t2lm_ie) {
+		pe_debug("T2LM IEs not present");
+		return status;
+	}
+
 	pe_debug("Number of T2LM IEs in probe rsp %d", pr->num_t2lm_ie);
 	for (i = 0; i < pr->num_t2lm_ie; i++) {
 		qdf_mem_zero(&ie[0], DOT11F_IE_T2LM_IE_MAX_LEN + 3);
@@ -3862,11 +3862,6 @@ sir_convert_assoc_resp_frame2_t2lm_struct(struct mac_context *mac,
 	struct wlan_t2lm_info t2lm;
 	uint8_t i;
 
-	if (!ar->num_t2lm_ie) {
-		pe_debug("T2LM IEs not present");
-		return status;
-	}
-
 	t2lm_ctx = &p_assoc_rsp->t2lm_ctx;
 	qdf_mem_zero(&t2lm_ctx->established_t2lm.t2lm,
 		     sizeof(struct wlan_t2lm_info));
@@ -3876,6 +3871,11 @@ sir_convert_assoc_resp_frame2_t2lm_struct(struct mac_context *mac,
 		     sizeof(struct wlan_t2lm_info));
 	t2lm_ctx->upcoming_t2lm.t2lm.direction = WLAN_T2LM_INVALID_DIRECTION;
 
+	if (!ar->num_t2lm_ie) {
+		pe_debug("T2LM IEs not present");
+		return status;
+	}
+
 	pe_debug("Number of T2LM IEs in assoc resp %d", ar->num_t2lm_ie);
 	for (i = 0; i < ar->num_t2lm_ie; i++) {
 		qdf_mem_zero(&ie[0], DOT11F_IE_T2LM_IE_MAX_LEN + 3);
@@ -5187,11 +5187,6 @@ sir_convert_beacon_frame2_t2lm_struct(tDot11fBeacon *bcn_frm,
 	struct wlan_t2lm_info t2lm;
 	uint8_t i;
 
-	if (!bcn_frm->num_t2lm_ie) {
-		pe_debug("T2LM IEs not present");
-		return status;
-	}
-
 	t2lm_ctx = &bcn_struct->t2lm_ctx;
 	qdf_mem_zero(&t2lm_ctx->established_t2lm.t2lm,
 		     sizeof(struct wlan_t2lm_info));
@@ -5201,6 +5196,9 @@ sir_convert_beacon_frame2_t2lm_struct(tDot11fBeacon *bcn_frm,
 		     sizeof(struct wlan_t2lm_info));
 	t2lm_ctx->upcoming_t2lm.t2lm.direction = WLAN_T2LM_INVALID_DIRECTION;
 
+	if (!bcn_frm->num_t2lm_ie)
+		return status;
+
 	pe_debug("Number of T2LM IEs in beacon %d", bcn_frm->num_t2lm_ie);
 	for (i = 0; i < bcn_frm->num_t2lm_ie; i++) {
 		qdf_mem_zero(&ie[0], DOT11F_IE_T2LM_IE_MAX_LEN + 3);