diff options
| author | Abhishek Singh <absingh@qti.qualcomm.com> | 2016-04-06 15:15:04 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2016-04-07 15:42:29 +0530 |
| commit | 329b4dafb67bae2cdbfc950cfbc4c8ca6cbba00d (patch) | |
| tree | 6dd1b4f32f26e1ce8dcb9e86ee0f1f28b64db65f | |
| parent | 4d02616002ce3f31c438839068d9b7fa9e98fe98 (diff) | |
qcacld-2.0: Add INI params to set edca min, max and aifs params
prima to qcacld-2.0 propagation
Add INI params gEdcaVoCwmin, gEdcaViCwmin, gEdcaBkCwmin,
gEdcaBeCwmin, gEdcaVoCwmax, gEdcaViCwmax, gEdcaBkCwmax,
gEdcaBeCwmax, gEdcaVoAifs, gEdcaViAifs, gEdcaBkAifs and
gEdcaBeAifs to control edca params for STA mode.
These params will overwrite the values from AP only if
gEnableEdcaParams is set.
Change-Id: I1e688a67df320208416aba4ca40fd870a947e3be
CRs-Fixed: 996685
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_cfg.h | 97 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg.c | 177 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/sch/schBeaconProcess.c | 43 | ||||
| -rw-r--r-- | CORE/SME/inc/csrApi.h | 13 | ||||
| -rw-r--r-- | CORE/SME/inc/csrInternal.h | 13 | ||||
| -rw-r--r-- | CORE/SME/src/csr/csrApiRoam.c | 34 |
6 files changed, 371 insertions, 6 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h index ae1dd94d19a4..f9ad21a47f9b 100644 --- a/CORE/HDD/inc/wlan_hdd_cfg.h +++ b/CORE/HDD/inc/wlan_hdd_cfg.h @@ -3725,6 +3725,90 @@ enum dot11p_mode { #define CFG_CREATE_BUG_REPORT_FOR_SCAN_ENABLE (1) #define CFG_CREATE_BUG_REPORT_FOR_SCAN_DEFAULT (0) +/* + * 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 -------------------------------------------------------------------------*/ @@ -4465,6 +4549,19 @@ struct hdd_config { uint32_t tx_aggregation_size; uint32_t rx_aggregation_size; bool bug_report_for_scan_results; + 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; }; typedef struct hdd_config hdd_config_t; diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c index 10bdedcec115..ac583a18170f 100644 --- a/CORE/HDD/src/wlan_hdd_cfg.c +++ b/CORE/HDD/src/wlan_hdd_cfg.c @@ -4450,6 +4450,110 @@ REG_TABLE_ENTRY g_registry_table[] = CFG_CREATE_BUG_REPORT_FOR_SCAN_DEFAULT, CFG_CREATE_BUG_REPORT_FOR_SCAN_DISABLE, CFG_CREATE_BUG_REPORT_FOR_SCAN_ENABLE), + + REG_VARIABLE(CFG_ENABLE_EDCA_INI_NAME, WLAN_PARAM_Integer, + hdd_config_t, 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, + hdd_config_t, 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, + hdd_config_t, 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, + hdd_config_t, 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, + hdd_config_t, 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, + hdd_config_t, 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, + hdd_config_t, 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, + hdd_config_t, 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, + hdd_config_t, 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, + hdd_config_t, 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, + hdd_config_t, 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, + hdd_config_t, 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, + hdd_config_t, 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), }; @@ -5210,6 +5314,49 @@ void print_hdd_cfg(hdd_context_t *pHddCtx) hddLog(LOG2, "Name = [%s] Value = [%u]", CFG_USE_OTP_MAC, pHddCtx->cfg_ini->g_use_otpmac); + hddLog(LOG2,"Name = [%s] Value = [%u]", + CFG_ENABLE_EDCA_INI_NAME, + pHddCtx->cfg_ini->enable_edca_params); + + hddLog(LOG2, "Name = [%s] Value = [%u]", + CFG_EDCA_VO_CWMIN_VALUE_NAME, + pHddCtx->cfg_ini->edca_vo_cwmin); + hddLog(LOG2, "Name = [%s] Value = [%u]", + CFG_EDCA_VI_CWMIN_VALUE_NAME, + pHddCtx->cfg_ini->edca_vi_cwmin); + hddLog(LOG2, "Name = [%s] Value = [%u]", + CFG_EDCA_BK_CWMIN_VALUE_NAME, + pHddCtx->cfg_ini->edca_bk_cwmin); + hddLog(LOG2, "Name = [%s] Value = [%u]", + CFG_EDCA_BE_CWMIN_VALUE_NAME, + pHddCtx->cfg_ini->edca_be_cwmin); + + hddLog(LOG2, "Name = [%s] Value = [%u]", + CFG_EDCA_VO_CWMAX_VALUE_NAME, + pHddCtx->cfg_ini->edca_vo_cwmax); + hddLog(LOG2, "Name = [%s] Value = [%u]", + CFG_EDCA_VI_CWMAX_VALUE_NAME, + pHddCtx->cfg_ini->edca_vi_cwmax); + hddLog(LOG2, "Name = [%s] Value = [%u]", + CFG_EDCA_BK_CWMAX_VALUE_NAME, + pHddCtx->cfg_ini->edca_bk_cwmax); + hddLog(LOG2, "Name = [%s] Value = [%u]", + CFG_EDCA_BE_CWMAX_VALUE_NAME, + pHddCtx->cfg_ini->edca_be_cwmax); + + hddLog(LOG2, "Name = [%s] Value = [%u]", + CFG_EDCA_VO_AIFS_VALUE_NAME, + pHddCtx->cfg_ini->edca_vo_aifs); + hddLog(LOG2, "Name = [%s] Value = [%u]", + CFG_EDCA_VI_AIFS_VALUE_NAME, + pHddCtx->cfg_ini->edca_vi_aifs); + hddLog(LOG2, "Name = [%s] Value = [%u]", + CFG_EDCA_BK_AIFS_VALUE_NAME, + pHddCtx->cfg_ini->edca_bk_aifs); + hddLog(LOG2, "Name = [%s] Value = [%u]", + CFG_EDCA_BE_AIFS_VALUE_NAME, + pHddCtx->cfg_ini->edca_be_aifs); + hdd_ndp_print_ini_config(pHddCtx); } @@ -7108,6 +7255,36 @@ VOS_STATUS hdd_set_sme_config( hdd_context_t *pHddCtx ) pHddCtx->cfg_ini->tx_aggregation_size; smeConfig->csrConfig.rx_aggregation_size = pHddCtx->cfg_ini->rx_aggregation_size; + + smeConfig->csrConfig.enable_edca_params = + pHddCtx->cfg_ini->enable_edca_params; + + smeConfig->csrConfig.edca_vo_cwmin = + pHddCtx->cfg_ini->edca_vo_cwmin; + smeConfig->csrConfig.edca_vi_cwmin = + pHddCtx->cfg_ini->edca_vi_cwmin; + smeConfig->csrConfig.edca_bk_cwmin = + pHddCtx->cfg_ini->edca_bk_cwmin; + smeConfig->csrConfig.edca_be_cwmin = + pHddCtx->cfg_ini->edca_be_cwmin; + + smeConfig->csrConfig.edca_vo_cwmax = + pHddCtx->cfg_ini->edca_vo_cwmax; + smeConfig->csrConfig.edca_vi_cwmax = + pHddCtx->cfg_ini->edca_vi_cwmax; + smeConfig->csrConfig.edca_bk_cwmax = + pHddCtx->cfg_ini->edca_bk_cwmax; + smeConfig->csrConfig.edca_be_cwmax = + pHddCtx->cfg_ini->edca_be_cwmax; + + smeConfig->csrConfig.edca_vo_aifs = + pHddCtx->cfg_ini->edca_vo_aifs; + smeConfig->csrConfig.edca_vi_aifs = + pHddCtx->cfg_ini->edca_vi_aifs; + smeConfig->csrConfig.edca_bk_aifs = + pHddCtx->cfg_ini->edca_bk_aifs; + smeConfig->csrConfig.edca_be_aifs = + pHddCtx->cfg_ini->edca_be_aifs; halStatus = sme_UpdateConfig( pHddCtx->hHal, smeConfig); if ( !HAL_STATUS_SUCCESS( halStatus ) ) { diff --git a/CORE/MAC/src/pe/sch/schBeaconProcess.c b/CORE/MAC/src/pe/sch/schBeaconProcess.c index 83f374170015..afd1e9682a27 100644 --- a/CORE/MAC/src/pe/sch/schBeaconProcess.c +++ b/CORE/MAC/src/pe/sch/schBeaconProcess.c @@ -880,14 +880,43 @@ tSirRetStatus schBeaconEdcaProcess(tpAniSirGlobal pMac, tSirMacEdcaParamSetIE *e vos_log_qos_edca_pkt_type *log_ptr = NULL; #endif //FEATURE_WLAN_DIAG_SUPPORT - PELOG1(schLog(pMac, LOG1, FL("Updating parameter set count: Old %d ---> new %d"), - psessionEntry->gLimEdcaParamSetCount, edca->qosInfo.count);) + schLog(pMac, LOG2, FL("Updating parameter set count: Old %d ---> new %d"), + psessionEntry->gLimEdcaParamSetCount, edca->qosInfo.count); psessionEntry->gLimEdcaParamSetCount = edca->qosInfo.count; psessionEntry->gLimEdcaParams[EDCA_AC_BE] = edca->acbe; psessionEntry->gLimEdcaParams[EDCA_AC_BK] = edca->acbk; psessionEntry->gLimEdcaParams[EDCA_AC_VI] = edca->acvi; psessionEntry->gLimEdcaParams[EDCA_AC_VO] = edca->acvo; + + if (pMac->roam.configParam.enable_edca_params) { + psessionEntry->gLimEdcaParams[EDCA_AC_VO].aci.aifsn = + pMac->roam.configParam.edca_vo_aifs; + psessionEntry->gLimEdcaParams[EDCA_AC_VI].aci.aifsn = + pMac->roam.configParam.edca_vi_aifs; + psessionEntry->gLimEdcaParams[EDCA_AC_BK].aci.aifsn = + pMac->roam.configParam.edca_bk_aifs; + psessionEntry->gLimEdcaParams[EDCA_AC_BE].aci.aifsn = + pMac->roam.configParam.edca_be_aifs; + + psessionEntry->gLimEdcaParams[EDCA_AC_VO].cw.min = + pMac->roam.configParam.edca_vo_cwmin; + psessionEntry->gLimEdcaParams[EDCA_AC_VI].cw.min = + pMac->roam.configParam.edca_vi_cwmin; + psessionEntry->gLimEdcaParams[EDCA_AC_BK].cw.min = + pMac->roam.configParam.edca_bk_cwmin; + psessionEntry->gLimEdcaParams[EDCA_AC_BE].cw.min = + pMac->roam.configParam.edca_be_cwmin; + + psessionEntry->gLimEdcaParams[EDCA_AC_VO].cw.max = + pMac->roam.configParam.edca_vo_cwmax; + psessionEntry->gLimEdcaParams[EDCA_AC_VI].cw.max = + pMac->roam.configParam.edca_vi_cwmax; + psessionEntry->gLimEdcaParams[EDCA_AC_BK].cw.max = + pMac->roam.configParam.edca_bk_cwmax; + psessionEntry->gLimEdcaParams[EDCA_AC_BE].cw.max = + pMac->roam.configParam.edca_be_cwmax; + } #ifdef FEATURE_WLAN_DIAG_SUPPORT WLAN_VOS_DIAG_LOG_ALLOC(log_ptr, vos_log_qos_edca_pkt_type, LOG_WLAN_QOS_EDCA_C); if(log_ptr) @@ -911,16 +940,18 @@ tSirRetStatus schBeaconEdcaProcess(tpAniSirGlobal pMac, tSirMacEdcaParamSetIE *e } WLAN_VOS_DIAG_LOG_REPORT(log_ptr); #endif //FEATURE_WLAN_DIAG_SUPPORT - PELOG1(schLog(pMac, LOGE, FL("Updating Local EDCA Params(gLimEdcaParams) to: "));) - for(i=0; i<MAX_NUM_AC; i++) + schLog(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(schLog(pMac, LOG1, FL("AC[%d]: AIFSN: %d, ACM %d, CWmin %d, CWmax %d, TxOp %d"), + schLog(pMac, LOG1, FL("AC[%d]: AIFSN: %d, ACM %d, CWmin %d, CWmax %d, TxOp %d"), i, psessionEntry->gLimEdcaParams[i].aci.aifsn, psessionEntry->gLimEdcaParams[i].aci.acm, psessionEntry->gLimEdcaParams[i].cw.min, psessionEntry->gLimEdcaParams[i].cw.max, - psessionEntry->gLimEdcaParams[i].txoplimit);) + psessionEntry->gLimEdcaParams[i].txoplimit); } return eSIR_SUCCESS; diff --git a/CORE/SME/inc/csrApi.h b/CORE/SME/inc/csrApi.h index afe7c0e28976..aa413aeabdf8 100644 --- a/CORE/SME/inc/csrApi.h +++ b/CORE/SME/inc/csrApi.h @@ -1319,6 +1319,19 @@ typedef struct tagCsrConfigParam bool enable_fatal_event; uint32_t tx_aggregation_size; uint32_t rx_aggregation_size; + 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; }tCsrConfigParam; //Tush diff --git a/CORE/SME/inc/csrInternal.h b/CORE/SME/inc/csrInternal.h index 229dfba2bde1..d70c6ac424ef 100644 --- a/CORE/SME/inc/csrInternal.h +++ b/CORE/SME/inc/csrInternal.h @@ -713,6 +713,19 @@ typedef struct tagCsrConfig bool enable_fatal_event; uint32_t tx_aggregation_size; uint32_t rx_aggregation_size; + 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; }tCsrConfig; typedef struct tagCsrChannelPowerInfo diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c index 45fb5714d92d..856189b7a3f5 100644 --- a/CORE/SME/src/csr/csrApiRoam.c +++ b/CORE/SME/src/csr/csrApiRoam.c @@ -2040,6 +2040,23 @@ eHalStatus csrChangeDefaultConfigParam(tpAniSirGlobal pMac, tCsrConfigParam *pPa pParam->tx_aggregation_size; pMac->roam.configParam.rx_aggregation_size = pParam->rx_aggregation_size; + + 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; } return status; @@ -2216,6 +2233,23 @@ eHalStatus csrGetConfigParam(tpAniSirGlobal pMac, tCsrConfigParam *pParam) pParam->htSmps = pMac->roam.configParam.htSmps; pParam->enable_fatal_event = pMac->roam.configParam.enable_fatal_event; + + 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; status = eHAL_STATUS_SUCCESS; } return (status); |
