Prechádzať zdrojové kódy

qcacld-3.0: Populate EDCA param ie in HT mode for LL_LT_SAP

Currently EDCA param attribute added under qcn_ie but qcn_ie
will be populate in probe rsp/beacon only if connection
happens either in 6 GHz or vht mode.
Since LL_LT_SAP always comes in HT mode. This qcn_ie will
not be populated.
As part of fix, populate EDCA param attribute if LL_LT_SAP is
present irrespective of vht mode or 6 GHz connection.

Change-Id: I5d86dee0fb5e224348babd5e0f223fef6fc3a022
CRs-Fixed: 3641424
Jyoti Kumari 1 rok pred
rodič
commit
09ef6eecdd

+ 3 - 4
core/mac/src/pe/sch/sch_beacon_gen.c

@@ -727,6 +727,9 @@ sch_set_fixed_beacon_fields(struct mac_context *mac_ctx, struct pe_session *sess
 	if (session->dot11mode != MLME_DOT11_MODE_11B)
 		populate_dot11f_erp_info(mac_ctx, &bcn_2->ERPInfo, session);
 
+	populate_dot11f_qcn_ie(mac_ctx, session, &bcn_2->qcn_ie,
+			       QCN_IE_ATTR_ID_ALL);
+
 	if (session->htCapability) {
 		populate_dot11f_ht_caps(mac_ctx, session, &bcn_2->HTCaps);
 		populate_dot11f_ht_info(mac_ctx, &bcn_2->HTInfo, session);
@@ -746,8 +749,6 @@ sch_set_fixed_beacon_fields(struct mac_context *mac_ctx, struct pe_session *sess
 					     session->curr_op_freq,
 					     &bcn_2->num_transmit_power_env,
 					     false);
-		populate_dot11f_qcn_ie(mac_ctx, session, &bcn_2->qcn_ie,
-				       QCN_IE_ATTR_ID_ALL);
 	}
 
 	if (wlan_reg_is_6ghz_chan_freq(session->curr_op_freq)) {
@@ -757,8 +758,6 @@ sch_set_fixed_beacon_fields(struct mac_context *mac_ctx, struct pe_session *sess
 					     session->curr_op_freq,
 					     &bcn_2->num_transmit_power_env,
 					     false);
-		populate_dot11f_qcn_ie(mac_ctx, session, &bcn_2->qcn_ie,
-				       QCN_IE_ATTR_ID_ALL);
 	}
 
 	if (lim_is_session_he_capable(session)) {

+ 5 - 1
core/mac/src/sys/legacy/src/utils/src/parser_api.c

@@ -1653,6 +1653,9 @@ static void populate_dot11f_qcn_ie_he_params(struct mac_context *mac,
 {
 	uint16_t mcs_12_13_supp;
 
+	if (!lim_is_session_he_capable(pe_session))
+		return;
+
 	/* To fix WAPI IoT issue.*/
 	if (pe_session->encryptType == eSIR_ED_WPI)
 		return;
@@ -1733,7 +1736,8 @@ void populate_dot11f_qcn_ie(struct mac_context *mac,
 		qcn_ie->qcn_version.version = QCN_IE_VERSION_SUPPORTED;
 		qcn_ie->qcn_version.sub_version = QCN_IE_SUBVERSION_SUPPORTED;
 	}
-	if (mac->mlme_cfg->vht_caps.vht_cap_info.vht_mcs_10_11_supp) {
+	if (pe_session->vhtCapability &&
+	    mac->mlme_cfg->vht_caps.vht_cap_info.vht_mcs_10_11_supp) {
 		qcn_ie->present = 1;
 		qcn_ie->vht_mcs11_attr.present = 1;
 		qcn_ie->vht_mcs11_attr.vht_mcs_10_11_supp = 1;