diff options
| author | Selvaraj, Sridhar <sselvara@codeaurora.org> | 2017-01-30 13:03:37 +0530 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2017-02-23 05:20:48 -0800 |
| commit | 2cabe48209b7063fe67475005999209748fd0b59 (patch) | |
| tree | cf75de7e8b425ed4974d1ceec86e9bbf387be96e | |
| parent | 3c3beea1a0b5f8cd2b0ecc27b1c4b40288c9bafd (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.h | 24 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_cfg.c | 9 | ||||
| -rw-r--r-- | core/mac/src/pe/lim/lim_send_management_frames.c | 6 | ||||
| -rw-r--r-- | core/sme/inc/csr_api.h | 1 | ||||
| -rw-r--r-- | core/sme/inc/csr_internal.h | 1 | ||||
| -rw-r--r-- | core/sme/src/csr/csr_api_roam.c | 4 |
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; } |
