summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSelvaraj, Sridhar <sselvara@codeaurora.org>2017-01-19 15:59:23 +0530
committerqcabuildsw <qcabuildsw@localhost>2017-02-22 00:07:04 -0800
commit93aa2775e30bdcd4a48263548bbc7c92768fe980 (patch)
tree870a0e3e11c216ff22c4f9e50ffd4adf83efd1a8
parenta7db318cccd4d271a7eec96d98c0166312718fc0 (diff)
qcacld-3.0: Add "g_enable_bcast_probe_rsp" INI and pass it to firmware
Add "g_enable_bcast_probe_rsp" INI and pass the configured value to firmware for STA vdev as part of vdev attach. Based on this INI, firmware will send the dwell time IE in probe request. Change-Id: I446c7d7589534688e04579ed434de0803ed8b4ff CRs-Fixed: 1113498
-rw-r--r--core/hdd/inc/wlan_hdd_cfg.h23
-rw-r--r--core/hdd/src/wlan_hdd_cfg.c9
-rw-r--r--core/sme/inc/csr_api.h1
-rw-r--r--core/sme/inc/csr_internal.h1
-rw-r--r--core/sme/src/csr/csr_api_roam.c6
-rw-r--r--core/wma/inc/wma_if.h4
-rw-r--r--core/wma/src/wma_dev_if.c10
7 files changed, 53 insertions, 1 deletions
diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h
index dfbbc4c267b1..2607833bace4 100644
--- a/core/hdd/inc/wlan_hdd_cfg.h
+++ b/core/hdd/inc/wlan_hdd_cfg.h
@@ -9544,6 +9544,28 @@ enum dot11p_mode {
#define CFG_HW_FILTER_MIN (0)
#define CFG_HW_FILTER_MAX (1)
+/*
+ * <ini>
+ * g_enable_bcast_probe_rsp - Enable Broadcast probe response.
+ * @Min: 0
+ * @Max: 1
+ * @Default: 0
+ *
+ * This ini is used to enable/disable broadcast probe response
+ *
+ * Related: None
+ *
+ * Supported Feature: FILS
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#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 (0)
+
/*---------------------------------------------------------------------------
Type declarations
-------------------------------------------------------------------------*/
@@ -10251,6 +10273,7 @@ struct hdd_config {
enum active_bpf_mode active_bpf_mode;
bool hw_broadcast_filter;
bool sap_internal_restart;
+ bool enable_bcast_probe_rsp;
};
#define VAR_OFFSET(_Struct, _Var) (offsetof(_Struct, _Var))
diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c
index 105e769f35b7..01a0ef48a778 100644
--- a/core/hdd/src/wlan_hdd_cfg.c
+++ b/core/hdd/src/wlan_hdd_cfg.c
@@ -4250,7 +4250,6 @@ REG_TABLE_ENTRY g_registry_table[] = {
CFG_MAX_SCHED_SCAN_PLAN_ITRNS_DEFAULT,
CFG_MAX_SCHED_SCAN_PLAN_ITRNS_MIN,
CFG_MAX_SCHED_SCAN_PLAN_ITRNS_MAX),
-
REG_VARIABLE(CFG_ACTIVE_BPF_MODE_NAME, WLAN_PARAM_Integer,
struct hdd_config, active_bpf_mode,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -4271,6 +4270,12 @@ REG_TABLE_ENTRY g_registry_table[] = {
CFG_SAP_INTERNAL_RESTART_DEFAULT,
CFG_SAP_INTERNAL_RESTART_MIN,
CFG_SAP_INTERNAL_RESTART_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),
};
/**
@@ -7295,6 +7300,8 @@ QDF_STATUS hdd_set_sme_config(hdd_context_t *pHddCtx)
pHddCtx->config->tx_aggregation_size;
smeConfig->csrConfig.rx_aggregation_size =
pHddCtx->config->rx_aggregation_size;
+ smeConfig->csrConfig.enable_bcast_probe_rsp =
+ pHddCtx->config->enable_bcast_probe_rsp;
status = sme_update_config(pHddCtx->hHal, smeConfig);
if (!QDF_IS_STATUS_SUCCESS(status)) {
diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h
index a883920be086..0a02ba06d342 100644
--- a/core/sme/inc/csr_api.h
+++ b/core/sme/inc/csr_api.h
@@ -1313,6 +1313,7 @@ typedef struct tagCsrConfigParam {
uint32_t tx_aggregation_size;
uint32_t rx_aggregation_size;
struct wmi_per_roam_config per_roam_config;
+ bool enable_bcast_probe_rsp;
} tCsrConfigParam;
/* Tush */
diff --git a/core/sme/inc/csr_internal.h b/core/sme/inc/csr_internal.h
index 1f9fd91d8690..1e8318ca898c 100644
--- a/core/sme/inc/csr_internal.h
+++ b/core/sme/inc/csr_internal.h
@@ -663,6 +663,7 @@ typedef struct tagCsrConfig {
uint32_t tx_aggregation_size;
uint32_t rx_aggregation_size;
struct wmi_per_roam_config per_roam_config;
+ bool enable_bcast_probe_rsp;
} tCsrConfig;
typedef struct tagCsrChannelPowerInfo {
diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c
index 891a0aac06e6..482b985d4d19 100644
--- a/core/sme/src/csr/csr_api_roam.c
+++ b/core/sme/src/csr/csr_api_roam.c
@@ -2618,6 +2618,8 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
pParam->tx_aggregation_size;
pMac->roam.configParam.rx_aggregation_size =
pParam->rx_aggregation_size;
+ pMac->roam.configParam.enable_bcast_probe_rsp =
+ pParam->enable_bcast_probe_rsp;
}
return status;
@@ -2848,6 +2850,8 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
pMac->roam.configParam.tx_aggregation_size;
pParam->rx_aggregation_size =
pMac->roam.configParam.rx_aggregation_size;
+ pParam->enable_bcast_probe_rsp =
+ pMac->roam.configParam.enable_bcast_probe_rsp;
return QDF_STATUS_SUCCESS;
}
@@ -15391,6 +15395,8 @@ QDF_STATUS csr_process_add_sta_session_command(tpAniSirGlobal pMac,
pMac->roam.configParam.tx_aggregation_size;
add_sta_self_req->rx_aggregation_size =
pMac->roam.configParam.rx_aggregation_size;
+ add_sta_self_req->enable_bcast_probe_rsp =
+ pMac->roam.configParam.enable_bcast_probe_rsp;
msg.type = WMA_ADD_STA_SELF_REQ;
msg.reserved = 0;
diff --git a/core/wma/inc/wma_if.h b/core/wma/inc/wma_if.h
index 5dc73dd03f1b..5ce20c4c4272 100644
--- a/core/wma/inc/wma_if.h
+++ b/core/wma/inc/wma_if.h
@@ -1146,6 +1146,9 @@ typedef struct sMaxTxPowerPerBandParams {
* @nss_2g: vdev nss in 2.4G
* @nss_5g: vdev nss in 5G
* @status: response status code
+ * @tx_aggregation_size: Tx aggregation size
+ * @rx_aggregation_size: Rx aggregation size
+ * @enable_bcast_probe_rsp: enable broadcast probe response
*/
struct add_sta_self_params {
tSirMacAddr self_mac_addr;
@@ -1158,6 +1161,7 @@ struct add_sta_self_params {
uint32_t status;
uint32_t tx_aggregation_size;
uint32_t rx_aggregation_size;
+ bool enable_bcast_probe_rsp;
};
/**
diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c
index b36204fef8a7..1c2eb15cb784 100644
--- a/core/wma/src/wma_dev_if.c
+++ b/core/wma/src/wma_dev_if.c
@@ -1887,6 +1887,16 @@ ol_txrx_vdev_handle wma_vdev_attach(tp_wma_handle wma_handle,
WMI_ROAM_BMISS_FINAL_SCAN_ENABLE_FLAG));
if (QDF_IS_STATUS_ERROR(ret))
WMA_LOGE("Failed to set WMI_VDEV_PARAM_ROAM_FW_OFFLOAD");
+
+ /* Pass down enable/disable bcast probe rsp to FW */
+ ret = wma_vdev_set_param(
+ wma_handle->wmi_handle,
+ self_sta_req->session_id,
+ WMI_VDEV_PARAM_ENABLE_BCAST_PROBE_RESPONSE,
+ self_sta_req->enable_bcast_probe_rsp);
+ if (QDF_IS_STATUS_ERROR(ret))
+ WMA_LOGE("Failed to set WMI_VDEV_PARAM_ENABLE_BCAST_PROBE_RESPONSE");
+
}
/* Initialize BMISS parameters */