diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h index 10b6c72a8331..b178cf6f8d4c 100644 --- a/core/hdd/inc/wlan_hdd_cfg.h +++ b/core/hdd/inc/wlan_hdd_cfg.h @@ -3023,6 +3023,90 @@ enum dot11p_mode { #define CFG_ENABLE_FATAL_EVENT_TRIGGER_MAX (1) #define CFG_ENABLE_FATAL_EVENT_TRIGGER_DEFAULT (1) +/* + * 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 + */ +#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) + +/* Cwmin value for EDCA_AC_VO. CWVomin = 2^gEdcaVoCwmin -1 */ +#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) + +/* Cwmin value for EDCA_AC_VI. CWVimin = 2^gEdcaViCwmin -1 */ +#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) + +/* Cwmin value for EDCA_AC_BK. CWBkmin = 2^gEdcaBkCwmin -1 */ +#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) + +/* Cwmin value for EDCA_AC_BE. CWBemin = 2^gEdcaBeCwmin -1 */ +#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) + +/* Cwmax value for EDCA_AC_VO. CWVomax = 2^gEdcaVoCwmax -1 */ +#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) + +/* Cwmax value for EDCA_AC_VI. CWVimax = 2^gEdcaViCwmax -1 */ +#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) + +/* Cwmax value for EDCA_AC_BK. CWBkmax = 2^gEdcaBkCwmax -1 */ +#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) + +/* Cwmax value for EDCA_AC_BE. CWBemax = 2^gEdcaBeCwmax -1 */ +#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) + +/* Aifs value for EDCA_AC_VO.*/ +#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) + +/* Aifs value for EDCA_AC_VI.*/ +#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) + +/* Aifs value for EDCA_AC_BK.*/ +#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) + +/* Aifs value for EDCA_AC_BE.*/ +#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) + /*--------------------------------------------------------------------------- Type declarations -------------------------------------------------------------------------*/ @@ -3627,6 +3711,19 @@ struct hdd_config { uint32_t roam_dense_rssi_thresh_offset; bool ignore_peer_ht_opmode; uint32_t roam_dense_min_aps; + 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 enable_fatal_event; bool bpf_enabled; }; diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c index e5a3164a9443..521f6bc51c62 100644 --- a/core/hdd/src/wlan_hdd_cfg.c +++ b/core/hdd/src/wlan_hdd_cfg.c @@ -3795,6 +3795,109 @@ REG_TABLE_ENTRY g_registry_table[] = { CFG_ENABLE_FATAL_EVENT_TRIGGER_MIN, CFG_ENABLE_FATAL_EVENT_TRIGGER_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), }; @@ -5399,6 +5502,49 @@ void hdd_cfg_print(hdd_context_t *pHddCtx) CFG_IDLE_TIME_NAME, pHddCtx->config->idle_time_conc); + + hdd_info("Name = [%s] Value = [%u]", + CFG_ENABLE_EDCA_INI_NAME, + pHddCtx->config->enable_edca_params); + + hdd_info("Name = [%s] Value = [%u]", + CFG_EDCA_VO_CWMIN_VALUE_NAME, + pHddCtx->config->edca_vo_cwmin); + hdd_info("Name = [%s] Value = [%u]", + CFG_EDCA_VI_CWMIN_VALUE_NAME, + pHddCtx->config->edca_vi_cwmin); + hdd_info("Name = [%s] Value = [%u]", + CFG_EDCA_BK_CWMIN_VALUE_NAME, + pHddCtx->config->edca_bk_cwmin); + hdd_info("Name = [%s] Value = [%u]", + CFG_EDCA_BE_CWMIN_VALUE_NAME, + pHddCtx->config->edca_be_cwmin); + + hdd_info("Name = [%s] Value = [%u]", + CFG_EDCA_VO_CWMAX_VALUE_NAME, + pHddCtx->config->edca_vo_cwmax); + hdd_info("Name = [%s] Value = [%u]", + CFG_EDCA_VI_CWMAX_VALUE_NAME, + pHddCtx->config->edca_vi_cwmax); + hdd_info("Name = [%s] Value = [%u]", + CFG_EDCA_BK_CWMAX_VALUE_NAME, + pHddCtx->config->edca_bk_cwmax); + hdd_info("Name = [%s] Value = [%u]", + CFG_EDCA_BE_CWMAX_VALUE_NAME, + pHddCtx->config->edca_be_cwmax); + + hdd_info("Name = [%s] Value = [%u]", + CFG_EDCA_VO_AIFS_VALUE_NAME, + pHddCtx->config->edca_vo_aifs); + hdd_info("Name = [%s] Value = [%u]", + CFG_EDCA_VI_AIFS_VALUE_NAME, + pHddCtx->config->edca_vi_aifs); + hdd_info("Name = [%s] Value = [%u]", + CFG_EDCA_BK_AIFS_VALUE_NAME, + pHddCtx->config->edca_bk_aifs); + hdd_info("Name = [%s] Value = [%u]", + CFG_EDCA_BE_AIFS_VALUE_NAME, + pHddCtx->config->edca_be_aifs); } @@ -6909,6 +7055,36 @@ QDF_STATUS hdd_set_sme_config(hdd_context_t *pHddCtx) smeConfig->csrConfig.enable_fatal_event = pConfig->enable_fatal_event; + 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; + status = sme_update_config(pHddCtx->hHal, smeConfig); if (!QDF_IS_STATUS_SUCCESS(status)) { hddLog(LOGE, "sme_update_config() return failure %d", diff --git a/core/mac/src/pe/sch/sch_beacon_process.c b/core/mac/src/pe/sch/sch_beacon_process.c index be5af48c2ce6..b9cdf0ab931a 100644 --- a/core/mac/src/pe/sch/sch_beacon_process.c +++ b/core/mac/src/pe/sch/sch_beacon_process.c @@ -924,15 +924,44 @@ sch_beacon_edca_process(tpAniSirGlobal pMac, tSirMacEdcaParamSetIE *edca, host_log_qos_edca_pkt_type *log_ptr = NULL; #endif /* FEATURE_WLAN_DIAG_SUPPORT */ - PELOG1(sch_log(pMac, LOG1, + sch_log(pMac, LOG2, FL("Updating parameter set count: Old %d ---> new %d"), - session->gLimEdcaParamSetCount, edca->qosInfo.count);) + session->gLimEdcaParamSetCount, edca->qosInfo.count); session->gLimEdcaParamSetCount = edca->qosInfo.count; session->gLimEdcaParams[EDCA_AC_BE] = edca->acbe; session->gLimEdcaParams[EDCA_AC_BK] = edca->acbk; session->gLimEdcaParams[EDCA_AC_VI] = edca->acvi; session->gLimEdcaParams[EDCA_AC_VO] = edca->acvo; + + if (pMac->roam.configParam.enable_edca_params) { + session->gLimEdcaParams[EDCA_AC_VO].aci.aifsn = + pMac->roam.configParam.edca_vo_aifs; + session->gLimEdcaParams[EDCA_AC_VI].aci.aifsn = + pMac->roam.configParam.edca_vi_aifs; + session->gLimEdcaParams[EDCA_AC_BK].aci.aifsn = + pMac->roam.configParam.edca_bk_aifs; + session->gLimEdcaParams[EDCA_AC_BE].aci.aifsn = + pMac->roam.configParam.edca_be_aifs; + + session->gLimEdcaParams[EDCA_AC_VO].cw.min = + pMac->roam.configParam.edca_vo_cwmin; + session->gLimEdcaParams[EDCA_AC_VI].cw.min = + pMac->roam.configParam.edca_vi_cwmin; + session->gLimEdcaParams[EDCA_AC_BK].cw.min = + pMac->roam.configParam.edca_bk_cwmin; + session->gLimEdcaParams[EDCA_AC_BE].cw.min = + pMac->roam.configParam.edca_be_cwmin; + + session->gLimEdcaParams[EDCA_AC_VO].cw.max = + pMac->roam.configParam.edca_vo_cwmax; + session->gLimEdcaParams[EDCA_AC_VI].cw.max = + pMac->roam.configParam.edca_vi_cwmax; + session->gLimEdcaParams[EDCA_AC_BK].cw.max = + pMac->roam.configParam.edca_bk_cwmax; + session->gLimEdcaParams[EDCA_AC_BE].cw.max = + pMac->roam.configParam.edca_be_cwmax; + } #ifdef FEATURE_WLAN_DIAG_SUPPORT WLAN_HOST_DIAG_LOG_ALLOC(log_ptr, host_log_qos_edca_pkt_type, LOG_WLAN_QOS_EDCA_C); @@ -967,16 +996,17 @@ sch_beacon_edca_process(tpAniSirGlobal pMac, tSirMacEdcaParamSetIE *edca, } WLAN_HOST_DIAG_LOG_REPORT(log_ptr); #endif /* FEATURE_WLAN_DIAG_SUPPORT */ - PELOG1(sch_log(pMac, LOGE, - FL("Updating Local EDCA Params(gLimEdcaParams) to: "));) + sch_log(pMac, LOG1, + FL("Edsa param enabled in ini %d. Updating Local EDCA Params(gLimEdcaParams) to: "), + pMac->roam.configParam.enable_edca_params); for (i = 0; i < MAX_NUM_AC; i++) { - PELOG1(sch_log(pMac, LOG1, + sch_log(pMac, LOG1, FL("AC[%d]: AIFSN: %d, ACM %d, CWmin %d, CWmax %d, TxOp %d"), i, session->gLimEdcaParams[i].aci.aifsn, session->gLimEdcaParams[i].aci.acm, session->gLimEdcaParams[i].cw.min, session->gLimEdcaParams[i].cw.max, - session->gLimEdcaParams[i].txoplimit);) + session->gLimEdcaParams[i].txoplimit); } return eSIR_SUCCESS; } diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h index 802afc321f1d..6ba1766660aa 100644 --- a/core/sme/inc/csr_api.h +++ b/core/sme/inc/csr_api.h @@ -1230,6 +1230,19 @@ typedef struct tagCsrConfigParam { uint32_t obss_active_dwelltime; uint32_t obss_passive_dwelltime; bool ignore_peer_ht_opmode; + 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 enable_fatal_event; } tCsrConfigParam; diff --git a/core/sme/inc/csr_internal.h b/core/sme/inc/csr_internal.h index 17c806f2c585..4785acff94b1 100644 --- a/core/sme/inc/csr_internal.h +++ b/core/sme/inc/csr_internal.h @@ -649,6 +649,19 @@ typedef struct tagCsrConfig { uint32_t obss_active_dwelltime; uint32_t obss_passive_dwelltime; bool ignore_peer_ht_opmode; + 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 enable_fatal_event; } tCsrConfig; diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index aafc83dc0c0d..4c3af49c9048 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -2356,6 +2356,23 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac, pParam->early_stop_scan_min_threshold; pMac->roam.configParam.early_stop_scan_max_threshold = pParam->early_stop_scan_max_threshold; + 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.enable_fatal_event = pParam->enable_fatal_event; @@ -2543,6 +2560,23 @@ 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->enable_fatal_event = pMac->roam.configParam.enable_fatal_event;