Browse Source

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 year ago
parent
commit
fb6061d91f

+ 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);