qcacld-3.0: Add support to enable/disable FILS runtime

Currently, FILS feature is enabled with ini parameter
[is_fils_enabled] at init time. This change adds support
to enable disable FILS from vendor command.

Change-Id: I0c84d777a6259c96233a4777f184ddf6f7bc58af
CRs-Fixed: 2121214
This commit is contained in:
Vignesh Viswanathan 2017-09-25 17:10:54 +05:30 • committed by snandini
commit 32761e468e
7 changed files with 55 additions and 2 deletions

View file

@ -8857,6 +8857,8 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
hdd_ctx->config->rx_aggregation_size;
smeConfig->csrConfig.enable_bcast_probe_rsp =
hdd_ctx->config->enable_bcast_probe_rsp;
smeConfig->csrConfig.is_fils_enabled =
hdd_ctx->config->is_fils_enabled;
smeConfig->csrConfig.qcn_ie_support =
hdd_ctx->config->qcn_ie_support;
smeConfig->csrConfig.fils_max_chan_guard_time =

View file

@ -6690,6 +6690,22 @@ __wlan_hdd_cfg80211_wifi_configuration_set(struct wiphy *wiphy,
return -EINVAL;
}
}
if (adapter->device_mode == QDF_STA_MODE &&
tb[QCA_WLAN_VENDOR_ATTR_CONFIG_DISABLE_FILS]) {
uint8_t disable_fils;
disable_fils = nla_get_u8(tb[
QCA_WLAN_VENDOR_ATTR_CONFIG_DISABLE_FILS]);
hdd_debug("Set disable_fils - %d", disable_fils);
qdf_status = sme_update_fils_setting(hdd_ctx->hHal,
adapter->session_id,
disable_fils);
if (qdf_status != QDF_STATUS_SUCCESS) {
hdd_err("set disable_fils failed");
ret_val = -EINVAL;
}
}
return ret_val;
}

View file

@ -1340,6 +1340,7 @@ typedef struct tagCsrConfigParam {
uint32_t rx_aggregation_size;
struct wmi_per_roam_config per_roam_config;
bool enable_bcast_probe_rsp;
bool is_fils_enabled;
#ifdef WLAN_FEATURE_11AX
bool enable_ul_ofdma;
bool enable_ul_mimo;

View file

@ -617,6 +617,7 @@ struct csr_config {
uint32_t rx_aggregation_size;
struct wmi_per_roam_config per_roam_config;
bool enable_bcast_probe_rsp;
bool is_fils_enabled;
#ifdef WLAN_FEATURE_11AX
bool enable_ul_ofdma;
bool enable_ul_mimo;

View file

@ -1297,6 +1297,16 @@ 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_DISA
/**
* sme_encrypt_decrypt_msg() - handles encrypt/decrypt mesaage

View file

@ -6470,8 +6470,27 @@ QDF_STATUS sme_set_tx_power(tHalHandle hHal, uint8_t sessionId,
return QDF_STATUS_SUCCESS;
}
QDF_STATUS sme_update_session_param(tHalHandle hal,
uint8_t session_id,
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)
{
QDF_STATUS status = QDF_STATUS_SUCCESS;

View file

@ -2928,6 +2928,8 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
pParam->rx_aggregation_size;
pMac->roam.configParam.enable_bcast_probe_rsp =
pParam->enable_bcast_probe_rsp;
pMac->roam.configParam.is_fils_enabled =
pParam->is_fils_enabled;
pMac->roam.configParam.qcn_ie_support =
pParam->qcn_ie_support;
pMac->roam.configParam.fils_max_chan_guard_time =
@ -3189,6 +3191,8 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
pMac->roam.configParam.rx_aggregation_size;
pParam->enable_bcast_probe_rsp =
pMac->roam.configParam.enable_bcast_probe_rsp;
pParam->is_fils_enabled =
pMac->roam.configParam.is_fils_enabled;
pParam->qcn_ie_support =
pMac->roam.configParam.qcn_ie_support;
pParam->fils_max_chan_guard_time =