From 2231a23f4461644542a3f7d4ac17f9be72146982 Mon Sep 17 00:00:00 2001 From: Karthik Kantamneni Date: Tue, 11 Sep 2018 15:45:55 +0530 Subject: [PATCH] qcacld-3.0: Add MLME OCE CFG items Add OCE CFG items based on converged cfg component, remove related legacy code. Change-Id: I976981048be2df3f429003fc5db13f48a6ad27d0 CRs-Fixed: 2313157 --- components/mlme/core/src/wlan_mlme_main.c | 54 +++- components/mlme/dispatcher/inc/cfg_mlme.h | 2 + components/mlme/dispatcher/inc/cfg_mlme_oce.h | 287 ++++++++++++++++++ .../mlme/dispatcher/inc/wlan_mlme_api.h | 50 +++ .../dispatcher/inc/wlan_mlme_public_struct.h | 18 ++ .../mlme/dispatcher/inc/wlan_mlme_ucfg_api.h | 91 ++++++ .../mlme/dispatcher/src/wlan_mlme_api.c | 70 +++++ core/hdd/inc/wlan_hdd_cfg.h | 262 ---------------- core/hdd/src/wlan_hdd_cfg.c | 100 +----- core/hdd/src/wlan_hdd_cfg80211.c | 57 +++- core/hdd/src/wlan_hdd_main.c | 8 - core/sme/inc/sme_api.h | 11 - core/sme/src/common/sme_api.c | 20 -- core/sme/src/csr/csr_api_roam.c | 8 +- 14 files changed, 623 insertions(+), 415 deletions(-) create mode 100644 components/mlme/dispatcher/inc/cfg_mlme_oce.h diff --git a/components/mlme/core/src/wlan_mlme_main.c b/components/mlme/core/src/wlan_mlme_main.c index fd554acccb..83c0653092 100644 --- a/components/mlme/core/src/wlan_mlme_main.c +++ b/components/mlme/core/src/wlan_mlme_main.c @@ -21,7 +21,7 @@ #include "wlan_mlme_main.h" #include "cfg_ucfg_api.h" -#include "wlan_scan_public_structs.h" +#include "wmi_unified.h" struct wlan_mlme_psoc_obj *mlme_get_psoc_obj(struct wlan_objmgr_psoc *psoc) { @@ -640,6 +640,57 @@ static void mlme_init_scoring_cfg(struct wlan_objmgr_psoc *psoc, cfg_get(psoc, CFG_SCORING_OCE_WAN_SCORE_IDX_15_TO_12)); } +static void mlme_init_oce_cfg(struct wlan_objmgr_psoc *psoc, + struct wlan_mlme_oce *oce) +{ + uint8_t val; + bool rssi_assoc_reject_enabled; + bool probe_req_rate_enabled; + bool probe_resp_rate_enabled; + bool beacon_rate_enabled; + bool probe_req_deferral_enabled; + bool fils_discovery_sap_enabled; + bool esp_for_roam_enabled; + + oce->enable_bcast_probe_rsp = + cfg_get(psoc, CFG_ENABLE_BCAST_PROBE_RESP); + oce->oce_sta_enabled = cfg_get(psoc, CFG_OCE_ENABLE_STA); + oce->oce_sap_enabled = cfg_get(psoc, CFG_OCE_ENABLE_SAP); + oce->fils_enabled = cfg_get(psoc, CFG_IS_FILS_ENABLED); + + rssi_assoc_reject_enabled = + cfg_get(psoc, CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT); + probe_req_rate_enabled = cfg_get(psoc, CFG_OCE_PROBE_REQ_RATE); + probe_resp_rate_enabled = cfg_get(psoc, CFG_OCE_PROBE_RSP_RATE); + beacon_rate_enabled = cfg_get(psoc, CFG_OCE_BEACON_RATE); + probe_req_deferral_enabled = + cfg_get(psoc, CFG_ENABLE_PROBE_REQ_DEFERRAL); + fils_discovery_sap_enabled = + cfg_get(psoc, CFG_ENABLE_FILS_DISCOVERY_SAP); + esp_for_roam_enabled = cfg_get(psoc, CFG_ENABLE_ESP_FEATURE); + + if (!rssi_assoc_reject_enabled || + !oce->enable_bcast_probe_rsp) { + oce->oce_sta_enabled = 0; + } + + val = (probe_req_rate_enabled * + WMI_VDEV_OCE_PROBE_REQUEST_RATE_FEATURE_BITMAP) + + (probe_resp_rate_enabled * + WMI_VDEV_OCE_PROBE_RESPONSE_RATE_FEATURE_BITMAP) + + (beacon_rate_enabled * + WMI_VDEV_OCE_BEACON_RATE_FEATURE_BITMAP) + + (probe_req_deferral_enabled * + WMI_VDEV_OCE_PROBE_REQUEST_DEFERRAL_FEATURE_BITMAP) + + (fils_discovery_sap_enabled * + WMI_VDEV_OCE_FILS_DISCOVERY_FRAME_FEATURE_BITMAP) + + (esp_for_roam_enabled * + WMI_VDEV_OCE_ESP_FEATURE_BITMAP) + + (rssi_assoc_reject_enabled * + WMI_VDEV_OCE_REASSOC_REJECT_FEATURE_BITMAP); + oce->feature_bitmap = val; +} + QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc) { struct wlan_mlme_psoc_obj *mlme_obj; @@ -665,6 +716,7 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc) mlme_init_sta_cfg(psoc, &mlme_cfg->sta); mlme_init_lfr_cfg(psoc, &mlme_cfg->lfr); mlme_init_scoring_cfg(psoc, &mlme_cfg->scoring); + mlme_init_oce_cfg(psoc, &mlme_cfg->oce); return status; } diff --git a/components/mlme/dispatcher/inc/cfg_mlme.h b/components/mlme/dispatcher/inc/cfg_mlme.h index a27fa71583..55689a7575 100644 --- a/components/mlme/dispatcher/inc/cfg_mlme.h +++ b/components/mlme/dispatcher/inc/cfg_mlme.h @@ -36,6 +36,7 @@ #include "cfg_sap_protection.h" #include "cfg_mlme_sap.h" #include "cfg_mlme_scoring.h" +#include "cfg_mlme_oce.h" /* Please Maintain Alphabetic Order here */ #define CFG_MLME_ALL \ @@ -45,6 +46,7 @@ CFG_LFR_ALL \ CFG_MBO_ALL \ CFG_OBSS_HT40_ALL \ + CFG_OCE_ALL \ CFG_QOS_ALL \ CFG_RATES_ALL \ CFG_SAP_ALL \ diff --git a/components/mlme/dispatcher/inc/cfg_mlme_oce.h b/components/mlme/dispatcher/inc/cfg_mlme_oce.h new file mode 100644 index 0000000000..1b83900484 --- /dev/null +++ b/components/mlme/dispatcher/inc/cfg_mlme_oce.h @@ -0,0 +1,287 @@ +/* + * Copyright (c) 2012-2018 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 + * above copyright notice and this permission notice appear in all + * copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL + * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE + * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +/** + * DOC: This file contains centralized definitions of converged configuration. + */ + +#ifndef __CFG_MLME_OCE_H +#define __CFG_MLME_OCE_H + +/* + * + * g_enable_bcast_probe_rsp - Enable Broadcast probe response. + * @Min: 0 + * @Max: 1 + * @Default: 1 + * + * This ini is used to enable/disable broadcast probe response. + * If this is disabled then OCE ini oce_sta_enable will also be + * disabled and OCE IE will not be sent in frames. + * + * Related: None + * + * Supported Feature: FILS + * + * Usage: External + * + * + */ +#define CFG_ENABLE_BCAST_PROBE_RESP CFG_INI_BOOL( \ + "g_enable_bcast_probe_rsp", \ + 1, \ + "Enable Broadcast probe response") + +/* + * + * oce_sta_enable - Enable/disable oce feature for STA + * @Min: 0 + * @Max: 1 + * @Default: 1 + * + * This ini is used to enable/disable oce feature for STA + * + * Related: None + * + * Supported Feature: OCE + * + * Usage: External + * + * + */ +#define CFG_OCE_ENABLE_STA CFG_INI_BOOL( \ + "oce_sta_enable", \ + 1, \ + "Enable/disable oce feature for STA") + +/* + * + * oce_sap_enable - Enable/disable oce feature for SAP + * @Min: 0 + * @Max: 1 + * @Default: 1 + * + * This ini is used to enable/disable oce feature for SAP + * + * Related: None + * + * Supported Feature: OCE + * + * Usage: External + * + * + */ +#define CFG_OCE_ENABLE_SAP CFG_INI_BOOL( \ + "oce_sap_enable", \ + 1, \ + "Enable/disable oce feature for SAP") + +/* + * oce_enable_rssi_assoc_reject - Enable/disable rssi based assoc rejection + * @Min: 0 + * @Max: 1 + * @Default: 1 + * + * This ini is used to enable/disable rssi based assoc rejection. If this is + * disabled then OCE ini oce_sta_enable will also be disabled and OCE IE will + * not be sent in frames. + * + * Related: None + * + * Supported Feature: OCE + * + * Usage: External + * + * + */ +#define CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT CFG_INI_BOOL( \ + "oce_enable_rssi_assoc_reject", \ + 1, \ + "Enable/disable rssi based assoc rejection") + +/* + * + * oce_enable_probe_req_rate - Set probe request rate + * @Min: 0 + * @Max: 1 + * @Default: 0 + * + * This ini is used to set probe request rate to 5.5Mbps as per OCE requirement + * in 2.4G band + * + * Related: None + * + * Supported Feature: OCE + * + * Usage: External + * + * + */ +#define CFG_OCE_PROBE_REQ_RATE CFG_INI_BOOL( \ + "oce_enable_probe_req_rate", \ + 0, \ + "Set probe request rate for OCE") + +/* + * + * oce_enable_probe_resp_rate - Set probe response rate + * @Min: 0 + * @Max: 1 + * @Default: 0 + * + * This ini is used to set probe response rate to 5.5Mbps as per OCE requirement + * in 2.4G band + * + * Related: None + * + * Supported Feature: OCE + * + * Usage: External + * + * + */ +#define CFG_OCE_PROBE_RSP_RATE CFG_INI_BOOL( \ + "oce_enable_probe_resp_rate", \ + 0, \ + "Set probe response rate for OCE") + +/* + * + * oce_enable_beacon_rate - Set beacon rate + * @Min: 0 + * @Max: 1 + * @Default: 0 + * + * This ini is used to set beacon rate to 5.5Mbps as per OCE requirement in + * 2.4G band + * + * Related: None + * + * Supported Feature: OCE + * + * Usage: External + * + * + */ +#define CFG_OCE_BEACON_RATE CFG_INI_BOOL( \ + "oce_enable_beacon_rate", \ + 0, \ + "Set Beacon rate for OCE") +/* + * + * oce_enable_probe_req_deferral - Enable/disable probe request deferral + * @Min: 0 + * @Max: 1 + * @Default: 0 + * + * This ini is used to enable/disable probe request deferral as per OCE spec + * + * Related: None + * + * Supported Feature: OCE + * + * Usage: External + * + * + */ +#define CFG_ENABLE_PROBE_REQ_DEFERRAL CFG_INI_BOOL( \ + "oce_enable_probe_req_deferral", \ + 0, \ + "Enable/disable probe request deferral for OCE") + +/* + * + * oce_enable_fils_discovery_sap - Enable/disable fils discovery in sap mode + * @Min: 0 + * @Max: 1 + * @Default: 1 + * + * This ini is used to enable/disable fils discovery in sap mode + * + * Related: None + * + * Supported Feature: FILS + * + * Usage: External + * + * + */ +#define CFG_ENABLE_FILS_DISCOVERY_SAP CFG_INI_BOOL( \ + "oce_enable_fils_discovery_sap", \ + 1, \ + "Enable/disable fils discovery in sap mode") + +/* + * + * enable_esp_for_roam - Enable/disable esp feature + * @Min: 0 + * @Max: 1 + * @Default: 0 + * + * This ini is used to enable/disable ESP(Estimated service parameters) IE + * parsing and decides whether firmware will include this in its scoring algo. + * + * Related: None + * + * Supported Feature: STA + * + * Usage: External + * + * + */ +#define CFG_ENABLE_ESP_FEATURE CFG_INI_BOOL( \ + "enable_esp_for_roam", \ + 0, \ + "Enable/disable esp feature") + +/* + * + * g_is_fils_enabled - Enable/Disable FILS support in driver + * @Min: 0 + * @Max: 1 + * @Default: 1 + * + * This ini is used to enable/disable FILS support in driver + * Driver will update config to supplicant based on this config. + * + * Related: None + * + * Supported Feature: FILS + * + * Usage: External + * + * + */ +#define CFG_IS_FILS_ENABLED CFG_INI_BOOL( \ + "g_is_fils_enabled", \ + 1, \ + "Enable/disable support") + +#define CFG_OCE_ALL \ + CFG(CFG_ENABLE_BCAST_PROBE_RESP) \ + CFG(CFG_OCE_ENABLE_STA) \ + CFG(CFG_OCE_ENABLE_SAP) \ + CFG(CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT) \ + CFG(CFG_OCE_PROBE_REQ_RATE) \ + CFG(CFG_OCE_PROBE_RSP_RATE) \ + CFG(CFG_OCE_BEACON_RATE) \ + CFG(CFG_ENABLE_PROBE_REQ_DEFERRAL) \ + CFG(CFG_ENABLE_FILS_DISCOVERY_SAP) \ + CFG(CFG_ENABLE_ESP_FEATURE) \ + CFG(CFG_IS_FILS_ENABLED) +#endif /* __CFG_MLME_OCE_H */ diff --git a/components/mlme/dispatcher/inc/wlan_mlme_api.h b/components/mlme/dispatcher/inc/wlan_mlme_api.h index 8489022739..4803ffd485 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_api.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_api.h @@ -273,4 +273,54 @@ QDF_STATUS wlan_mlme_get_sap_reduced_beacon_interval(struct wlan_objmgr_psoc QDF_STATUS wlan_mlme_get_sap_chan_switch_rate_enabled(struct wlan_objmgr_psoc *psoc, bool *value); +/** + * wlan_mlme_get_oce_sta_enabled_info() - Get the OCE feature enable + * info for STA + * @psoc: pointer to psoc object + * @value: pointer to the value which will be filled for the caller + * + * Return: QDF Status + */ +QDF_STATUS wlan_mlme_get_oce_sta_enabled_info(struct wlan_objmgr_psoc *psoc, + bool *value); + +/** + * wlan_mlme_get_oce_sap_enabled_info() - Get the OCE feature enable + * info for SAP + * @psoc: pointer to psoc object + * @value: pointer to the value which will be filled for the caller + * + * Return: QDF Status + */ +QDF_STATUS wlan_mlme_get_oce_sap_enabled_info(struct wlan_objmgr_psoc *psoc, + bool *value); + +/** + * wlan_mlme_get_fils_enabled_info() - Get the fils enable info for driver + * @psoc: pointer to psoc object + * @value: pointer to the value which will be filled for the caller + * + * Return: QDF Status + */ +QDF_STATUS wlan_mlme_get_fils_enabled_info(struct wlan_objmgr_psoc *psoc, + bool *value); +/** + * wlan_mlme_set_fils_enabled_info() - Set the fils enable info for driver + * @psoc: pointer to psoc object + * @value: value that needs to be set from the caller + * + * Return: QDF Status + */ +QDF_STATUS wlan_mlme_set_fils_enabled_info(struct wlan_objmgr_psoc *psoc, + bool value); + +/** + * wlan_mlme_set_enable_bcast_probe_rsp() - Set enable bcast probe resp info + * @psoc: pointer to psoc object + * @value: value that needs to be set from the caller + * + * Return: QDF Status + */ +QDF_STATUS wlan_mlme_set_enable_bcast_probe_rsp(struct wlan_objmgr_psoc *psoc, + bool value); #endif /* _WLAN_MLME_API_H_ */ diff --git a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h index 78b29fd38d..fe1b504a29 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h @@ -617,6 +617,23 @@ struct wlan_mlme_scoring_cfg { uint32_t band_weight_per_index; }; +/** + * struct wlan_mlme_oce - OCE related config items + * @enable_bcast_probe_rsp: enable broadcast probe response + * @oce_sta_enabled: enable/disable oce feature for sta + * @oce_sap_enabled: enable/disable oce feature for sap + * @fils_enabled: enable/disable fils support + * @feature_bitmap: oce feature bitmap + * + */ +struct wlan_mlme_oce { + bool enable_bcast_probe_rsp; + bool oce_sta_enabled; + bool oce_sap_enabled; + bool fils_enabled; + uint8_t feature_bitmap; +}; + /** * struct wlan_mlme_cfg - MLME config items * @ht_cfg: HT related CFG Items @@ -643,6 +660,7 @@ struct wlan_mlme_cfg { struct wlan_mlme_cfg_sap sap_cfg; struct wlan_mlme_sta_cfg sta; struct wlan_mlme_scoring_cfg scoring; + struct wlan_mlme_oce oce; }; #endif diff --git a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h index ba75766e60..98fc5b2c28 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h @@ -575,4 +575,95 @@ QDF_STATUS ucfg_mlme_get_sap_chan_switch_rate_enabled(struct wlan_objmgr_psoc return wlan_mlme_get_sap_chan_switch_rate_enabled(psoc, value); } +/** + * ucfg_mlme_get_oce_sta_enabled_info() - Get OCE feature enable/disable + * info for STA + * + * @psoc: pointer to psoc object + * @value: pointer to the value which will be filled for the caller + * + * Inline UCFG API to be used by HDD/OSIF callers to get the + * OCE STA feature enable value + * + * Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE + */ +static inline +QDF_STATUS ucfg_mlme_get_oce_sta_enabled_info(struct wlan_objmgr_psoc *psoc, + bool *value) +{ + return wlan_mlme_get_oce_sta_enabled_info(psoc, value); +} + +/** + * ucfg_mlme_get_oce_sap_enabled_info() - Get OCE feature enable/disable + * info for SAP + * + * @psoc: pointer to psoc object + * @value: pointer to the value which will be filled for the caller + * + * Inline UCFG API to be used by HDD/OSIF callers to get the + * OCE SAP feature enable value + * + * Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE + */ +static inline +QDF_STATUS ucfg_mlme_get_oce_sap_enabled_info(struct wlan_objmgr_psoc *psoc, + bool *value) +{ + return wlan_mlme_get_oce_sap_enabled_info(psoc, value); +} + +/** + * ucfg_mlme_get_fils_enabled_info() - Get fils enable/disable info + * + * @psoc: pointer to psoc object + * @value: pointer to the value which will be filled for the caller + * + * Inline UCFG API to be used by HDD/OSIF callers to get the + * fils enable value + * + * Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE + */ +static inline +QDF_STATUS ucfg_mlme_get_fils_enabled_info(struct wlan_objmgr_psoc *psoc, + bool *value) +{ + return wlan_mlme_get_fils_enabled_info(psoc, value); +} + +/** + * ucfg_mlme_set_fils_enabled_info() - Set fils enable info + * + * @psoc: pointer to psoc object + * @value: value that needs to be set from the caller + * + * Inline UCFG API to be used by HDD/OSIF callers to set the + * fils enable value + * + * Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE + */ +static inline +QDF_STATUS ucfg_mlme_set_fils_enabled_info(struct wlan_objmgr_psoc *psoc, + bool value) +{ + return wlan_mlme_set_fils_enabled_info(psoc, value); +} + +/** + * ucfg_mlme_set_enable_bcast_probe_rsp() - Set enable bcast probe resp info + * + * @psoc: pointer to psoc object + * @value: value that needs to be set from the caller + * + * Inline UCFG API to be used by HDD/OSIF callers to set the + * enable bcast probe resp info + * + * Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE + */ +static inline +QDF_STATUS ucfg_mlme_set_enable_bcast_probe_rsp(struct wlan_objmgr_psoc *psoc, + bool value) +{ + return wlan_mlme_set_enable_bcast_probe_rsp(psoc, value); +} #endif /* _WLAN_MLME_UCFG_API_H_ */ diff --git a/components/mlme/dispatcher/src/wlan_mlme_api.c b/components/mlme/dispatcher/src/wlan_mlme_api.c index 97243d733a..f287bb1160 100644 --- a/components/mlme/dispatcher/src/wlan_mlme_api.c +++ b/components/mlme/dispatcher/src/wlan_mlme_api.c @@ -448,3 +448,73 @@ QDF_STATUS wlan_mlme_get_sap_chan_switch_rate_enabled(struct wlan_objmgr_psoc return QDF_STATUS_SUCCESS; } + +QDF_STATUS wlan_mlme_get_oce_sta_enabled_info(struct wlan_objmgr_psoc *psoc, + bool *value) +{ + struct wlan_mlme_psoc_obj *mlme_obj = mlme_get_psoc_obj(psoc); + + if (!mlme_obj) { + mlme_err("Failed to get MLME Obj"); + return QDF_STATUS_E_FAILURE; + } + + *value = mlme_obj->cfg.oce.oce_sta_enabled; + return QDF_STATUS_SUCCESS; +} + +QDF_STATUS wlan_mlme_get_oce_sap_enabled_info(struct wlan_objmgr_psoc *psoc, + bool *value) +{ + struct wlan_mlme_psoc_obj *mlme_obj = mlme_get_psoc_obj(psoc); + + if (!mlme_obj) { + mlme_err("Failed to get MLME Obj"); + return QDF_STATUS_E_FAILURE; + } + + *value = mlme_obj->cfg.oce.oce_sap_enabled; + return QDF_STATUS_SUCCESS; +} + +QDF_STATUS wlan_mlme_get_fils_enabled_info(struct wlan_objmgr_psoc *psoc, + bool *value) +{ + struct wlan_mlme_psoc_obj *mlme_obj = mlme_get_psoc_obj(psoc); + + if (!mlme_obj) { + mlme_err("Failed to get MLME Obj"); + return QDF_STATUS_E_FAILURE; + } + + *value = mlme_obj->cfg.oce.fils_enabled; + return QDF_STATUS_SUCCESS; +} + +QDF_STATUS wlan_mlme_set_fils_enabled_info(struct wlan_objmgr_psoc *psoc, + bool value) +{ + struct wlan_mlme_psoc_obj *mlme_obj = mlme_get_psoc_obj(psoc); + + if (!mlme_obj) { + mlme_err("Failed to get MLME Obj"); + return QDF_STATUS_E_FAILURE; + } + + mlme_obj->cfg.oce.fils_enabled = value; + return QDF_STATUS_SUCCESS; +} + +QDF_STATUS wlan_mlme_set_enable_bcast_probe_rsp(struct wlan_objmgr_psoc *psoc, + bool value) +{ + struct wlan_mlme_psoc_obj *mlme_obj = mlme_get_psoc_obj(psoc); + + if (!mlme_obj) { + mlme_err("Failed to get MLME Obj"); + return QDF_STATUS_E_FAILURE; + } + + mlme_obj->cfg.oce.enable_bcast_probe_rsp = value; + return QDF_STATUS_SUCCESS; +} diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h index d58a7acd1c..2f426bcbc1 100644 --- a/core/hdd/inc/wlan_hdd_cfg.h +++ b/core/hdd/inc/wlan_hdd_cfg.h @@ -8851,53 +8851,6 @@ enum hdd_wext_control { #define CFG_EXTWOW_TCP_RX_TIMEOUT_DEFAULT (200) #endif -/* - * - * g_is_fils_enabled - Enable/Disable FILS support in driver - * @Min: 0 - * @Max: 1 - * @Default: 1 - * - * This ini is used to enable/disable FILS support in driver - * Driver will update config to supplicant based on this config. - * - * Related: None - * - * Supported Feature: FILS - * - * Usage: External - * - * - */ -#define CFG_IS_FILS_ENABLED_NAME "g_is_fils_enabled" -#define CFG_IS_FILS_ENABLED_DEFAULT (1) -#define CFG_IS_FILS_ENABLED_MIN (0) -#define CFG_IS_FILS_ENABLED_MAX (1) - -/* - * - * g_enable_bcast_probe_rsp - Enable Broadcast probe response. - * @Min: 0 - * @Max: 1 - * @Default: 1 - * - * This ini is used to enable/disable broadcast probe response. - * If this is disabled then OCE ini oce_sta_enable will also be - * disabled and OCE IE will not be sent in frames. - * - * Related: None - * - * Supported Feature: FILS - * - * Usage: External - * - * - */ -#define CFG_ENABLE_BCAST_PROBE_RESP_NAME "g_enable_bcast_probe_rsp" -#define CFG_ENABLE_BCAST_PROBE_RESP_MIN (0) -#define CFG_ENABLE_BCAST_PROBE_RESP_MAX (1) -#define CFG_ENABLE_BCAST_PROBE_RESP_DEFAULT (1) - /** * arp_ac_category - ARP access category * @Min: 0 @@ -9708,50 +9661,6 @@ enum hdd_external_acs_policy { #define CFG_ITO_REPEAT_COUNT_MAX (5) #define CFG_ITO_REPEAT_COUNT_DEFAULT (0) -/* - * - * oce_sta_enable - Enable/disable oce feature for STA - * @Min: 0 - * @Max: 1 - * @Default: 1 - * - * This ini is used to enable/disable oce feature for STA - * - * Related: None - * - * Supported Feature: OCE - * - * Usage: External - * - * - */ -#define CFG_OCE_ENABLE_STA_NAME "oce_sta_enable" -#define CFG_OCE_ENABLE_STA_MIN (0) -#define CFG_OCE_ENABLE_STA_MAX (1) -#define CFG_OCE_ENABLE_STA_DEFAULT (1) - -/* - * - * oce_sap_enable - Enable/disable oce feature for SAP - * @Min: 0 - * @Max: 1 - * @Default: 1 - * - * This ini is used to enable/disable oce feature for SAP - * - * Related: None - * - * Supported Feature: OCE - * - * Usage: External - * - * - */ -#define CFG_OCE_ENABLE_SAP_NAME "oce_sap_enable" -#define CFG_OCE_ENABLE_SAP_MIN (0) -#define CFG_OCE_ENABLE_SAP_MAX (1) -#define CFG_OCE_ENABLE_SAP_DEFAULT (1) - /* * * gEnableLPRx - Enable/Disable LPRx @@ -9990,166 +9899,6 @@ enum hdd_external_acs_policy { #define CFG_DFS_BEACON_TX_ENHANCED_MAX (1) #define CFG_DFS_BEACON_TX_ENHANCED_DEFAULT (0) -/* - * oce_enable_rssi_assoc_reject - Enable/disable rssi based assoc rejection - * @Min: 0 - * @Max: 1 - * @Default: 1 - * - * This ini is used to enable/disable rssi based assoc rejection. If this is - * disabled then OCE ini oce_sta_enable will also be disabled and OCE IE will - * not be sent in frames. - * - * Related: None - * - * Supported Feature: OCE - * - * Usage: External - * - * - */ -#define CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_NAME \ - "oce_enable_rssi_assoc_reject" -#define CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_MIN (0) -#define CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_MAX (1) -#define CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_DEFAULT (1) - -/* - * - * oce_enable_probe_req_rate - Set probe request rate - * @Min: 0 - * @Max: 1 - * @Default: 0 - * - * This ini is used to set probe request rate to 5.5Mbps as per OCE requirement - * in 2.4G band - * - * Related: None - * - * Supported Feature: OCE - * - * Usage: External - * - * - */ -#define CFG_OCE_PROBE_REQ_RATE_NAME "oce_enable_probe_req_rate" -#define CFG_OCE_PROBE_REQ_RATE_MIN (0) -#define CFG_OCE_PROBE_REQ_RATE_MAX (1) -#define CFG_OCE_PROBE_REQ_RATE_DEFAULT (1) - -/* - * - * oce_enable_probe_resp_rate - Set probe response rate - * @Min: 0 - * @Max: 1 - * @Default: 0 - * - * This ini is used to set probe response rate to 5.5Mbps as per OCE requirement - * in 2.4G band - * - * Related: None - * - * Supported Feature: OCE - * - * Usage: External - * - * - */ -#define CFG_OCE_PROBE_RSP_RATE_NAME "oce_enable_probe_resp_rate" -#define CFG_OCE_PROBE_RSP_RATE_MIN (0) -#define CFG_OCE_PROBE_RSP_RATE_MAX (1) -#define CFG_OCE_PROBE_RSP_RATE_DEFAULT (0) - -/* - * - * oce_enable_beacon_rate - Set beacon rate - * @Min: 0 - * @Max: 1 - * @Default: 0 - * - * This ini is used to set beacon rate to 5.5Mbps as per OCE requirement in - * 2.4G band - * - * Related: None - * - * Supported Feature: OCE - * - * Usage: External - * - * - */ -#define CFG_OCE_BEACON_RATE_NAME "oce_enable_beacon_rate" -#define CFG_OCE_BEACON_RATE_MIN (0) -#define CFG_OCE_BEACON_RATE_MAX (1) -#define CFG_OCE_BEACON_RATE_DEFAULT (0) - -/* - * - * oce_enable_probe_req_deferral - Enable/disable probe request deferral - * @Min: 0 - * @Max: 1 - * @Default: 0 - * - * This ini is used to enable/disable probe request deferral as per OCE spec - * - * Related: None - * - * Supported Feature: OCE - * - * Usage: External - * - * - */ -#define CFG_ENABLE_PROBE_REQ_DEFERRAL_NAME "oce_enable_probe_req_deferral" -#define CFG_ENABLE_PROBE_REQ_DEFERRAL_MIN (0) -#define CFG_ENABLE_PROBE_REQ_DEFERRAL_MAX (1) -#define CFG_ENABLE_PROBE_REQ_DEFERRAL_DEFAULT (1) - -/* - * - * oce_enable_fils_discovery_sap - Enable/disable fils discovery in sap mode - * @Min: 0 - * @Max: 1 - * @Default: 0 - * - * This ini is used to enable/disable fils discovery in sap mode - * - * Related: None - * - * Supported Feature: FILS - * - * Usage: External - * - * - */ -#define CFG_ENABLE_FILS_DISCOVERY_SAP_NAME "oce_enable_fils_discovery_sap" -#define CFG_ENABLE_FILS_DISCOVERY_SAP_MIN (0) -#define CFG_ENABLE_FILS_DISCOVERY_SAP_MAX (1) -#define CFG_ENABLE_FILS_DISCOVERY_SAP_DEFAULT (1) - -/* - * - * enable_esp_for_roam - Enable/disable esp feature - * @Min: 0 - * @Max: 1 - * @Default: 0 - * - * This ini is used to enable/disable ESP(Estimated service parameters) IE - * parsing and decides whether firmware will include this in its scoring algo. - * - * Related: None - * - * Supported Feature: STA - * - * Usage: External - * - * - */ -#define CFG_ENABLE_ESP_FEATURE_NAME "enable_esp_for_roam" -#define CFG_ENABLE_ESP_FEATURE_MIN (0) -#define CFG_ENABLE_ESP_FEATURE_MAX (1) -#define CFG_ENABLE_ESP_FEATURE_DEFAULT (1) - /* * * btm_offload_config - Configure BTM @@ -11643,7 +11392,6 @@ struct hdd_config { restart_beaconing_on_chan_avoid_event; enum active_apf_mode active_uc_apf_mode; enum active_apf_mode active_mc_bc_apf_mode; - bool enable_bcast_probe_rsp; uint8_t he_dynamic_frag_support; #ifdef WLAN_FEATURE_11AX bool enable_ul_mimo; @@ -11687,8 +11435,6 @@ struct hdd_config { uint8_t max_mpdus_inampdu; enum pmo_auto_pwr_detect_failure_mode auto_pwr_save_fail_mode; uint8_t ito_repeat_count; - bool oce_sta_enabled; - bool oce_sap_enabled; bool enable_11d_in_world_mode; /* 5G preference parameters for boosting RSSI */ bool enable_5g_band_pref; @@ -11706,7 +11452,6 @@ struct hdd_config { int8_t rssi_thresh_offset_5g; uint32_t scan_11d_interval; bool is_bssid_hint_priority; - bool is_fils_enabled; uint16_t wlm_latency_enable; uint16_t wlm_latency_level; uint32_t wlm_latency_flags_normal; @@ -11718,13 +11463,6 @@ struct hdd_config { #endif uint8_t enable_phy_reg_retention; uint8_t dfs_beacon_tx_enhanced; - bool rssi_assoc_reject_enabled; - bool oce_probe_req_rate_enabled; - bool oce_probe_resp_rate_enabled; - bool oce_beacon_rate_enabled; - bool probe_req_deferral_enabled; - bool fils_discovery_sap_enabled; - bool esp_for_roam_enabled; uint32_t btm_offload_config; #ifdef WLAN_FEATURE_SAE bool is_sae_enabled; diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c index 73706ae213..c1b0558ac6 100644 --- a/core/hdd/src/wlan_hdd_cfg.c +++ b/core/hdd/src/wlan_hdd_cfg.c @@ -3652,13 +3652,6 @@ struct reg_table_entry g_registry_table[] = { CFG_ACTIVE_MC_BC_APF_MODE_MIN, CFG_ACTIVE_MC_BC_APF_MODE_MAX), - REG_VARIABLE(CFG_ENABLE_BCAST_PROBE_RESP_NAME, WLAN_PARAM_Integer, - struct hdd_config, enable_bcast_probe_rsp, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_ENABLE_BCAST_PROBE_RESP_DEFAULT, - CFG_ENABLE_BCAST_PROBE_RESP_MIN, - CFG_ENABLE_BCAST_PROBE_RESP_MAX), - #ifdef WLAN_FEATURE_11AX REG_VARIABLE(CFG_ENABLE_UL_MIMO_NAME, WLAN_PARAM_Integer, struct hdd_config, enable_ul_mimo, @@ -3885,20 +3878,6 @@ struct reg_table_entry g_registry_table[] = { CFG_ITO_REPEAT_COUNT_MIN, CFG_ITO_REPEAT_COUNT_MAX), - REG_VARIABLE(CFG_OCE_ENABLE_STA_NAME, WLAN_PARAM_Integer, - struct hdd_config, oce_sta_enabled, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_OCE_ENABLE_STA_DEFAULT, - CFG_OCE_ENABLE_STA_MIN, - CFG_OCE_ENABLE_STA_MAX), - - REG_VARIABLE(CFG_OCE_ENABLE_SAP_NAME, WLAN_PARAM_Integer, - struct hdd_config, oce_sap_enabled, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_OCE_ENABLE_SAP_DEFAULT, - CFG_OCE_ENABLE_SAP_MIN, - CFG_OCE_ENABLE_SAP_MAX), - REG_VARIABLE(CFG_ENABLE_11D_IN_WORLD_MODE_NAME, WLAN_PARAM_Integer, struct hdd_config, enable_11d_in_world_mode, VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, @@ -4032,13 +4011,6 @@ struct reg_table_entry g_registry_table[] = { CFG_LATENCY_FLAGS_ULTRALOW_MAX), - REG_VARIABLE(CFG_IS_FILS_ENABLED_NAME, WLAN_PARAM_Integer, - struct hdd_config, is_fils_enabled, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_IS_FILS_ENABLED_DEFAULT, - CFG_IS_FILS_ENABLED_MIN, - CFG_IS_FILS_ENABLED_MAX), - #ifdef WLAN_FEATURE_PACKET_FILTERING REG_VARIABLE(CFG_ENABLE_PACKET_FILTERS_NAME, WLAN_PARAM_Integer, struct hdd_config, packet_filters_bitmap, @@ -4055,56 +4027,6 @@ struct reg_table_entry g_registry_table[] = { CFG_DFS_BEACON_TX_ENHANCED_MIN, CFG_DFS_BEACON_TX_ENHANCED_MAX), - REG_VARIABLE(CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_NAME, - WLAN_PARAM_Integer, struct hdd_config, - rssi_assoc_reject_enabled, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_DEFAULT, - CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_MIN, - CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_MAX), - - REG_VARIABLE(CFG_OCE_PROBE_REQ_RATE_NAME, WLAN_PARAM_Integer, - struct hdd_config, oce_probe_req_rate_enabled, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_OCE_PROBE_REQ_RATE_DEFAULT, - CFG_OCE_PROBE_REQ_RATE_MIN, - CFG_OCE_PROBE_REQ_RATE_MAX), - - REG_VARIABLE(CFG_OCE_PROBE_RSP_RATE_NAME, WLAN_PARAM_Integer, - struct hdd_config, oce_probe_resp_rate_enabled, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_OCE_PROBE_RSP_RATE_DEFAULT, - CFG_OCE_PROBE_RSP_RATE_MIN, - CFG_OCE_PROBE_RSP_RATE_MAX), - - REG_VARIABLE(CFG_OCE_BEACON_RATE_NAME, WLAN_PARAM_Integer, - struct hdd_config, oce_beacon_rate_enabled, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_OCE_BEACON_RATE_DEFAULT, - CFG_OCE_BEACON_RATE_MIN, - CFG_OCE_BEACON_RATE_MAX), - - REG_VARIABLE(CFG_ENABLE_PROBE_REQ_DEFERRAL_NAME, WLAN_PARAM_Integer, - struct hdd_config, probe_req_deferral_enabled, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_ENABLE_PROBE_REQ_DEFERRAL_DEFAULT, - CFG_ENABLE_PROBE_REQ_DEFERRAL_MIN, - CFG_ENABLE_PROBE_REQ_DEFERRAL_MAX), - - REG_VARIABLE(CFG_ENABLE_FILS_DISCOVERY_SAP_NAME, WLAN_PARAM_Integer, - struct hdd_config, fils_discovery_sap_enabled, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_ENABLE_FILS_DISCOVERY_SAP_DEFAULT, - CFG_ENABLE_FILS_DISCOVERY_SAP_MIN, - CFG_ENABLE_FILS_DISCOVERY_SAP_MAX), - - REG_VARIABLE(CFG_ENABLE_ESP_FEATURE_NAME, WLAN_PARAM_Integer, - struct hdd_config, esp_for_roam_enabled, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_ENABLE_ESP_FEATURE_DEFAULT, - CFG_ENABLE_ESP_FEATURE_MIN, - CFG_ENABLE_ESP_FEATURE_MAX), - REG_VARIABLE(CFG_BTM_ENABLE_NAME, WLAN_PARAM_HexInteger, struct hdd_config, btm_offload_config, VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, @@ -5993,7 +5915,7 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx) { QDF_STATUS status = QDF_STATUS_SUCCESS; tSmeConfigParams *smeConfig; - uint8_t rrm_capab_len, val; + uint8_t rrm_capab_len; mac_handle_t mac_handle = hdd_ctx->mac_handle; struct hdd_config *pConfig = hdd_ctx->config; @@ -6307,11 +6229,6 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx) smeConfig->snr_monitor_enabled = hdd_ctx->config->fEnableSNRMonitoring; - smeConfig->csrConfig.enable_bcast_probe_rsp = - hdd_ctx->config->enable_bcast_probe_rsp; - smeConfig->csrConfig.is_fils_enabled = - hdd_ctx->config->is_fils_enabled; - hdd_he_set_sme_config(smeConfig, pConfig); smeConfig->csrConfig.wlm_latency_enable = @@ -6333,21 +6250,6 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx) smeConfig->csrConfig.is_force_1x1 = hdd_ctx->config->is_force_1x1; - val = (pConfig->oce_probe_req_rate_enabled * - WMI_VDEV_OCE_PROBE_REQUEST_RATE_FEATURE_BITMAP) + - (pConfig->oce_probe_resp_rate_enabled * - WMI_VDEV_OCE_PROBE_RESPONSE_RATE_FEATURE_BITMAP) + - (pConfig->oce_beacon_rate_enabled * - WMI_VDEV_OCE_BEACON_RATE_FEATURE_BITMAP) + - (pConfig->probe_req_deferral_enabled * - WMI_VDEV_OCE_PROBE_REQUEST_DEFERRAL_FEATURE_BITMAP) + - (pConfig->fils_discovery_sap_enabled * - WMI_VDEV_OCE_FILS_DISCOVERY_FRAME_FEATURE_BITMAP) + - (pConfig->esp_for_roam_enabled * - WMI_VDEV_OCE_ESP_FEATURE_BITMAP) + - (pConfig->rssi_assoc_reject_enabled * - WMI_VDEV_OCE_REASSOC_REJECT_FEATURE_BITMAP); - smeConfig->csrConfig.oce_feature_bitmap = val; smeConfig->csrConfig.btm_offload_config = hdd_ctx->config->btm_offload_config; smeConfig->csrConfig.btm_solicited_timeout = diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index 022cc33286..cb0362618f 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -3308,7 +3308,9 @@ __wlan_hdd_cfg80211_get_features(struct wiphy *wiphy, struct sk_buff *skb = NULL; uint32_t dbs_capability = 0; bool one_by_one_dbs, two_by_two_dbs; + bool value; QDF_STATUS ret = QDF_STATUS_E_FAILURE; + QDF_STATUS status; int ret_val; uint8_t feature_flags[(NUM_QCA_WLAN_VENDOR_FEATURES + 7) / 8] = {0}; @@ -3341,11 +3343,19 @@ __wlan_hdd_cfg80211_get_features(struct wiphy *wiphy, wlan_hdd_cfg80211_set_feature(feature_flags, QCA_WLAN_VENDOR_FEATURE_P2P_LISTEN_OFFLOAD); - if (hdd_ctx->config->oce_sta_enabled) + value = 0; + status = ucfg_mlme_get_oce_sta_enabled_info(hdd_ctx->hdd_psoc, &value); + if (QDF_IS_STATUS_ERROR(status)) + hdd_err("could not get OCE STA enable info"); + if (value) wlan_hdd_cfg80211_set_feature(feature_flags, QCA_WLAN_VENDOR_FEATURE_OCE_STA); - if (hdd_ctx->config->oce_sap_enabled) + value = 0; + status = ucfg_mlme_get_oce_sap_enabled_info(hdd_ctx->hdd_psoc, &value); + if (QDF_IS_STATUS_ERROR(status)) + hdd_err("could not get OCE SAP enable info"); + if (value) wlan_hdd_cfg80211_set_feature(feature_flags, QCA_WLAN_VENDOR_FEATURE_OCE_STA_CFON); @@ -6014,16 +6024,29 @@ __wlan_hdd_cfg80211_wifi_configuration_set(struct wiphy *wiphy, if (adapter->device_mode == QDF_STA_MODE && tb[QCA_WLAN_VENDOR_ATTR_CONFIG_DISABLE_FILS]) { uint8_t disable_fils; + bool value; disable_fils = nla_get_u8(tb[ QCA_WLAN_VENDOR_ATTR_CONFIG_DISABLE_FILS]); hdd_debug("Set disable_fils - %d", disable_fils); + value = !disable_fils; - qdf_status = sme_update_fils_setting(mac_handle, - adapter->session_id, - disable_fils); + qdf_status = ucfg_mlme_set_fils_enabled_info(hdd_ctx->hdd_psoc, + value); + if (QDF_IS_STATUS_ERROR(qdf_status)) + hdd_err("could not set fils enabled info"); + + qdf_status = ucfg_mlme_set_enable_bcast_probe_rsp( + hdd_ctx->hdd_psoc, value); + if (QDF_IS_STATUS_ERROR(qdf_status)) + hdd_err("could not set enable bcast probe resp info"); + + qdf_status = wma_cli_set_command( + (int)adapter->session_id, + (int)WMI_VDEV_PARAM_ENABLE_BCAST_PROBE_RESPONSE, + !disable_fils, VDEV_CMD); if (qdf_status != QDF_STATUS_SUCCESS) { - hdd_err("set disable_fils failed"); + hdd_err("failed to set enable bcast probe resp"); ret_val = -EINVAL; } } @@ -12067,8 +12090,6 @@ int wlan_hdd_cfg80211_init(struct device *dev, #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0)) wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_VHT_IBSS); #endif - if (pCfg->is_fils_enabled) - wlan_hdd_cfg80211_set_wiphy_fils_feature(wiphy); wlan_hdd_cfg80211_set_wiphy_scan_flags(wiphy); @@ -12349,10 +12370,20 @@ static void wlan_hdd_update_ht_cap(struct hdd_context *hdd_ctx) void wlan_hdd_update_wiphy(struct hdd_context *hdd_ctx) { int value; + bool fils_enabled; + QDF_STATUS status; ucfg_mlme_get_sap_max_peers(hdd_ctx->hdd_psoc, &value); hdd_ctx->wiphy->max_ap_assoc_sta = value; wlan_hdd_update_ht_cap(hdd_ctx); + + fils_enabled = 0; + status = ucfg_mlme_get_fils_enabled_info(hdd_ctx->hdd_psoc, + &fils_enabled); + if (QDF_IS_STATUS_ERROR(status)) + hdd_err("could not get fils enabled info"); + if (fils_enabled) + wlan_hdd_cfg80211_set_wiphy_fils_feature(hdd_ctx->wiphy); } /** @@ -15133,14 +15164,20 @@ static int wlan_hdd_cfg80211_set_fils_config(struct hdd_adapter *adapter, struct csr_roam_profile *roam_profile; enum eAniAuthType auth_type; uint8_t *buf; + bool value; + QDF_STATUS status; struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter); roam_profile = hdd_roam_profile(adapter); - if (!hdd_ctx->config->is_fils_enabled) { - hdd_err("FILS disabled"); + value = 0; + status = ucfg_mlme_get_fils_enabled_info(hdd_ctx->hdd_psoc, &value); + if (QDF_IS_STATUS_ERROR(status) || !value) { + hdd_err("get_fils_enabled status: %d fils_enabled: %d", + status, value); return -EINVAL; } + hdd_clear_fils_connection_info(adapter); roam_profile->fils_con_info = qdf_mem_malloc(sizeof(*roam_profile->fils_con_info)); diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 39c1756ca4..61d062a001 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -8793,14 +8793,6 @@ static void hdd_override_ini_config(struct hdd_context *hdd_ctx) hdd_ctx->config->IpaConfig); } - if (!hdd_ctx->config->rssi_assoc_reject_enabled || - !hdd_ctx->config->enable_bcast_probe_rsp) { - hdd_debug("OCE disabled, rssi_assoc_reject_enabled: %d enable_bcast_probe_rsp: %d", - hdd_ctx->config->rssi_assoc_reject_enabled, - hdd_ctx->config->enable_bcast_probe_rsp); - hdd_ctx->config->oce_sta_enabled = 0; - } - if (hdd_ctx->config->action_oui_enable && !ucfg_action_oui_enabled()) { hdd_ctx->config->action_oui_enable = 0; hdd_err("Ignore ini: %s, since no action_oui component", diff --git a/core/sme/inc/sme_api.h b/core/sme/inc/sme_api.h index 8830d71c32..3c7d8f1535 100644 --- a/core/sme/inc/sme_api.h +++ b/core/sme/inc/sme_api.h @@ -1654,17 +1654,6 @@ QDF_STATUS sme_set_default_scan_ie(tHalHandle hal, uint16_t session_id, */ QDF_STATUS sme_update_session_param(tHalHandle hal, uint8_t session_id, uint32_t param_type, uint32_t param_val); - -/** - * sme_update_fils_setting() - API to update PE FILS setting - * @hal: HAL handle for device - * @session_id: Session ID - * @param_val: Param value to be update - * - * Return: QDF_STATUS - */ -QDF_STATUS sme_update_fils_setting(tHalHandle hal, uint8_t session_id, - uint8_t param_val); #ifdef WLAN_FEATURE_FIPS /** * sme_fips_request() - Perform a FIPS certification operation diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index dc84e7bab4..be83f9267c 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -6065,26 +6065,6 @@ QDF_STATUS sme_set_tx_power(tHalHandle hHal, uint8_t sessionId, return QDF_STATUS_SUCCESS; } -QDF_STATUS sme_update_fils_setting(tHalHandle hal, uint8_t session_id, - uint8_t param_val) -{ - QDF_STATUS status; - tpAniSirGlobal pMac = PMAC_STRUCT(hal); - - pMac->roam.configParam.is_fils_enabled = !param_val; - - pMac->roam.configParam.enable_bcast_probe_rsp = !param_val; - status = wma_cli_set_command((int)session_id, - (int)WMI_VDEV_PARAM_ENABLE_BCAST_PROBE_RESPONSE, - !param_val, VDEV_CMD); - if (status) - QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR, - "%s: Failed to set enable bcast probe setting", - __func__); - - return status; -} - QDF_STATUS sme_update_session_param(tHalHandle hal, uint8_t session_id, uint32_t param_type, uint32_t param_val) { diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index ee13255de8..a021f3d32a 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -16170,7 +16170,7 @@ QDF_STATUS csr_send_join_req_msg(tpAniSirGlobal pMac, uint32_t sessionId, if (pSession->pCurRoamProfile->csrPersona == QDF_STA_MODE) csr_join_req->enable_bcast_probe_rsp = - pMac->roam.configParam.enable_bcast_probe_rsp; + pMac->mlme_cfg->oce.enable_bcast_probe_rsp; csr_join_req->enable_session_twt_support = csr_enable_twt(pIes); status = umac_send_mb_message_to_mac(csr_join_req); @@ -17108,13 +17108,13 @@ QDF_STATUS csr_issue_add_sta_for_session_req(tpAniSirGlobal pMac, qos_aggr->tx_aggr_sw_retry_threshold_vo; add_sta_self_req->enable_bcast_probe_rsp = - pMac->roam.configParam.enable_bcast_probe_rsp; + pMac->mlme_cfg->oce.enable_bcast_probe_rsp; add_sta_self_req->fils_max_chan_guard_time = pMac->mlme_cfg->sta.fils_max_chan_guard_time; add_sta_self_req->pkt_err_disconn_th = - pMac->roam.configParam.pkt_err_disconn_th; + pMac->roam.configParam.pkt_err_disconn_th; add_sta_self_req->oce_feature_bitmap = - pMac->roam.configParam.oce_feature_bitmap; + pMac->mlme_cfg->oce.feature_bitmap; msg.type = WMA_ADD_STA_SELF_REQ; msg.reserved = 0;