diff --git a/components/mlme/core/src/wlan_mlme_main.c b/components/mlme/core/src/wlan_mlme_main.c index 35862ec71d74..314479137524 100644 --- a/components/mlme/core/src/wlan_mlme_main.c +++ b/components/mlme/core/src/wlan_mlme_main.c @@ -360,11 +360,49 @@ static void mlme_init_edca_etsi_cfg(struct wlan_mlme_edca_params *edca_params) &edca_params->etsi_acvo_b.len); } -static void mlme_init_edca_params(struct wlan_mlme_edca_params *edca_params) +static void +mlme_init_qos_edca_params(struct wlan_objmgr_psoc *psoc, + struct wlan_mlme_edca_params *edca_params) +{ + edca_params->enable_edca_params = + cfg_get(psoc, CFG_EDCA_ENABLE_PARAM); + + edca_params->edca_ac_vo.vo_cwmin = + cfg_get(psoc, CFG_EDCA_VO_CWMIN); + edca_params->edca_ac_vo.vo_cwmax = + cfg_get(psoc, CFG_EDCA_VO_CWMAX); + edca_params->edca_ac_vo.vo_aifs = + cfg_get(psoc, CFG_EDCA_VO_AIFS); + + edca_params->edca_ac_vi.vi_cwmin = + cfg_get(psoc, CFG_EDCA_VI_CWMIN); + edca_params->edca_ac_vi.vi_cwmax = + cfg_get(psoc, CFG_EDCA_VI_CWMAX); + edca_params->edca_ac_vi.vi_aifs = + cfg_get(psoc, CFG_EDCA_VI_AIFS); + + edca_params->edca_ac_bk.bk_cwmin = + cfg_get(psoc, CFG_EDCA_BK_CWMIN); + edca_params->edca_ac_bk.bk_cwmax = + cfg_get(psoc, CFG_EDCA_BK_CWMAX); + edca_params->edca_ac_bk.bk_aifs = + cfg_get(psoc, CFG_EDCA_BK_AIFS); + + edca_params->edca_ac_be.be_cwmin = + cfg_get(psoc, CFG_EDCA_BE_CWMIN); + edca_params->edca_ac_be.be_cwmax = + cfg_get(psoc, CFG_EDCA_BE_CWMAX); + edca_params->edca_ac_be.be_aifs = + cfg_get(psoc, CFG_EDCA_BE_AIFS); +} + +static void mlme_init_edca_params(struct wlan_objmgr_psoc *psoc, + struct wlan_mlme_edca_params *edca_params) { mlme_init_edca_ani_cfg(edca_params); mlme_init_edca_wme_cfg(edca_params); mlme_init_edca_etsi_cfg(edca_params); + mlme_init_qos_edca_params(psoc, edca_params); } static void mlme_init_timeout_cfg(struct wlan_objmgr_psoc *psoc, @@ -1222,8 +1260,8 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc) mlme_cfg = &mlme_obj->cfg; mlme_init_generic_cfg(psoc, &mlme_cfg->gen); - mlme_init_edca_params(&mlme_cfg->edca_params); mlme_init_timeout_cfg(psoc, &mlme_cfg->timeouts); + mlme_init_edca_params(psoc, &mlme_cfg->edca_params); 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); diff --git a/components/mlme/dispatcher/inc/cfg_mlme_edca_params.h b/components/mlme/dispatcher/inc/cfg_mlme_edca_params.h index e3072fc298d6..7c34cfc56e77 100644 --- a/components/mlme/dispatcher/inc/cfg_mlme_edca_params.h +++ b/components/mlme/dispatcher/inc/cfg_mlme_edca_params.h @@ -263,6 +263,352 @@ STR_EDCA_ETSI_ACVO, \ "EDCA ETSI ACVO BROADCAST") +/* + * + * gEnableEdcaParams - Enable edca parameter + * @Min: 0 + * @Max: 1 + * @Default: 0 + * + * This ini is used if gEnableEdcaParams is set to 1, params gEdcaVoCwmin, + * gEdcaViCwmin, gEdcaBkCwmin, gEdcaBeCwmin, gEdcaVoCwmax, + * gEdcaViCwmax, gEdcaBkCwmax, gEdcaBeCwmax, gEdcaVoAifs, + * gEdcaViAifs, gEdcaBkAifs and gEdcaBeAifs values are used + * to overwrite the values received from AP + * + * Related: None + * + * Supported Feature: STA + * + * Usage: Internal/External + * + * + */ +#define CFG_EDCA_ENABLE_PARAM CFG_INI_BOOL( \ + "gEnableEdcaParams", \ + 0, \ + "Enable edca parameter") + +/* + * + * gEdcaVoCwmin - Set Cwmin value for EDCA_AC_VO + * @Min: 0 + * @Max: 0x15 + * @Default: 2 + * + * This ini is used to set default Cwmin value for EDCA_AC_VO + * Cwmin value for EDCA_AC_VO. CWVomin = 2^gEdcaVoCwmin -1 + * + * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin etc + * are aplicable + * + * Supported Feature: STA + * + * Usage: Internal/External + * + * + */ +#define CFG_EDCA_VO_CWMIN CFG_INI_UINT( \ + "gEdcaVoCwmin", \ + 0x0, \ + 15, \ + 2, \ + CFG_VALUE_OR_DEFAULT, \ + "Cwmin value for EDCA_AC_VO") + +/* + * + * gEdcaVoCwmax - Set Cwmax value for EDCA_AC_VO + * @Min: 0 + * @Max: 15 + * @Default: 3 + * + * This ini is used to set default Cwmax value for EDCA_AC_VO + * Cwmax value for EDCA_AC_VO. CWVomax = 2^gEdcaVoCwmax -1 + * + * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin + * etc are aplicable + * + * Supported Feature: STA + * + * Usage: Internal/External + * + * + */ +#define CFG_EDCA_VO_CWMAX CFG_INI_UINT( \ + "gEdcaVoCwmax", \ + 0x0, \ + 15, \ + 3, \ + CFG_VALUE_OR_DEFAULT, \ + "Cwmax value for EDCA_AC_VO") + +/* + * + * gEdcaVoAifs - Set Aifs value for EDCA_AC_VO + * @Min: 0 + * @Max: 15 + * @Default: 2 + * + * This ini is used to set default Aifs value for EDCA_AC_VO + * + * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin + * etc are aplicable + * + * Supported Feature: STA + * + * Usage: Internal/External + * + * + */ +#define CFG_EDCA_VO_AIFS CFG_INI_UINT( \ + "gEdcaVoAifs", \ + 0x0, \ + 15, \ + 2, \ + CFG_VALUE_OR_DEFAULT, \ + "default Aifs value for EDCA_AC_VO") + +/* + * + * gEdcaViCwmin - Set Cwmin value for EDCA_AC_VI + * @Min: 0x0 + * @Max: 15 + * @Default: 3 + * + * This ini is used to set default value for EDCA_AC_VI + * Cwmin value for EDCA_AC_VI. CWVimin = 2^gEdcaViCwmin -1 + * + * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin + * etc are aplicable + * + * Supported Feature: STA + * + * Usage: Internal/External + * + * + */ +#define CFG_EDCA_VI_CWMIN CFG_INI_UINT( \ + "gEdcaViCwmin", \ + 0x0, \ + 15, \ + 3, \ + CFG_VALUE_OR_DEFAULT, \ + "Cwmin value for EDCA_AC_VI") + +/* + * + * gEdcaViCwmax - Set Cwmax value for EDCA_AC_VI + * @Min: 0 + * @Max: 15 + * @Default: 4 + * + * This ini is used to set default Cwmax value for EDCA_AC_VI + * Cwmax value for EDCA_AC_VI. CWVimax = 2^gEdcaViCwmax -1 + * + * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin + * etc are aplicable + * + * Supported Feature: STA + * + * Usage: Internal/External + * + * + */ +#define CFG_EDCA_VI_CWMAX CFG_INI_UINT( \ + "gEdcaViCwmax", \ + 0x0, \ + 15, \ + 4, \ + CFG_VALUE_OR_DEFAULT, \ + "cwmax value for EDCA_AC_VI") + +/* + * + * gEdcaViAifs - Set Aifs value for EDCA_AC_VI + * @Min: 0 + * @Max: 15 + * @Default: 2 + * + * This ini is used to set default Aifs value for EDCA_AC_VI + * + * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin + * etc are aplicable + * + * Supported Feature: STA + * + * Usage: Internal/External + * + * + */ +#define CFG_EDCA_VI_AIFS CFG_INI_UINT( \ + "gEdcaViAifs", \ + 0x0, \ + 15, \ + 2, \ + CFG_VALUE_OR_DEFAULT, \ + "default Aifs value for EDCA_AC_VI") + +/* + * + * gEdcaBkCwmin - Set Cwmin value for EDCA_AC_BK + * @Min: 0x0 + * @Max: 15 + * @Default: 4 + * + * This ini is used to set default Cwmin value for EDCA_AC_BK + * Cwmin value for EDCA_AC_BK. CWBkmin = 2^gEdcaBkCwmin -1 + * + * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin + * etc are aplicable + * + * Supported Feature: STA + * + * Usage: Internal/External + * + */ +#define CFG_EDCA_BK_CWMIN CFG_INI_UINT( \ + "gEdcaBkCwmin", \ + 0x0, \ + 15, \ + 4, \ + CFG_VALUE_OR_DEFAULT, \ + "Cwmin value for EDCA_AC_BK") + +/* + * + * gEdcaBkCwmax - Set Cwmax value for EDCA_AC_BK + * @Min: 0 + * @Max: 15 + * @Default: 10 + * + * This ini is used to set default Cwmax value for EDCA_AC_BK + * Cwmax value for EDCA_AC_BK. CWBkmax = 2^gEdcaBkCwmax -1 + * + * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin + * etc are aplicable + * + * Supported Feature: STA + * + * Usage: Internal/External + * + * + */ +#define CFG_EDCA_BK_CWMAX CFG_INI_UINT( \ + "gEdcaBkCwmax", \ + 0, \ + 15, \ + 10, \ + CFG_VALUE_OR_DEFAULT, \ + "cwmax value for EDCA_AC_BK") + +/* + * + * gEdcaBkAifs - Set Aifs value for EDCA_AC_BK + * @Min: 0 + * @Max: 15 + * @Default: 7 + * + * This ini is used to set default Aifs value for EDCA_AC_BK + * + * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin + * etc are aplicable + * + * Supported Feature: STA + * + * Usage: Internal/External + * + * + */ +#define CFG_EDCA_BK_AIFS CFG_INI_UINT( \ + "gEdcaBkAifs", \ + 0, \ + 15, \ + 7, \ + CFG_VALUE_OR_DEFAULT, \ + "default Aifs value for EDCA_AC_BK") + +/* + * + * gEdcaBeCwmin - Set Cwmin value for EDCA_AC_BE + * @Min: 0x0 + * @Max: 15 + * @Default: 4 + * + * This ini is used to set default Cwmin value for EDCA_AC_BE + * Cwmin value for EDCA_AC_BE. CWBemin = 2^gEdcaBeCwmin + * + * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin + * etc are aplicable + * + * Supported Feature: STA + * + * Usage: Internal/External + * + * + */ +#define CFG_EDCA_BE_CWMIN CFG_INI_UINT( \ + "gEdcaBeCwmin", \ + 0x0, \ + 15, \ + 4, \ + CFG_VALUE_OR_DEFAULT, \ + "Cwmin value for EDCA_AC_BE") + +/* + * + * gEdcaBeCwmax - Set Cwmax value for EDCA_AC_BE + * @Min: 0 + * @Max: 15 + * @Default: 10 + * + * This ini is used to set default Cwmax value for EDCA_AC_BE + * Cwmax value for EDCA_AC_BE. CWBemax = 2^gEdcaBeCwmax -1 + * + * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin + * etc are aplicable + * + * Supported Feature: STA + * + * Usage: Internal/External + * + * + */ + +#define CFG_EDCA_BE_CWMAX CFG_INI_UINT( \ + "gEdcaBeCwmax", \ + 0, \ + 15, \ + 10, \ + CFG_VALUE_OR_DEFAULT, \ + "cwmax value for EDCA_AC_BE") + +/* + * + * gEdcaBeAifs - Set Aifs value for EDCA_AC_BE + * @Min: 0 + * @Max: 15 + * @Default: 3 + * + * This ini is used to set default Aifs value for EDCA_AC_BE + * + * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin + * etc are aplicable + * + * Supported Feature: STA + * + * Usage: Internal/External + * + * + */ +#define CFG_EDCA_BE_AIFS CFG_INI_UINT( \ + "gEdcaBeAifs", \ + 0, \ + 15, \ + 3, \ + CFG_VALUE_OR_DEFAULT, \ + "default Aifs value for EDCA_AC_BE") + #define CFG_EDCA_PARAMS_ALL \ CFG(CFG_EDCA_ANI_ACBK_LOCAL) \ CFG(CFG_EDCA_ANI_ACBE_LOCAL) \ @@ -287,6 +633,19 @@ CFG(CFG_EDCA_ETSI_ACBK) \ CFG(CFG_EDCA_ETSI_ACBE) \ CFG(CFG_EDCA_ETSI_ACVI) \ - CFG(CFG_EDCA_ETSI_ACVO) + CFG(CFG_EDCA_ETSI_ACVO) \ + CFG(CFG_EDCA_ENABLE_PARAM) \ + CFG(CFG_EDCA_VO_CWMIN) \ + CFG(CFG_EDCA_VO_CWMAX) \ + CFG(CFG_EDCA_VO_AIFS) \ + CFG(CFG_EDCA_VI_CWMIN) \ + CFG(CFG_EDCA_VI_CWMAX) \ + CFG(CFG_EDCA_VI_AIFS) \ + CFG(CFG_EDCA_BK_CWMIN) \ + CFG(CFG_EDCA_BK_CWMAX) \ + CFG(CFG_EDCA_BK_AIFS) \ + CFG(CFG_EDCA_BE_CWMIN) \ + CFG(CFG_EDCA_BE_CWMAX) \ + CFG(CFG_EDCA_BE_AIFS) #endif /* __CFG_MLME_EDCA__PARAM_H */ diff --git a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h index a1a17c6bd16c..0e2230b3fe78 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h @@ -122,6 +122,58 @@ enum e_edca_type { #define CFG_EDCA_PROFILE_CWMAXG_IDX 14 #define CFG_EDCA_PROFILE_TXOPG_IDX 16 +/** + * struct mlme_edca_ac_vo - cwmin, cwmax and aifs value for edca_ac_vo + * + * @vo_cwmin: cwmin value for voice + * @vo_cwmax: cwmax value for voice + * @vo_aifs: aifs value for voice + */ +struct mlme_edca_ac_vo { + uint32_t vo_cwmin; + uint32_t vo_cwmax; + uint32_t vo_aifs; +}; + +/** + * struct mlme_edca_ac_vi - cwmin, cwmax and aifs value for edca_ac_vi + * + * @vi_cwmin: cwmin value for video + * @vi_cwmax: cwmax value for video + * @vi_aifs: aifs value for video + */ +struct mlme_edca_ac_vi { + uint32_t vi_cwmin; + uint32_t vi_cwmax; + uint32_t vi_aifs; +}; + +/** + * struct mlme_edca_ac_bk - cwmin, cwmax and aifs value for edca_ac_bk + * + * @bk_cwmin: cwmin value for background + * @bk_cwmax: cwmax value for background + * @bk_aifs: aifs value for background + */ +struct mlme_edca_ac_bk { + uint32_t bk_cwmin; + uint32_t bk_cwmax; + uint32_t bk_aifs; +}; + +/** + * struct mlme_edca_ac_be - cwmin, cwmax and aifs value for edca_ac_be + * + * @be_cwmin: cwmin value for best effort + * @be_cwmax: cwmax value for best effort + * @be_aifs: aifs value for best effort + */ +struct mlme_edca_ac_be { + uint32_t be_cwmin; + uint32_t be_cwmax; + uint32_t be_aifs; +}; + /** * struct mlme_edca_params - EDCA pramaters related config items * @@ -149,6 +201,11 @@ enum e_edca_type { * @etsi_acbe_b: EDCA parameters for ETSI bcast access category best effort * @etsi_acvi_b: EDCA parameters for ETSI bcast access category video * @etsi_acvo_b: EDCA parameters for ETSI bcast access category voice + * @enable_edca_params: Enable edca parameter + * @mlme_edca_ac_vo: value for edca_ac_vo + * @mlme_edca_ac_vi: value for edca_ac_vi + * @mlme_edca_ac_bk: value for edca_ac_bk + * @mlme_edca_ac_be: value for edca_ac_be */ struct wlan_mlme_edca_params { struct mlme_cfg_str ani_acbk_l; @@ -177,6 +234,12 @@ struct wlan_mlme_edca_params { struct mlme_cfg_str etsi_acbe_b; struct mlme_cfg_str etsi_acvi_b; struct mlme_cfg_str etsi_acvo_b; + + bool enable_edca_params; + struct mlme_edca_ac_vo edca_ac_vo; + struct mlme_edca_ac_vi edca_ac_vi; + struct mlme_edca_ac_bk edca_ac_bk; + struct mlme_edca_ac_be edca_ac_be; }; #define WLAN_CFG_MFR_NAME_LEN (63) diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h index cb46f010167f..e0daae754977 100644 --- a/core/hdd/inc/wlan_hdd_cfg.h +++ b/core/hdd/inc/wlan_hdd_cfg.h @@ -5431,327 +5431,6 @@ enum hdd_link_speed_rpt_type { #define CFG_SET_TSF_PTP_OPT_DEFAULT (0xf) #endif -/* - * - * gEnableEdcaParams - Enable edca parameter - * @Min: 0 - * @Max: 1 - * @Default: 0 - * - * This ini is used if gEnableEdcaParams is set to 1, params gEdcaVoCwmin, - * gEdcaViCwmin, gEdcaBkCwmin, gEdcaBeCwmin, gEdcaVoCwmax, - * gEdcaViCwmax, gEdcaBkCwmax, gEdcaBeCwmax, gEdcaVoAifs, - * gEdcaViAifs, gEdcaBkAifs and gEdcaBeAifs values are used - * to overwrite the values received from AP - * - * Related: None - * - * Supported Feature: STA - * - * Usage: Internal/External - * - * - */ - -#define CFG_ENABLE_EDCA_INI_NAME "gEnableEdcaParams" -#define CFG_ENABLE_EDCA_INI_MIN (0) -#define CFG_ENABLE_EDCA_INI_MAX (1) -#define CFG_ENABLE_EDCA_INI_DEFAULT (0) - -/* - * - * gEdcaVoCwmin - Set Cwmin value for EDCA_AC_VO - * @Min: 0 - * @Max: 0x15 - * @Default: 2 - * - * This ini is used to set default Cwmin value for EDCA_AC_VO - * Cwmin value for EDCA_AC_VO. CWVomin = 2^gEdcaVoCwmin -1 - * - * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin etc - * are aplicable - * - * Supported Feature: STA - * - * Usage: Internal/External - * - * - */ - -#define CFG_EDCA_VO_CWMIN_VALUE_NAME "gEdcaVoCwmin" -#define CFG_EDCA_VO_CWMIN_VALUE_MIN (0x0) -#define CFG_EDCA_VO_CWMIN_VALUE_MAX (15) -#define CFG_EDCA_VO_CWMIN_VALUE_DEFAULT (2) - -/* - * - * gEdcaViCwmin - Set Cwmin value for EDCA_AC_VI - * @Min: 0x0 - * @Max: 15 - * @Default: 3 - * - * This ini is used to set default value for EDCA_AC_VI - * Cwmin value for EDCA_AC_VI. CWVimin = 2^gEdcaViCwmin -1 - * - * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin - * etc are aplicable - * - * Supported Feature: STA - * - * Usage: Internal/External - * - * - */ - -#define CFG_EDCA_VI_CWMIN_VALUE_NAME "gEdcaViCwmin" -#define CFG_EDCA_VI_CWMIN_VALUE_MIN (0x0) -#define CFG_EDCA_VI_CWMIN_VALUE_MAX (15) -#define CFG_EDCA_VI_CWMIN_VALUE_DEFAULT (3) - -/* - * - * gEdcaBkCwmin - Set Cwmin value for EDCA_AC_BK - * @Min: 0x0 - * @Max: 15 - * @Default: 4 - * - * This ini is used to set default Cwmin value for EDCA_AC_BK - * Cwmin value for EDCA_AC_BK. CWBkmin = 2^gEdcaBkCwmin -1 - * - * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin - * etc are aplicable - * - * Supported Feature: STA - * - * Usage: Internal/External - * - */ - -#define CFG_EDCA_BK_CWMIN_VALUE_NAME "gEdcaBkCwmin" -#define CFG_EDCA_BK_CWMIN_VALUE_MIN (0x0) -#define CFG_EDCA_BK_CWMIN_VALUE_MAX (15) -#define CFG_EDCA_BK_CWMIN_VALUE_DEFAULT (4) - -/* - * - * gEdcaBeCwmin - Set Cwmin value for EDCA_AC_BE - * @Min: 0x0 - * @Max: 15 - * @Default: 4 - * - * This ini is used to set default Cwmin value for EDCA_AC_BE - * Cwmin value for EDCA_AC_BE. CWBemin = 2^gEdcaBeCwmin - * - * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin - * etc are aplicable - * - * Supported Feature: STA - * - * Usage: Internal/External - * - * - */ - -#define CFG_EDCA_BE_CWMIN_VALUE_NAME "gEdcaBeCwmin" -#define CFG_EDCA_BE_CWMIN_VALUE_MIN (0x0) -#define CFG_EDCA_BE_CWMIN_VALUE_MAX (15) -#define CFG_EDCA_BE_CWMIN_VALUE_DEFAULT (4) - -/* - * - * gEdcaVoCwmax - Set Cwmax value for EDCA_AC_VO - * @Min: 0 - * @Max: 15 - * @Default: 3 - * - * This ini is used to set default Cwmax value for EDCA_AC_VO - * Cwmax value for EDCA_AC_VO. CWVomax = 2^gEdcaVoCwmax -1 - * - * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin - * etc are aplicable - * - * Supported Feature: STA - * - * Usage: Internal/External - * - * - */ - -#define CFG_EDCA_VO_CWMAX_VALUE_NAME "gEdcaVoCwmax" -#define CFG_EDCA_VO_CWMAX_VALUE_MIN (0) -#define CFG_EDCA_VO_CWMAX_VALUE_MAX (15) -#define CFG_EDCA_VO_CWMAX_VALUE_DEFAULT (3) - -/* - * - * gEdcaViCwmax - Set Cwmax value for EDCA_AC_VI - * @Min: 0 - * @Max: 15 - * @Default: 4 - * - * This ini is used to set default Cwmax value for EDCA_AC_VI - * Cwmax value for EDCA_AC_VI. CWVimax = 2^gEdcaViCwmax -1 - * - * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin - * etc are aplicable - * - * Supported Feature: STA - * - * Usage: Internal/External - * - * - */ -#define CFG_EDCA_VI_CWMAX_VALUE_NAME "gEdcaViCwmax" -#define CFG_EDCA_VI_CWMAX_VALUE_MIN (0) -#define CFG_EDCA_VI_CWMAX_VALUE_MAX (15) -#define CFG_EDCA_VI_CWMAX_VALUE_DEFAULT (4) - -/* - * - * gEdcaBkCwmax - Set Cwmax value for EDCA_AC_BK - * @Min: 0 - * @Max: 15 - * @Default: 10 - * - * This ini is used to set default Cwmax value for EDCA_AC_BK - * Cwmax value for EDCA_AC_BK. CWBkmax = 2^gEdcaBkCwmax -1 - * - * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin - * etc are aplicable - * - * Supported Feature: STA - * - * Usage: Internal/External - * - * - */ - -#define CFG_EDCA_BK_CWMAX_VALUE_NAME "gEdcaBkCwmax" -#define CFG_EDCA_BK_CWMAX_VALUE_MIN (0) -#define CFG_EDCA_BK_CWMAX_VALUE_MAX (15) -#define CFG_EDCA_BK_CWMAX_VALUE_DEFAULT (10) - -/* - * - * gEdcaBeCwmax - Set Cwmax value for EDCA_AC_BE - * @Min: 0 - * @Max: 15 - * @Default: 10 - * - * This ini is used to set default Cwmax value for EDCA_AC_BE - * Cwmax value for EDCA_AC_BE. CWBemax = 2^gEdcaBeCwmax -1 - * - * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin - * etc are aplicable - * - * Supported Feature: STA - * - * Usage: Internal/External - * - * - */ - -#define CFG_EDCA_BE_CWMAX_VALUE_NAME "gEdcaBeCwmax" -#define CFG_EDCA_BE_CWMAX_VALUE_MIN (0) -#define CFG_EDCA_BE_CWMAX_VALUE_MAX (15) -#define CFG_EDCA_BE_CWMAX_VALUE_DEFAULT (10) - -/* - * - * gEdcaVoAifs - Set Aifs value for EDCA_AC_VO - * @Min: 0 - * @Max: 15 - * @Default: 2 - * - * This ini is used to set default Aifs value for EDCA_AC_VO - * - * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin - * etc are aplicable - * - * Supported Feature: STA - * - * Usage: Internal/External - * - * - */ - -#define CFG_EDCA_VO_AIFS_VALUE_NAME "gEdcaVoAifs" -#define CFG_EDCA_VO_AIFS_VALUE_MIN (0) -#define CFG_EDCA_VO_AIFS_VALUE_MAX (15) -#define CFG_EDCA_VO_AIFS_VALUE_DEFAULT (2) - -/* - * - * gEdcaViAifs - Set Aifs value for EDCA_AC_VI - * @Min: 0 - * @Max: 15 - * @Default: 2 - * - * This ini is used to set default Aifs value for EDCA_AC_VI - * - * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin - * etc are aplicable - * - * Supported Feature: STA - * - * Usage: Internal/External - * - * - */ - -#define CFG_EDCA_VI_AIFS_VALUE_NAME "gEdcaViAifs" -#define CFG_EDCA_VI_AIFS_VALUE_MIN (0) -#define CFG_EDCA_VI_AIFS_VALUE_MAX (15) -#define CFG_EDCA_VI_AIFS_VALUE_DEFAULT (2) - -/* - * - * gEdcaBkAifs - Set Aifs value for EDCA_AC_BK - * @Min: 0 - * @Max: 15 - * @Default: 7 - * - * This ini is used to set default Aifs value for EDCA_AC_BK - * - * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin - * etc are aplicable - * - * Supported Feature: STA - * - * Usage: Internal/External - * - * - */ - -#define CFG_EDCA_BK_AIFS_VALUE_NAME "gEdcaBkAifs" -#define CFG_EDCA_BK_AIFS_VALUE_MIN (0) -#define CFG_EDCA_BK_AIFS_VALUE_MAX (15) -#define CFG_EDCA_BK_AIFS_VALUE_DEFAULT (7) - -/* - * - * gEdcaBeAifs - Set Aifs value for EDCA_AC_BE - * @Min: 0 - * @Max: 15 - * @Default: 3 - * - * This ini is used to set default Aifs value for EDCA_AC_BE - * - * Related: If gEnableEdcaParams is set to 1, params gEdcaVoCwmin - * etc are aplicable - * - * Supported Feature: STA - * - * Usage: Internal/External - * - * - */ - -#define CFG_EDCA_BE_AIFS_VALUE_NAME "gEdcaBeAifs" -#define CFG_EDCA_BE_AIFS_VALUE_MIN (0) -#define CFG_EDCA_BE_AIFS_VALUE_MAX (15) -#define CFG_EDCA_BE_AIFS_VALUE_DEFAULT (3) - /* * * gEnableTxSchedWrrVO - Set TX sched parameters for VO @@ -8155,19 +7834,6 @@ struct hdd_config { uint32_t min_delay_btw_roam_scans; uint32_t roam_trigger_reason_bitmask; uint32_t roam_bg_scan_client_bitmap; - bool enable_edca_params; - uint32_t edca_vo_cwmin; - uint32_t edca_vi_cwmin; - uint32_t edca_bk_cwmin; - uint32_t edca_be_cwmin; - uint32_t edca_vo_cwmax; - uint32_t edca_vi_cwmax; - uint32_t edca_bk_cwmax; - uint32_t edca_be_cwmax; - uint32_t edca_vo_aifs; - uint32_t edca_vi_aifs; - uint32_t edca_bk_aifs; - uint32_t edca_be_aifs; /* Tuning TX sched parameters for VO (skip credit limit credit disc) */ uint8_t tx_sched_wrr_vo[TX_SCHED_WRR_PARAM_STRING_LENGTH]; diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c index 244a4e4e6f44..18fe17674743 100644 --- a/core/hdd/src/wlan_hdd_cfg.c +++ b/core/hdd/src/wlan_hdd_cfg.c @@ -2316,110 +2316,6 @@ struct reg_table_entry g_registry_table[] = { CFG_ROAM_SCAN_TRIGGER_REASON_BITMASK_MIN, CFG_ROAM_SCAN_TRIGGER_REASON_BITMASK_MAX), - REG_VARIABLE(CFG_ENABLE_EDCA_INI_NAME, WLAN_PARAM_Integer, - struct hdd_config, enable_edca_params, - VAR_FLAGS_OPTIONAL | - VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_ENABLE_EDCA_INI_DEFAULT, - CFG_ENABLE_EDCA_INI_MIN, - CFG_ENABLE_EDCA_INI_MAX), - - REG_VARIABLE(CFG_EDCA_VO_CWMIN_VALUE_NAME, WLAN_PARAM_Integer, - struct hdd_config, edca_vo_cwmin, - VAR_FLAGS_OPTIONAL | - VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_EDCA_VO_CWMIN_VALUE_DEFAULT, - CFG_EDCA_VO_CWMIN_VALUE_MIN, - CFG_EDCA_VO_CWMIN_VALUE_MAX), - - REG_VARIABLE(CFG_EDCA_VI_CWMIN_VALUE_NAME, WLAN_PARAM_Integer, - struct hdd_config, edca_vi_cwmin, - VAR_FLAGS_OPTIONAL | - VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_EDCA_VI_CWMIN_VALUE_DEFAULT, - CFG_EDCA_VI_CWMIN_VALUE_MIN, - CFG_EDCA_VI_CWMIN_VALUE_MAX), - - REG_VARIABLE(CFG_EDCA_BK_CWMIN_VALUE_NAME, WLAN_PARAM_Integer, - struct hdd_config, edca_bk_cwmin, - VAR_FLAGS_OPTIONAL | - VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_EDCA_BK_CWMIN_VALUE_DEFAULT, - CFG_EDCA_BK_CWMIN_VALUE_MIN, - CFG_EDCA_BK_CWMIN_VALUE_MAX), - - REG_VARIABLE(CFG_EDCA_BE_CWMIN_VALUE_NAME, WLAN_PARAM_Integer, - struct hdd_config, edca_be_cwmin, - VAR_FLAGS_OPTIONAL | - VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_EDCA_BE_CWMIN_VALUE_DEFAULT, - CFG_EDCA_BE_CWMIN_VALUE_MIN, - CFG_EDCA_BE_CWMIN_VALUE_MAX), - - REG_VARIABLE(CFG_EDCA_VO_CWMAX_VALUE_NAME, WLAN_PARAM_Integer, - struct hdd_config, edca_vo_cwmax, - VAR_FLAGS_OPTIONAL | - VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_EDCA_VO_CWMAX_VALUE_DEFAULT, - CFG_EDCA_VO_CWMAX_VALUE_MIN, - CFG_EDCA_VO_CWMAX_VALUE_MAX), - - REG_VARIABLE(CFG_EDCA_VI_CWMAX_VALUE_NAME, WLAN_PARAM_Integer, - struct hdd_config, edca_vi_cwmax, - VAR_FLAGS_OPTIONAL | - VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_EDCA_VI_CWMAX_VALUE_DEFAULT, - CFG_EDCA_VI_CWMAX_VALUE_MIN, - CFG_EDCA_VI_CWMAX_VALUE_MAX), - - REG_VARIABLE(CFG_EDCA_BK_CWMAX_VALUE_NAME, WLAN_PARAM_Integer, - struct hdd_config, edca_bk_cwmax, - VAR_FLAGS_OPTIONAL | - VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_EDCA_BK_CWMAX_VALUE_DEFAULT, - CFG_EDCA_BK_CWMAX_VALUE_MIN, - CFG_EDCA_BK_CWMAX_VALUE_MAX), - - REG_VARIABLE(CFG_EDCA_BE_CWMAX_VALUE_NAME, WLAN_PARAM_Integer, - struct hdd_config, edca_be_cwmax, - VAR_FLAGS_OPTIONAL | - VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_EDCA_BE_CWMAX_VALUE_DEFAULT, - CFG_EDCA_BE_CWMAX_VALUE_MIN, - CFG_EDCA_BE_CWMAX_VALUE_MAX), - - REG_VARIABLE(CFG_EDCA_VO_AIFS_VALUE_NAME, WLAN_PARAM_Integer, - struct hdd_config, edca_vo_aifs, - VAR_FLAGS_OPTIONAL | - VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_EDCA_VO_AIFS_VALUE_DEFAULT, - CFG_EDCA_VO_AIFS_VALUE_MIN, - CFG_EDCA_VO_AIFS_VALUE_MAX), - - REG_VARIABLE(CFG_EDCA_VI_AIFS_VALUE_NAME, WLAN_PARAM_Integer, - struct hdd_config, edca_vi_aifs, - VAR_FLAGS_OPTIONAL | - VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_EDCA_VI_AIFS_VALUE_DEFAULT, - CFG_EDCA_VI_AIFS_VALUE_MIN, - CFG_EDCA_VI_AIFS_VALUE_MAX), - - REG_VARIABLE(CFG_EDCA_BK_AIFS_VALUE_NAME, WLAN_PARAM_Integer, - struct hdd_config, edca_bk_aifs, - VAR_FLAGS_OPTIONAL | - VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_EDCA_BK_AIFS_VALUE_DEFAULT, - CFG_EDCA_BK_AIFS_VALUE_MIN, - CFG_EDCA_BK_AIFS_VALUE_MAX), - - REG_VARIABLE(CFG_EDCA_BE_AIFS_VALUE_NAME, WLAN_PARAM_Integer, - struct hdd_config, edca_be_aifs, - VAR_FLAGS_OPTIONAL | - VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_EDCA_BE_AIFS_VALUE_DEFAULT, - CFG_EDCA_BE_AIFS_VALUE_MIN, - CFG_EDCA_BE_AIFS_VALUE_MAX), - REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_VO_NAME, WLAN_PARAM_String, struct hdd_config, tx_sched_wrr_vo, @@ -4709,35 +4605,6 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx) smeConfig->csrConfig.roam_force_rssi_trigger = hdd_ctx->config->roam_force_rssi_trigger; - smeConfig->csrConfig.enable_edca_params = - pConfig->enable_edca_params; - - smeConfig->csrConfig.edca_vo_cwmin = - pConfig->edca_vo_cwmin; - smeConfig->csrConfig.edca_vi_cwmin = - pConfig->edca_vi_cwmin; - smeConfig->csrConfig.edca_bk_cwmin = - pConfig->edca_bk_cwmin; - smeConfig->csrConfig.edca_be_cwmin = - pConfig->edca_be_cwmin; - - smeConfig->csrConfig.edca_vo_cwmax = - pConfig->edca_vo_cwmax; - smeConfig->csrConfig.edca_vi_cwmax = - pConfig->edca_vi_cwmax; - smeConfig->csrConfig.edca_bk_cwmax = - pConfig->edca_bk_cwmax; - smeConfig->csrConfig.edca_be_cwmax = - pConfig->edca_be_cwmax; - - smeConfig->csrConfig.edca_vo_aifs = - pConfig->edca_vo_aifs; - smeConfig->csrConfig.edca_vi_aifs = - pConfig->edca_vi_aifs; - smeConfig->csrConfig.edca_bk_aifs = - pConfig->edca_bk_aifs; - smeConfig->csrConfig.edca_be_aifs = - pConfig->edca_be_aifs; smeConfig->csrConfig.sta_roam_policy_params.dfs_mode = CSR_STA_ROAM_POLICY_DFS_ENABLED; smeConfig->csrConfig.sta_roam_policy_params.skip_unsafe_channels = 0; diff --git a/core/mac/src/pe/sch/sch_beacon_process.c b/core/mac/src/pe/sch/sch_beacon_process.c index d1e6d97f62f6..d5aa12fff055 100644 --- a/core/mac/src/pe/sch/sch_beacon_process.c +++ b/core/mac/src/pe/sch/sch_beacon_process.c @@ -1120,6 +1120,11 @@ sch_beacon_edca_process(tpAniSirGlobal pMac, tSirMacEdcaParamSetIE *edca, host_log_qos_edca_pkt_type *log_ptr = NULL; #endif /* FEATURE_WLAN_DIAG_SUPPORT */ + if (!(pMac->mlme_cfg)) { + pe_err("invalid mlme cfg"); + return QDF_STATUS_E_FAILURE; + } + pe_debug("Updating parameter set count: Old %d ---> new %d", session->gLimEdcaParamSetCount, edca->qosInfo.count); @@ -1129,33 +1134,33 @@ sch_beacon_edca_process(tpAniSirGlobal pMac, tSirMacEdcaParamSetIE *edca, session->gLimEdcaParams[EDCA_AC_VI] = edca->acvi; session->gLimEdcaParams[EDCA_AC_VO] = edca->acvo; - if (pMac->roam.configParam.enable_edca_params) { + if (pMac->mlme_cfg->edca_params.enable_edca_params) { session->gLimEdcaParams[EDCA_AC_VO].aci.aifsn = - pMac->roam.configParam.edca_vo_aifs; + pMac->mlme_cfg->edca_params.edca_ac_vo.vo_aifs; session->gLimEdcaParams[EDCA_AC_VI].aci.aifsn = - pMac->roam.configParam.edca_vi_aifs; + pMac->mlme_cfg->edca_params.edca_ac_vi.vi_aifs; session->gLimEdcaParams[EDCA_AC_BK].aci.aifsn = - pMac->roam.configParam.edca_bk_aifs; + pMac->mlme_cfg->edca_params.edca_ac_bk.bk_aifs; session->gLimEdcaParams[EDCA_AC_BE].aci.aifsn = - pMac->roam.configParam.edca_be_aifs; + pMac->mlme_cfg->edca_params.edca_ac_be.be_aifs; session->gLimEdcaParams[EDCA_AC_VO].cw.min = - pMac->roam.configParam.edca_vo_cwmin; + pMac->mlme_cfg->edca_params.edca_ac_vo.vo_cwmin; session->gLimEdcaParams[EDCA_AC_VI].cw.min = - pMac->roam.configParam.edca_vi_cwmin; + pMac->mlme_cfg->edca_params.edca_ac_vi.vi_cwmin; session->gLimEdcaParams[EDCA_AC_BK].cw.min = - pMac->roam.configParam.edca_bk_cwmin; + pMac->mlme_cfg->edca_params.edca_ac_bk.bk_cwmin; session->gLimEdcaParams[EDCA_AC_BE].cw.min = - pMac->roam.configParam.edca_be_cwmin; + pMac->mlme_cfg->edca_params.edca_ac_be.be_cwmin; session->gLimEdcaParams[EDCA_AC_VO].cw.max = - pMac->roam.configParam.edca_vo_cwmax; + pMac->mlme_cfg->edca_params.edca_ac_vo.vo_cwmax; session->gLimEdcaParams[EDCA_AC_VI].cw.max = - pMac->roam.configParam.edca_vi_cwmax; + pMac->mlme_cfg->edca_params.edca_ac_vi.vi_cwmax; session->gLimEdcaParams[EDCA_AC_BK].cw.max = - pMac->roam.configParam.edca_bk_cwmax; + pMac->mlme_cfg->edca_params.edca_ac_bk.bk_cwmax; session->gLimEdcaParams[EDCA_AC_BE].cw.max = - pMac->roam.configParam.edca_be_cwmax; + pMac->mlme_cfg->edca_params.edca_ac_be.be_cwmax; } #ifdef FEATURE_WLAN_DIAG_SUPPORT WLAN_HOST_DIAG_LOG_ALLOC(log_ptr, host_log_qos_edca_pkt_type, @@ -1191,8 +1196,8 @@ sch_beacon_edca_process(tpAniSirGlobal pMac, tSirMacEdcaParamSetIE *edca, } WLAN_HOST_DIAG_LOG_REPORT(log_ptr); #endif /* FEATURE_WLAN_DIAG_SUPPORT */ - pe_debug("Edsa param enabled in ini %d. Updating Local EDCA Params(gLimEdcaParams) to: ", - pMac->roam.configParam.enable_edca_params); + pe_debug("Edca param enabled in ini %d. Updating Local EDCA Params(gLimEdcaParams) to: ", + pMac->mlme_cfg->edca_params.enable_edca_params); for (i = 0; i < MAX_NUM_AC; i++) { pe_debug("AC[%d]: AIFSN: %d, ACM %d, CWmin %d, CWmax %d, TxOp %d", i, session->gLimEdcaParams[i].aci.aifsn, diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h index e73689020825..bd78c9b023f8 100644 --- a/core/sme/inc/csr_api.h +++ b/core/sme/inc/csr_api.h @@ -1187,19 +1187,6 @@ typedef struct tagCsrConfigParam { int8_t roam_bg_scan_bad_rssi_thresh; uint8_t roam_bad_rssi_thresh_offset_2g; uint32_t roam_bg_scan_client_bitmap; - bool enable_edca_params; - uint32_t edca_vo_cwmin; - uint32_t edca_vi_cwmin; - uint32_t edca_bk_cwmin; - uint32_t edca_be_cwmin; - uint32_t edca_vo_cwmax; - uint32_t edca_vi_cwmax; - uint32_t edca_bk_cwmax; - uint32_t edca_be_cwmax; - uint32_t edca_vo_aifs; - uint32_t edca_vi_aifs; - uint32_t edca_bk_aifs; - uint32_t edca_be_aifs; enum scan_dwelltime_adaptive_mode scan_adaptive_dwell_mode; enum scan_dwelltime_adaptive_mode scan_adaptive_dwell_mode_nc; struct csr_sta_roam_policy_params sta_roam_policy_params; diff --git a/core/sme/inc/csr_internal.h b/core/sme/inc/csr_internal.h index 0c1f8a4ea2f5..91b7814e2613 100644 --- a/core/sme/inc/csr_internal.h +++ b/core/sme/inc/csr_internal.h @@ -515,19 +515,6 @@ struct csr_config { uint8_t conc_custom_rule2; uint8_t is_sta_connection_in_5gz_enabled; struct roam_ext_params roam_params; - bool enable_edca_params; - uint32_t edca_vo_cwmin; - uint32_t edca_vi_cwmin; - uint32_t edca_bk_cwmin; - uint32_t edca_be_cwmin; - uint32_t edca_vo_cwmax; - uint32_t edca_vi_cwmax; - uint32_t edca_bk_cwmax; - uint32_t edca_be_cwmax; - uint32_t edca_vo_aifs; - uint32_t edca_vi_aifs; - uint32_t edca_bk_aifs; - uint32_t edca_be_aifs; bool vendor_vht_sap; enum scan_dwelltime_adaptive_mode scan_adaptive_dwell_mode; enum scan_dwelltime_adaptive_mode scan_adaptive_dwell_mode_nc; diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index be22281fb372..5f44ee3bdfb1 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -3073,23 +3073,6 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac, pParam->dual_mac_feature_disable; pMac->sta_sap_scc_on_dfs_chan = pParam->sta_sap_scc_on_dfs_chan; - pMac->roam.configParam.enable_edca_params = - pParam->enable_edca_params; - pMac->roam.configParam.edca_vo_cwmin = pParam->edca_vo_cwmin; - pMac->roam.configParam.edca_vi_cwmin = pParam->edca_vi_cwmin; - pMac->roam.configParam.edca_bk_cwmin = pParam->edca_bk_cwmin; - pMac->roam.configParam.edca_be_cwmin = pParam->edca_be_cwmin; - - pMac->roam.configParam.edca_vo_cwmax = pParam->edca_vo_cwmax; - pMac->roam.configParam.edca_vi_cwmax = pParam->edca_vi_cwmax; - pMac->roam.configParam.edca_bk_cwmax = pParam->edca_bk_cwmax; - pMac->roam.configParam.edca_be_cwmax = pParam->edca_be_cwmax; - - pMac->roam.configParam.edca_vo_aifs = pParam->edca_vo_aifs; - pMac->roam.configParam.edca_vi_aifs = pParam->edca_vi_aifs; - pMac->roam.configParam.edca_bk_aifs = pParam->edca_bk_aifs; - pMac->roam.configParam.edca_be_aifs = pParam->edca_be_aifs; - pMac->roam.configParam.sta_roam_policy.dfs_mode = pParam->sta_roam_policy_params.dfs_mode; pMac->roam.configParam.sta_roam_policy.skip_unsafe_channels = @@ -3302,23 +3285,6 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam) pParam->enableHtSmps = pMac->roam.configParam.enableHtSmps; pParam->htSmps = pMac->roam.configParam.htSmps; pParam->send_smps_action = pMac->roam.configParam.send_smps_action; - - pParam->enable_edca_params = - pMac->roam.configParam.enable_edca_params; - pParam->edca_vo_cwmin = pMac->roam.configParam.edca_vo_cwmin; - pParam->edca_vi_cwmin = pMac->roam.configParam.edca_vi_cwmin; - pParam->edca_bk_cwmin = pMac->roam.configParam.edca_bk_cwmin; - pParam->edca_be_cwmin = pMac->roam.configParam.edca_be_cwmin; - - pParam->edca_vo_cwmax = pMac->roam.configParam.edca_vo_cwmax; - pParam->edca_vi_cwmax = pMac->roam.configParam.edca_vi_cwmax; - pParam->edca_bk_cwmax = pMac->roam.configParam.edca_bk_cwmax; - pParam->edca_be_cwmax = pMac->roam.configParam.edca_be_cwmax; - - pParam->edca_vo_aifs = pMac->roam.configParam.edca_vo_aifs; - pParam->edca_vi_aifs = pMac->roam.configParam.edca_vi_aifs; - pParam->edca_bk_aifs = pMac->roam.configParam.edca_bk_aifs; - pParam->edca_be_aifs = pMac->roam.configParam.edca_be_aifs; pParam->sta_roam_policy_params.dfs_mode = pMac->roam.configParam.sta_roam_policy.dfs_mode; pParam->sta_roam_policy_params.skip_unsafe_channels =