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 78d5102ae8..c2fe02f566 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 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2020 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -488,6 +488,42 @@ lim_send_start_vdev_req(struct pe_session *session, tLimMlmStartReq *mlm_start_r mlm_start_req); } +#ifdef WLAN_FEATURE_11AX +static void lim_strip_he_ies_from_add_ies(struct mac_context *mac_ctx, + struct pe_session *session) +{ + struct add_ie_params *add_ie = &session->add_ie_params; + QDF_STATUS status; + uint8_t he_cap_buff[DOT11F_IE_HE_CAP_MAX_LEN + 2]; + uint8_t he_op_buff[DOT11F_IE_HE_OP_MAX_LEN + 2]; + + qdf_mem_zero(he_cap_buff, sizeof(he_cap_buff)); + qdf_mem_zero(he_op_buff, sizeof(he_op_buff)); + + status = lim_strip_ie(mac_ctx, add_ie->probeRespBCNData_buff, + &add_ie->probeRespBCNDataLen, + DOT11F_EID_HE_CAP, ONE_BYTE, + HE_CAP_OUI_TYPE, (uint8_t)HE_CAP_OUI_SIZE, + he_cap_buff, DOT11F_IE_HE_CAP_MAX_LEN); + if (status != QDF_STATUS_SUCCESS) + pe_debug("Failed to strip HE cap IE status: %d", status); + + + status = lim_strip_ie(mac_ctx, add_ie->probeRespBCNData_buff, + &add_ie->probeRespBCNDataLen, + DOT11F_EID_HE_OP, ONE_BYTE, + HE_OP_OUI_TYPE, (uint8_t)HE_OP_OUI_SIZE, + he_op_buff, DOT11F_IE_HE_OP_MAX_LEN); + if (status != QDF_STATUS_SUCCESS) + pe_debug("Failed to strip HE op IE status: %d", status); +} +#else +static inline void lim_strip_he_ies_from_add_ies(struct mac_context *mac_ctx, + struct pe_session *session) +{ +} +#endif + /** * __lim_handle_sme_start_bss_request() - process SME_START_BSS_REQ message *@mac_ctx: Pointer to Global MAC structure @@ -652,6 +688,8 @@ __lim_handle_sme_start_bss_request(struct mac_context *mac_ctx, uint32_t *msg_bu session->curr_op_freq, session->dot11mode); ret_code = eSIR_SME_INVALID_PARAMETERS; goto free; + } else { + lim_strip_he_ies_from_add_ies(mac_ctx, session); } session->txLdpcIniFeatureEnabled =