summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSelvaraj, Sridhar <sselvara@codeaurora.org>2017-01-30 13:03:37 +0530
committerqcabuildsw <qcabuildsw@localhost>2017-02-23 05:20:48 -0800
commit2cabe48209b7063fe67475005999209748fd0b59 (patch)
treecf75de7e8b425ed4974d1ceec86e9bbf387be96e
parent3c3beea1a0b5f8cd2b0ecc27b1c4b40288c9bafd (diff)
qcacld-3.0: Add INI "g_qcn_ie_support" INI for QCN IE support
Add INI "g_qcn_ie_support" INI and selectively add the QCN IE in probe/assoc/reassoc request based on the INI. Change-Id: I6039bb5366feb77b4c601bcde00b4bd5d92a3b23 CRs-Fixed: 1117320
-rw-r--r--core/hdd/inc/wlan_hdd_cfg.h24
-rw-r--r--core/hdd/src/wlan_hdd_cfg.c9
-rw-r--r--core/mac/src/pe/lim/lim_send_management_frames.c6
-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.c4
6 files changed, 43 insertions, 2 deletions
diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h
index ea0d35d697e5..9ef4a13d7a66 100644
--- a/core/hdd/inc/wlan_hdd_cfg.h
+++ b/core/hdd/inc/wlan_hdd_cfg.h
@@ -9566,6 +9566,29 @@ enum dot11p_mode {
#define CFG_ENABLE_BCAST_PROBE_RESP_MAX (1)
#define CFG_ENABLE_BCAST_PROBE_RESP_DEFAULT (0)
+/*
+ * <ini>
+ * g_qcn_ie_support - QCN IE Support
+ * @Min: 0 (disabled)
+ * @Max: 1 (enabled)
+ * @Default: 0 (disabled)
+ *
+ * This config item is used to support QCN IE in probe/assoc/reassoc request
+ * for STA mode. QCN IE support is not added for SAP mode.
+ *
+ * Related: N/A
+ *
+ * Supported Feature: N/A
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+#define CFG_QCN_IE_SUPPORT_NAME "g_qcn_ie_support"
+#define CFG_QCN_IE_SUPPORT_MIN 0
+#define CFG_QCN_IE_SUPPORT_MAX 1
+#define CFG_QCN_IE_SUPPORT_DEFAULT 0
+
/*---------------------------------------------------------------------------
Type declarations
-------------------------------------------------------------------------*/
@@ -10274,6 +10297,7 @@ struct hdd_config {
bool hw_broadcast_filter;
bool sap_internal_restart;
bool enable_bcast_probe_rsp;
+ bool qcn_ie_support;
};
#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 01a0ef48a778..223c06c8744a 100644
--- a/core/hdd/src/wlan_hdd_cfg.c
+++ b/core/hdd/src/wlan_hdd_cfg.c
@@ -4276,6 +4276,13 @@ REG_TABLE_ENTRY g_registry_table[] = {
CFG_ENABLE_BCAST_PROBE_RESP_DEFAULT,
CFG_ENABLE_BCAST_PROBE_RESP_MIN,
CFG_ENABLE_BCAST_PROBE_RESP_MAX),
+
+ REG_VARIABLE(CFG_QCN_IE_SUPPORT_NAME, WLAN_PARAM_Integer,
+ struct hdd_config, qcn_ie_support,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_QCN_IE_SUPPORT_DEFAULT,
+ CFG_QCN_IE_SUPPORT_MIN,
+ CFG_QCN_IE_SUPPORT_MAX),
};
/**
@@ -7302,6 +7309,8 @@ QDF_STATUS hdd_set_sme_config(hdd_context_t *pHddCtx)
pHddCtx->config->rx_aggregation_size;
smeConfig->csrConfig.enable_bcast_probe_rsp =
pHddCtx->config->enable_bcast_probe_rsp;
+ smeConfig->csrConfig.qcn_ie_support =
+ pHddCtx->config->qcn_ie_support;
status = sme_update_config(pHddCtx->hHal, smeConfig);
if (!QDF_IS_STATUS_SUCCESS(status)) {
diff --git a/core/mac/src/pe/lim/lim_send_management_frames.c b/core/mac/src/pe/lim/lim_send_management_frames.c
index c8c475febd9b..6e7c8c0ecaee 100644
--- a/core/mac/src/pe/lim/lim_send_management_frames.c
+++ b/core/mac/src/pe/lim/lim_send_management_frames.c
@@ -345,7 +345,8 @@ lim_send_probe_req_mgmt_frame(tpAniSirGlobal mac_ctx,
populate_dot11f_ext_cap(mac_ctx, is_vht_enabled, &pr.ExtCap,
pesession);
- populate_dot11f_qcn_ie(&pr.QCN_IE);
+ if (mac_ctx->roam.configParam.qcn_ie_support)
+ populate_dot11f_qcn_ie(&pr.QCN_IE);
if (addn_ielen) {
qdf_mem_zero((uint8_t *)&extracted_ext_cap,
@@ -1905,7 +1906,8 @@ lim_send_assoc_req_mgmt_frame(tpAniSirGlobal mac_ctx,
populate_dot11f_ext_cap(mac_ctx, vht_enabled,
&frm->ExtCap, pe_session);
- populate_dot11f_qcn_ie(&frm->QCN_IE);
+ if (mac_ctx->roam.configParam.qcn_ie_support)
+ populate_dot11f_qcn_ie(&frm->QCN_IE);
if (pe_session->pLimJoinReq->is11Rconnection) {
tSirBssDescription *bssdescr;
diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h
index 0a02ba06d342..9e70e4375b58 100644
--- a/core/sme/inc/csr_api.h
+++ b/core/sme/inc/csr_api.h
@@ -1314,6 +1314,7 @@ typedef struct tagCsrConfigParam {
uint32_t rx_aggregation_size;
struct wmi_per_roam_config per_roam_config;
bool enable_bcast_probe_rsp;
+ bool qcn_ie_support;
} tCsrConfigParam;
/* Tush */
diff --git a/core/sme/inc/csr_internal.h b/core/sme/inc/csr_internal.h
index 1e8318ca898c..6f5af6a2a538 100644
--- a/core/sme/inc/csr_internal.h
+++ b/core/sme/inc/csr_internal.h
@@ -664,6 +664,7 @@ typedef struct tagCsrConfig {
uint32_t rx_aggregation_size;
struct wmi_per_roam_config per_roam_config;
bool enable_bcast_probe_rsp;
+ bool qcn_ie_support;
} 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 482b985d4d19..e177adc2fac3 100644
--- a/core/sme/src/csr/csr_api_roam.c
+++ b/core/sme/src/csr/csr_api_roam.c
@@ -2620,6 +2620,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.qcn_ie_support =
+ pParam->qcn_ie_support;
}
return status;
@@ -2852,6 +2854,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->qcn_ie_support =
+ pMac->roam.configParam.qcn_ie_support;
return QDF_STATUS_SUCCESS;
}