Browse Source

qcacld-3.0: Include BSS max idle IE only for HE connection

Include the BSS max idle period IE only for HE connection and
set configure the protected keep alive option bit.

Change-Id: I32169a3945dfb18f46d1339b9dcad1fb355ddbbc
CRs-Fixed: 2970547
Kiran Kumar Lokere 3 years ago
parent
commit
b23ca3c75d

+ 1 - 0
core/mac/src/include/parser_api.h

@@ -1157,6 +1157,7 @@ void populate_dot11f_qcn_ie(struct mac_context *mac,
 			    uint8_t attr_id);
 
 void populate_dot11f_bss_max_idle(struct mac_context *mac,
+				  struct pe_session *session,
 				  tDot11fIEbss_max_idle_period *max_idle_ie);
 
 #ifdef WLAN_FEATURE_FILS_SK

+ 2 - 1
core/mac/src/pe/lim/lim_send_management_frames.c

@@ -2318,7 +2318,8 @@ lim_send_assoc_req_mgmt_frame(struct mac_context *mac_ctx,
 	populate_dot11f_qcn_ie(mac_ctx, pe_session,
 			       &frm->qcn_ie, QCN_IE_ATTR_ID_ALL);
 
-	populate_dot11f_bss_max_idle(mac_ctx, &frm->bss_max_idle_period);
+	populate_dot11f_bss_max_idle(mac_ctx, pe_session,
+				     &frm->bss_max_idle_period);
 
 	if (lim_is_session_he_capable(pe_session)) {
 		pe_debug("Populate HE IEs");

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

@@ -1584,13 +1584,16 @@ static void populate_dot11f_qcn_ie_he_params(struct mac_context *mac,
 #endif /* WLAN_FEATURE_11AX */
 
 void populate_dot11f_bss_max_idle(struct mac_context *mac,
+				  struct pe_session *session,
 				  tDot11fIEbss_max_idle_period *max_idle_ie)
 {
 	max_idle_ie->present = 0;
-	if (mac->mlme_cfg->sta.bss_max_idle_period) {
+	if (lim_is_session_he_capable(session) &&
+	    mac->mlme_cfg->sta.bss_max_idle_period) {
 		max_idle_ie->present = 1;
 		max_idle_ie->max_idle_period =
 			mac->mlme_cfg->sta.bss_max_idle_period;
+		max_idle_ie->prot_keep_alive_reqd = session->limRmfEnabled;
 	}
 }