diff --git a/core/mac/src/pe/lim/lim_process_sme_req_messages.c b/core/mac/src/pe/lim/lim_process_sme_req_messages.c index 66f81fcab7..4a40d20347 100644 --- a/core/mac/src/pe/lim/lim_process_sme_req_messages.c +++ b/core/mac/src/pe/lim/lim_process_sme_req_messages.c @@ -646,6 +646,31 @@ void lim_strip_he_ies_from_add_ies(struct mac_context *mac_ctx, } #endif +#ifdef FEATURE_WLAN_WAPI + +void lim_strip_wapi_ies_from_add_ies(struct mac_context *mac_ctx, + struct pe_session *session) +{ + struct add_ie_params *add_ie = &session->add_ie_params; + uint8_t wapiie_buff[DOT11F_IE_WAPIOPAQUE_MAX_LEN + 2]; + QDF_STATUS status; + + qdf_mem_zero(wapiie_buff, sizeof(wapiie_buff)); + + status = lim_strip_ie(mac_ctx, add_ie->probeRespBCNData_buff, + &add_ie->probeRespBCNDataLen, + DOT11F_EID_WAPIOPAQUE, ONE_BYTE, + NULL, 0, + wapiie_buff, DOT11F_IE_WAPIOPAQUE_MAX_LEN); + if (status != QDF_STATUS_SUCCESS) + pe_debug("Failed to strip WAPI IE status: %d", status); +} +#else +void lim_strip_wapi_ies_from_add_ies(struct mac_context *mac_ctx, + struct pe_session *session) +{ +} +#endif /** * lim_set_ldpc_exception() - to set allow any LDPC exception permitted * @mac_ctx: Pointer to mac context diff --git a/core/mac/src/pe/lim/lim_utils.h b/core/mac/src/pe/lim/lim_utils.h index 3b653dfe13..95ed567a0b 100644 --- a/core/mac/src/pe/lim/lim_utils.h +++ b/core/mac/src/pe/lim/lim_utils.h @@ -1068,6 +1068,18 @@ void lim_strip_he_ies_from_add_ies(struct mac_context *mac_ctx, void lim_strip_eht_ies_from_add_ies(struct mac_context *mac_ctx, struct pe_session *session); +/** + * lim_strip_wapi_ies_from_add_ies() - This function strip WAPI IE from add_ie + * @mac_ctx: pointer to mac context + * @pe_session: pointer to PE session + * + * This API is to strip WAPI IE from add_ie + * + * Return: none + */ +void lim_strip_wapi_ies_from_add_ies(struct mac_context *mac_ctx, + struct pe_session *session); + /** * lim_del_pmf_sa_query_timer() - This function deletes SA query timer * @mac_ctx: pointer to mac context diff --git a/core/mac/src/pe/sch/sch_beacon_gen.c b/core/mac/src/pe/sch/sch_beacon_gen.c index 5fbe472036..ae08e4b6e7 100644 --- a/core/mac/src/pe/sch/sch_beacon_gen.c +++ b/core/mac/src/pe/sch/sch_beacon_gen.c @@ -872,6 +872,7 @@ sch_set_fixed_beacon_fields(struct mac_context *mac_ctx, struct pe_session *sess */ lim_strip_he_ies_from_add_ies(mac_ctx, session); lim_strip_eht_ies_from_add_ies(mac_ctx, session); + lim_strip_wapi_ies_from_add_ies(mac_ctx, session); addn_ielen = session->add_ie_params.probeRespBCNDataLen; addn_ie = qdf_mem_malloc(addn_ielen);