From 48b7ed9b32d2ad70a7ebd06d202bf153de52f434 Mon Sep 17 00:00:00 2001 From: Vignesh Viswanathan Date: Wed, 11 Apr 2018 19:01:59 +0530 Subject: [PATCH] qcacld-3.0: Allow Ext Scan and EPNO scan beacons on PE queue Allow beacon frames received from Ext Scan or EPNO scan through the filter into PE queue. Change-Id: I491875f0e48bd2f317402b416598fe6e940e02a1 CRs-Fixed: 2226231 --- core/mac/src/pe/lim/lim_api.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/core/mac/src/pe/lim/lim_api.c b/core/mac/src/pe/lim/lim_api.c index 3ff5e7b27b78..d59c9de49edd 100644 --- a/core/mac/src/pe/lim/lim_api.c +++ b/core/mac/src/pe/lim/lim_api.c @@ -1256,6 +1256,35 @@ static QDF_STATUS pe_drop_pending_rx_mgmt_frames(tpAniSirGlobal mac_ctx, return QDF_STATUS_SUCCESS; } +/** + * pe_is_ext_scan_bcn - Check if the beacon is from Ext or EPNO scan + * + * @hdr: pointer to the 802.11 header of the frame + * @rx_pkt_info: pointer to the rx packet meta + * + * Checks if the beacon is from Ext Scan or EPNO scan + * + * Return: true or false + */ +#ifdef FEATURE_WLAN_EXTSCAN +static inline bool pe_is_ext_scan_bcn(tpSirMacMgmtHdr hdr, + uint8_t *rx_pkt_info) +{ + if ((hdr->fc.subType == SIR_MAC_MGMT_BEACON) && + (WMA_IS_EXTSCAN_SCAN_SRC(rx_pkt_info) || + WMA_IS_EPNO_SCAN_SRC(rx_pkt_info))) + return true; + + return false; +} +#else +static inline bool pe_is_ext_scan_bcn(tpSirMacMgmtHdr hdr, + uint8_t *rx_pkt_info) +{ + return false; +} +#endif + /** * pe_filter_drop_bcn_probe_frame - Apply filter on the received frame * @@ -1280,6 +1309,9 @@ static bool pe_filter_bcn_probe_frame(tpAniSirGlobal mac_ctx, tpSirMacCapabilityInfo bcn_caps; tSirMacSSid bcn_ssid; + if (pe_is_ext_scan_bcn(hdr, rx_pkt_info)) + return true; + filter = &mac_ctx->bcn_filter; /*