From f696df2e27a424c94841163902a57221da76708f Mon Sep 17 00:00:00 2001 From: Pragaspathi Thilagaraj Date: Thu, 6 Sep 2018 15:38:49 +0530 Subject: [PATCH] qcacld-3.0: ADD MLME CFG items of WMM CFG Items Add the following WMM CFG items to MLME cfg Items: 1. WNI_CFG_QOS_ENABLED 2. WNI_CFG_WME_ENABLED 3. WNI_CFG_MAX_SP_LENGTH 4. WNI_CFG_WSM_ENABLED 5. WNI_CFG_EDCA_PROFILE Deleted following WMM CFG Items: 1. WNI_CFG_ADMIT_POLICY 2. WNI_CFG_ADMIT_BWFACTOR Change-Id: I16f9c5a71d1e8fe7cb1b029e3ec7ec2159bdd5b4 CRs-Fixed: 2304998 --- mlme/core/src/wlan_mlme_main.c | 11 ++++ mlme/dispatcher/inc/cfg_mlme.h | 2 + mlme/dispatcher/inc/cfg_mlme_fe_wmm.h | 64 +++++++++++++++++++ mlme/dispatcher/inc/wlan_mlme_public_struct.h | 18 ++++++ 4 files changed, 95 insertions(+) create mode 100644 mlme/dispatcher/inc/cfg_mlme_fe_wmm.h diff --git a/mlme/core/src/wlan_mlme_main.c b/mlme/core/src/wlan_mlme_main.c index 191fd3223a..7c0e571f21 100644 --- a/mlme/core/src/wlan_mlme_main.c +++ b/mlme/core/src/wlan_mlme_main.c @@ -1123,6 +1123,16 @@ static void mlme_init_wep_cfg(struct wlan_mlme_wep_cfg *wep_params) mlme_init_wep_keys(wep_params); } +static void mlme_init_wmm_in_cfg(struct wlan_objmgr_psoc *psoc, + struct wlan_mlme_wmm_params *wmm_params) +{ + wmm_params->qos_enabled = cfg_default(CFG_QOS_ENABLED); + wmm_params->wme_enabled = cfg_default(CFG_WME_ENABLED); + wmm_params->max_sp_length = cfg_default(CFG_MAX_SP_LENGTH); + wmm_params->wsm_enabled = cfg_default(CFG_WSM_ENABLED); + wmm_params->edca_profile = cfg_default(CFG_EDCA_PROFILE); +} + QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc) { struct wlan_mlme_psoc_obj *mlme_obj; @@ -1140,6 +1150,7 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc) mlme_init_edca_params(&mlme_cfg->edca_params); mlme_init_timeout_cfg(psoc, &mlme_cfg->timeouts); mlme_init_ht_cap_in_cfg(psoc, &mlme_cfg->ht_caps); + mlme_init_wmm_in_cfg(psoc, &mlme_cfg->wmm_params); mlme_init_mbo_cfg(psoc, &mlme_cfg->mbo_cfg); mlme_init_qos_cfg(psoc, &mlme_cfg->qos_mlme_params); mlme_init_rates_in_cfg(psoc, &mlme_cfg->rates); diff --git a/mlme/dispatcher/inc/cfg_mlme.h b/mlme/dispatcher/inc/cfg_mlme.h index 8b6cf37f2d..b58556b5bc 100644 --- a/mlme/dispatcher/inc/cfg_mlme.h +++ b/mlme/dispatcher/inc/cfg_mlme.h @@ -39,6 +39,7 @@ #include "wlan_mlme_product_details_cfg.h" #include "cfg_mlme_sta.h" #include "cfg_sap_protection.h" +#include "cfg_mlme_fe_wmm.h" #include "cfg_mlme_sap.h" #include "cfg_mlme_scoring.h" #include "cfg_mlme_oce.h" @@ -62,6 +63,7 @@ CFG_OCE_ALL \ CFG_QOS_ALL \ CFG_RATES_ALL \ + CFG_WMM_PARAMS_ALL\ CFG_SAP_ALL \ CFG_SAP_PROTECTION_ALL \ CFG_SCORING_ALL \ diff --git a/mlme/dispatcher/inc/cfg_mlme_fe_wmm.h b/mlme/dispatcher/inc/cfg_mlme_fe_wmm.h new file mode 100644 index 0000000000..c0b19ac818 --- /dev/null +++ b/mlme/dispatcher/inc/cfg_mlme_fe_wmm.h @@ -0,0 +1,64 @@ +/* + * 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_FE_WMM_H +#define __CFG_MLME_FE_WMM_H + +#define CFG_QOS_ENABLED CFG_BOOL( \ + "qos_enabled", \ + 0, \ + "QOS Enabled") + +#define CFG_WME_ENABLED CFG_BOOL( \ + "wme_enabled", \ + 1, \ + "WME Enabled") + +#define CFG_MAX_SP_LENGTH CFG_UINT( \ + "max_sp_length", \ + 0, \ + 3, \ + 0, \ + CFG_VALUE_OR_DEFAULT, \ + "MAX sp length") + +#define CFG_WSM_ENABLED CFG_BOOL( \ + "wsm_enabled", \ + 0, \ + "WSM Enabled") + +#define CFG_EDCA_PROFILE CFG_UINT( \ + "edca_profile", \ + 0, \ + 4, \ + 1, \ + CFG_VALUE_OR_DEFAULT, \ + "Edca Profile") + +#define CFG_WMM_PARAMS_ALL \ + CFG(CFG_QOS_ENABLED) \ + CFG(CFG_WME_ENABLED) \ + CFG(CFG_MAX_SP_LENGTH) \ + CFG(CFG_WSM_ENABLED) \ + CFG(CFG_EDCA_PROFILE) + +#endif /* __CFG_MLME_FE_WMM_H */ diff --git a/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/mlme/dispatcher/inc/wlan_mlme_public_struct.h index 5364f8a57a..143a2e3386 100644 --- a/mlme/dispatcher/inc/wlan_mlme_public_struct.h +++ b/mlme/dispatcher/inc/wlan_mlme_public_struct.h @@ -834,6 +834,22 @@ struct wlan_mlme_lfr_cfg { uint32_t max_num_pre_auth; }; +/** +* struct wlan_mlme_wmm_params - WMM CFG Items + * @qos_enabled: AP is enabled with 11E + * @wme_enabled: AP is enabled with WMM + * @max_sp_length: Maximum SP Length + * @wsm_enabled: AP is enabled with WSM + * @edca_profile: edca profile id + */ +struct wlan_mlme_wmm_params { + bool qos_enabled; + bool wme_enabled; + uint8_t max_sp_length; + bool wsm_enabled; + uint32_t edca_profile; +}; + /** * struct wlan_mlme_weight_config - weight params to * calculate best candidate @@ -1066,6 +1082,7 @@ struct wlan_mlme_wep_cfg { * @acs: ACS related CFG items * @feature_flags: Feature flag config items * @wep_params: WEP related config items + * @wmm_params: WMM related CFG Items */ struct wlan_mlme_cfg { struct wlan_mlme_chainmask chainmask_cfg; @@ -1090,6 +1107,7 @@ struct wlan_mlme_cfg { struct wlan_mlme_acs acs; struct wlan_mlme_feature_flag feature_flags; struct wlan_mlme_wep_cfg wep_params; + struct wlan_mlme_wmm_params wmm_params; }; #endif