Quellcode durchsuchen

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 vor 1 Jahr
Ursprung
Commit
42c5033011
2 geänderte Dateien mit 13 neuen und 0 gelöschten Zeilen
  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;