Browse Source

qcacld-3.0: Do not advertise EMLSR support to draft 2.0 AP

Add a check to distinguish 11BE draft 2.0 AP vs 3.0 AP
based on MSD params received in beacon/probe response rather
than assoc frame and if the params are present (draft 2.0),
then do not advertise EMLSR support in association request
as EMLSR mode will not be supported.

Change-Id: I5f3e9ce76dc634f4fea1422f0d8b9da3edbb0587
CRs-Fixed: 3560902
Gururaj Pandurangi 1 year ago
parent
commit
42c5033011
2 changed files with 13 additions and 0 deletions
  1. 8 0
      core/mac/src/pe/lim/lim_api.c
  2. 5 0
      core/mac/src/pe/lim/lim_process_beacon_frame.c

+ 8 - 0
core/mac/src/pe/lim/lim_api.c

@@ -4439,6 +4439,7 @@ lim_process_cu_for_probe_rsp(struct mac_context *mac_ctx,
 	uint8_t bpcc, aui;
 	bool cu_flag = false;
 	const uint8_t *rnr;
+	bool msd_cap_found = false;
 	QDF_STATUS status = QDF_STATUS_E_INVAL;
 
 	vdev = session->vdev;
@@ -4459,6 +4460,13 @@ lim_process_cu_for_probe_rsp(struct mac_context *mac_ctx,
 		return status;
 	}
 
+	util_get_bvmlie_msd_cap(ml_ie, ml_ie_total_len, &msd_cap_found,
+				NULL);
+	if (msd_cap_found) {
+		wlan_vdev_mlme_cap_clear(vdev, WLAN_VDEV_C_EMLSR_CAP);
+		pe_debug("EMLSR not supported with D2.0 AP");
+	}
+
 	status = util_get_bvmlie_persta_partner_info(ml_ie,
 						     ml_ie_total_len,
 						     &partner_info);

+ 5 - 0
core/mac/src/pe/lim/lim_process_beacon_frame.c

@@ -120,6 +120,11 @@ void lim_process_beacon_mlo(struct mac_context *mac_ctx,
 		return;
 	}
 
+	if (bcn_ptr->mlo_ie.mlo_ie.medium_sync_delay_info_present) {
+		wlan_vdev_mlme_cap_clear(vdev, WLAN_VDEV_C_EMLSR_CAP);
+		pe_debug("EMLSR not supported with D2.0 AP");
+	}
+
 	for (i = 0; i < bcn_ptr->mlo_ie.mlo_ie.num_sta_profile; i++) {
 		csa_ie = NULL;
 		xcsa_ie = NULL;