From 05ea0791e31ec0d31796f91b4aee900febf39911 Mon Sep 17 00:00:00 2001 From: "Selvaraj, Sridhar" Date: Wed, 17 May 2017 12:17:03 +0530 Subject: [PATCH] qcacld-3.0: Restrict FILS caps in ext cap to STA mode only Currently, host driver sets FILS capability enable if broadcast probe response support is enabled(i.e. g_enable_bcast_probe_rsp). since this support adds FILS request params IE(which has the max channel time STA would wait for AP to respond with broadcast probe response) in probe request, FILS capability is set in ext cap. However, it is also set in SAP role which leads to scan issues with some client stations. Restrict FILS caps in ext cap to STA role only if g_enable_bcast_probe_rsp INI is set. Change-Id: Ia5fc0cbf36a4a6df3eb21015ef0508f6daa7b21d CRs-Fixed: 2048318 --- core/mac/inc/sir_api.h | 2 +- core/mac/src/pe/include/lim_session.h | 1 + core/mac/src/pe/lim/lim_process_sme_req_messages.c | 3 +++ core/mac/src/sys/legacy/src/utils/src/parser_api.c | 2 +- core/sme/src/csr/csr_api_roam.c | 5 +++++ 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h index 97a36fa979..f20023c725 100644 --- a/core/mac/inc/sir_api.h +++ b/core/mac/inc/sir_api.h @@ -1198,7 +1198,7 @@ typedef struct sSirSmeJoinReq { tSirMacPowerCapInfo powerCap; tSirSupChnl supportedChannels; tSirBssDescription bssDescription; - + bool enable_bcast_probe_rsp; } tSirSmeJoinReq, *tpSirSmeJoinReq; /* / Definition for reponse message to previously issued join request */ diff --git a/core/mac/src/pe/include/lim_session.h b/core/mac/src/pe/include/lim_session.h index 2f404d3f48..5cf84458ac 100644 --- a/core/mac/src/pe/include/lim_session.h +++ b/core/mac/src/pe/include/lim_session.h @@ -514,6 +514,7 @@ typedef struct sPESession /* Added to Support BT-AMP */ uint8_t bss_color_changing; #endif #endif + bool enable_bcast_probe_rsp; } tPESession, *tpPESession; /*------------------------------------------------------------------------- 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 ae287733a1..93b6595866 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 @@ -1635,6 +1635,9 @@ __lim_process_sme_join_req(tpAniSirGlobal mac_ctx, uint32_t *msg_buf) session->limQosEnabled = sme_join_req->isQosEnabled; session->wps_registration = sme_join_req->wps_registration; + session->enable_bcast_probe_rsp = + sme_join_req->enable_bcast_probe_rsp; + /* Store vendor specfic IE for CISCO AP */ ie_len = (bss_desc->length + sizeof(bss_desc->length) - GET_FIELD_OFFSET(tSirBssDescription, ieFields)); diff --git a/core/mac/src/sys/legacy/src/utils/src/parser_api.c b/core/mac/src/sys/legacy/src/utils/src/parser_api.c index c848d6b230..1e5fb0a6c5 100644 --- a/core/mac/src/sys/legacy/src/utils/src/parser_api.c +++ b/core/mac/src/sys/legacy/src/utils/src/parser_api.c @@ -1204,7 +1204,7 @@ populate_dot11f_ext_cap(tpAniSirGlobal pMac, #endif p_ext_cap->ext_chan_switch = 1; - if (pMac->roam.configParam.enable_bcast_probe_rsp) + if (psessionEntry && psessionEntry->enable_bcast_probe_rsp) p_ext_cap->fils_capability = 1; /* Need to calulate the num_bytes based on bits set */ diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index a428ed6f08..d7d487833e 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -14675,6 +14675,11 @@ QDF_STATUS csr_send_join_req_msg(tpAniSirGlobal pMac, uint32_t sessionId, status = QDF_STATUS_E_FAILURE; break; } + + if (pSession->pCurRoamProfile->csrPersona == QDF_STA_MODE) + csr_join_req->enable_bcast_probe_rsp = + pMac->roam.configParam.enable_bcast_probe_rsp; + status = umac_send_mb_message_to_mac(csr_join_req); if (!QDF_IS_STATUS_SUCCESS(status)) { /*