diff --git a/components/mlme/core/src/wlan_mlme_main.c b/components/mlme/core/src/wlan_mlme_main.c index b2a0421bc2..35862ec71d 100644 --- a/components/mlme/core/src/wlan_mlme_main.c +++ b/components/mlme/core/src/wlan_mlme_main.c @@ -559,13 +559,43 @@ static void mlme_init_rates_in_cfg(struct wlan_objmgr_psoc *psoc, { rates->cfp_period = cfg_default(CFG_CFP_PERIOD); rates->cfp_max_duration = cfg_default(CFG_CFP_MAX_DURATION); - rates->max_htmcs_txdata = cfg_get(psoc, CFG_INI_MAX_HT_MCS_FOR_TX_DATA); + rates->max_htmcs_txdata = cfg_get(psoc, CFG_MAX_HT_MCS_FOR_TX_DATA); rates->disable_abg_rate_txdata = cfg_get(psoc, - CFG_INI_DISABLE_ABG_RATE_FOR_TX_DATA); + CFG_DISABLE_ABG_RATE_FOR_TX_DATA); rates->sap_max_mcs_txdata = cfg_get(psoc, - CFG_INI_SAP_MAX_MCS_FOR_TX_DATA); + CFG_SAP_MAX_MCS_FOR_TX_DATA); rates->disable_high_ht_mcs_2x2 = cfg_get(psoc, - CFG_INI_DISABLE_HIGH_HT_RX_MCS_2x2); + CFG_DISABLE_HIGH_HT_RX_MCS_2x2); + + rates->supported_11b.max_len = CFG_SUPPORTED_RATES_11B_LEN; + qdf_uint8_array_parse(cfg_default(CFG_SUPPORTED_RATES_11B), + rates->supported_11b.data, + sizeof(rates->supported_11b.data), + &rates->supported_11b.len); + rates->supported_11a.max_len = CFG_SUPPORTED_RATES_11A_LEN; + qdf_uint8_array_parse(cfg_default(CFG_SUPPORTED_RATES_11A), + rates->supported_11a.data, + sizeof(rates->supported_11a.data), + &rates->supported_11a.len); + rates->opr_rate_set.max_len = CFG_OPERATIONAL_RATE_SET_LEN; + rates->opr_rate_set.len = 0; + rates->ext_opr_rate_set.max_len = CFG_EXTENDED_OPERATIONAL_RATE_SET_LEN; + rates->ext_opr_rate_set.len = 0; + rates->supported_mcs_set.max_len = CFG_SUPPORTED_MCS_SET_LEN; + qdf_uint8_array_parse(cfg_default(CFG_SUPPORTED_MCS_SET), + rates->supported_mcs_set.data, + sizeof(rates->supported_mcs_set.data), + &rates->supported_mcs_set.len); + rates->basic_mcs_set.max_len = CFG_BASIC_MCS_SET_LEN; + qdf_uint8_array_parse(cfg_default(CFG_BASIC_MCS_SET), + rates->basic_mcs_set.data, + sizeof(rates->basic_mcs_set.data), + &rates->basic_mcs_set.len); + rates->current_mcs_set.max_len = CFG_CURRENT_MCS_SET_LEN; + qdf_uint8_array_parse(cfg_default(CFG_CURRENT_MCS_SET), + rates->current_mcs_set.data, + sizeof(rates->current_mcs_set.data), + &rates->current_mcs_set.len); } static void mlme_init_dfs_cfg(struct wlan_objmgr_psoc *psoc, diff --git a/components/mlme/dispatcher/inc/cfg_mlme_rates.h b/components/mlme/dispatcher/inc/cfg_mlme_rates.h index b3d1b6dd91..73f7ee1461 100644 --- a/components/mlme/dispatcher/inc/cfg_mlme_rates.h +++ b/components/mlme/dispatcher/inc/cfg_mlme_rates.h @@ -23,6 +23,14 @@ #ifndef __CFG_MLME_RATES_H #define __CFG_MLME_RATES_H +#define CFG_SUPPORTED_RATES_11B_LEN 4 +#define CFG_SUPPORTED_RATES_11A_LEN 8 +#define CFG_OPERATIONAL_RATE_SET_LEN 12 +#define CFG_EXTENDED_OPERATIONAL_RATE_SET_LEN 8 +#define CFG_SUPPORTED_MCS_SET_LEN 16 +#define CFG_BASIC_MCS_SET_LEN 16 +#define CFG_CURRENT_MCS_SET_LEN 16 + /* * * gMaxHTMCSForTxData - max HT mcs for TX @@ -40,7 +48,7 @@ * * */ -#define CFG_INI_MAX_HT_MCS_FOR_TX_DATA CFG_INI_UINT( \ +#define CFG_MAX_HT_MCS_FOR_TX_DATA CFG_INI_UINT( \ "gMaxHTMCSForTxData", \ 0, \ 0x17f, \ @@ -61,7 +69,7 @@ * * */ -#define CFG_INI_DISABLE_ABG_RATE_FOR_TX_DATA CFG_INI_BOOL( \ +#define CFG_DISABLE_ABG_RATE_FOR_TX_DATA CFG_INI_BOOL( \ "gDisableABGRateForTxData", \ 0, \ "Disable ABG RATE for TX Data") @@ -78,7 +86,7 @@ * * */ -#define CFG_INI_SAP_MAX_MCS_FOR_TX_DATA CFG_INI_UINT( \ +#define CFG_SAP_MAX_MCS_FOR_TX_DATA CFG_INI_UINT( \ "gSapMaxMCSForTxData", \ 0, \ 383, \ @@ -111,7 +119,7 @@ * * Usage: External */ -#define CFG_INI_DISABLE_HIGH_HT_RX_MCS_2x2 CFG_INI_UINT( \ +#define CFG_DISABLE_HIGH_HT_RX_MCS_2x2 CFG_INI_UINT( \ "disable_high_ht_mcs_2x2", \ 0, \ 8, \ @@ -134,13 +142,95 @@ 30000, \ CFG_VALUE_OR_DEFAULT, \ "CFP Max Duration") +/* + * + * supported_rates_11b - supported rates for 11b + * @Min: 0 minimum length of supported rates + * @Max: default data length of supported rates in string format + * @Default: 2, 4, 11, 22 + */ +#define CFG_SUPPORTED_RATES_11B_DATA "2, 4, 11, 22" +#define CFG_SUPPORTED_RATES_11B CFG_STRING( \ + "supported_rates_11b", \ + 0, \ + sizeof(CFG_SUPPORTED_RATES_11B_DATA) - 1, \ + CFG_SUPPORTED_RATES_11B_DATA, \ + "Supported rates for 11B") + +/* + * + * supported_rates_11a - supported rates for 11a + * @Min: 0 minimum length of supported rates + * @Max: default data length of supported rates in string format + * @Default: 12, 18, 24, 36, 48, 72, 96, 108 + */ +#define CFG_SUPPORTED_RATES_11A_DATA "12, 18, 24, 36, 48, 72, 96, 108" +#define CFG_SUPPORTED_RATES_11A CFG_STRING( \ + "supported_rates_11a", \ + 0, \ + sizeof(CFG_SUPPORTED_RATES_11A_DATA) - 1, \ + CFG_SUPPORTED_RATES_11A_DATA, \ + "Supported rates for 11A") + +/* + * + * supported_mcs_set - supported MCS set data + * @Min: 0 minimum length of supported MCS set + * @Max: default data length of supported mcs set in string format + * @Default: 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + * 0x0, 0x0, 0x0 + */ +#define CFG_SUPPORTED_MCS_SET_DATA "0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0" +#define CFG_SUPPORTED_MCS_SET CFG_STRING( \ + "supported_mcs_set", \ + 0, \ + sizeof(CFG_SUPPORTED_MCS_SET_DATA) - 1, \ + CFG_SUPPORTED_MCS_SET_DATA, \ + "supported MCS set") + +/* + * + * basic_mcs_set - basic MCS set data + * @Min: 0 minimum length of basic MCS set + * @Max: default data length of basic mcs set in string format + * @Default: 0x00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + * 0x0, 0x0, 0x0 + */ +#define CFG_BASIC_MCS_SET_DATA "0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0" +#define CFG_BASIC_MCS_SET CFG_STRING( \ + "basic_mcs_set", \ + 0, \ + sizeof(CFG_BASIC_MCS_SET_DATA) - 1, \ + CFG_BASIC_MCS_SET_DATA, \ + "basic MCS set") + +/* + * + * current_mcs_set - current MCS set data + * @Min: 0 minimum length of current MCS set + * @Max: default data length of current mcs set in string format + * @Default: 0x00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + * 0x0, 0x0, 0x0 + */ +#define CFG_CURRENT_MCS_SET_DATA "0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0" +#define CFG_CURRENT_MCS_SET CFG_STRING( \ + "current_mcs_set", \ + 0, \ + sizeof(CFG_CURRENT_MCS_SET_DATA) - 1, \ + CFG_CURRENT_MCS_SET_DATA, \ + "current MCS set") #define CFG_RATES_ALL \ - CFG(CFG_INI_MAX_HT_MCS_FOR_TX_DATA) \ - CFG(CFG_INI_DISABLE_ABG_RATE_FOR_TX_DATA) \ - CFG(CFG_INI_SAP_MAX_MCS_FOR_TX_DATA) \ - CFG(CFG_INI_DISABLE_HIGH_HT_RX_MCS_2x2) \ + CFG(CFG_MAX_HT_MCS_FOR_TX_DATA) \ + CFG(CFG_DISABLE_ABG_RATE_FOR_TX_DATA) \ + CFG(CFG_SAP_MAX_MCS_FOR_TX_DATA) \ + CFG(CFG_DISABLE_HIGH_HT_RX_MCS_2x2) \ CFG(CFG_CFP_PERIOD) \ - CFG(CFG_CFP_MAX_DURATION) + CFG(CFG_CFP_MAX_DURATION) \ + CFG(CFG_SUPPORTED_RATES_11B) \ + CFG(CFG_SUPPORTED_RATES_11A) \ + CFG(CFG_SUPPORTED_MCS_SET) \ + CFG(CFG_BASIC_MCS_SET) \ + CFG(CFG_CURRENT_MCS_SET) #endif /* __CFG_MLME_RATES_H */ diff --git a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h index ad3dacd7c4..a1a17c6bd1 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h @@ -531,6 +531,13 @@ struct wlan_mlme_he_caps { * @disable_abg_rate_txdata: disable abg rate info for tx data * @sap_max_mcs_txdata: sap max mcs info * @disable_high_ht_mcs_2x2: disable high mcs for 2x2 info + * @supported_11b: supported 11B rates + * @supported_11a: supported 11A rates + * @opr_rate_set: operational rates set + * @ext_opr_rate_set: extended operational rates set + * @supported_mcs_set: supported MCS set + * @basic_mcs_set: basic MCS set + * @current_mcs_set: current MCS set */ struct wlan_mlme_rates { uint8_t cfp_period; @@ -539,6 +546,13 @@ struct wlan_mlme_rates { bool disable_abg_rate_txdata; uint16_t sap_max_mcs_txdata; uint8_t disable_high_ht_mcs_2x2; + struct mlme_cfg_str supported_11b; + struct mlme_cfg_str supported_11a; + struct mlme_cfg_str opr_rate_set; + struct mlme_cfg_str ext_opr_rate_set; + struct mlme_cfg_str supported_mcs_set; + struct mlme_cfg_str basic_mcs_set; + struct mlme_cfg_str current_mcs_set; }; diff --git a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h index 137301b3fb..237f8e815b 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h @@ -1590,4 +1590,58 @@ ucfg_mlme_update_nss_vht_cap(struct wlan_objmgr_psoc *psoc) return mlme_update_nss_vht_cap(psoc); } +/** + * ucfg_mlme_get_opr_rate_set() - Get operational rate set + * @psoc: pointer to psoc object + * @buf: buffer to get rates set + * @len: length of the buffer + * Return: QDF Status + */ +QDF_STATUS +ucfg_mlme_get_opr_rate_set(struct wlan_objmgr_psoc *psoc, uint8_t *buf, + qdf_size_t *len); + +/** + * ucfg_mlme_get_ext_opr_rate_set() - Get operational rate set + * @psoc: pointer to psoc object + * @buf: buffer to get rates set + * @len: length of the buffer + * Return: QDF Status + */ +QDF_STATUS +ucfg_mlme_get_ext_opr_rate_set(struct wlan_objmgr_psoc *psoc, uint8_t *buf, + qdf_size_t *len); + +/** + * ucfg_mlme_get_supported_mcs_set() - Get Supported MCS set + * @psoc: pointer to psoc object + * @buf: caller buffer to copy mcs set info + * @len: length of the buffer + * Return: QDF Status + */ +QDF_STATUS +ucfg_mlme_get_supported_mcs_set(struct wlan_objmgr_psoc *psoc, uint8_t *buf, + qdf_size_t *len); + +/** + * ucfg_mlme_set_supported_mcs_set() - Get Supported MCS set + * @psoc: pointer to psoc object + * @buf: caller buffer having mcs set info + * @len: length of the buffer + * Return: QDF Status + */ +QDF_STATUS +ucfg_mlme_set_supported_mcs_set(struct wlan_objmgr_psoc *psoc, uint8_t *buf, + qdf_size_t len); + +/** + * ucfg_mlme_get_current_mcs_set() - Get current MCS set + * @psoc: pointer to psoc object + * @buf: caller buffer to copy mcs set info + * @len: length of the buffer + * Return: QDF Status + */ +QDF_STATUS +ucfg_mlme_get_current_mcs_set(struct wlan_objmgr_psoc *psoc, uint8_t *buf, + qdf_size_t *len); #endif /* _WLAN_MLME_UCFG_API_H_ */ diff --git a/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c b/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c index 4114d7ade0..b257cb2f3d 100644 --- a/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c +++ b/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c @@ -316,3 +316,86 @@ ucfg_mlme_get_first_scan_bucket_threshold(struct wlan_objmgr_psoc *psoc, return QDF_STATUS_SUCCESS; } + +QDF_STATUS +ucfg_mlme_get_opr_rate_set(struct wlan_objmgr_psoc *psoc, + uint8_t *buf, qdf_size_t *len) +{ + struct wlan_mlme_psoc_obj *mlme_obj; + + mlme_obj = mlme_get_psoc_obj(psoc); + if (!mlme_obj) { + mlme_err("mlme obj null"); + return QDF_STATUS_E_INVAL; + } + + return wlan_mlme_get_cfg_str(buf, &mlme_obj->cfg.rates.opr_rate_set, + len); +} + +QDF_STATUS +ucfg_mlme_get_ext_opr_rate_set(struct wlan_objmgr_psoc *psoc, + uint8_t *buf, qdf_size_t *len) +{ + struct wlan_mlme_psoc_obj *mlme_obj; + + mlme_obj = mlme_get_psoc_obj(psoc); + if (!mlme_obj) { + mlme_err("mlme obj null"); + return QDF_STATUS_E_INVAL; + } + + return wlan_mlme_get_cfg_str(buf, &mlme_obj->cfg.rates.ext_opr_rate_set, + len); +} + +QDF_STATUS +ucfg_mlme_get_supported_mcs_set(struct wlan_objmgr_psoc *psoc, + uint8_t *buf, qdf_size_t *len) +{ + struct wlan_mlme_psoc_obj *mlme_obj; + + mlme_obj = mlme_get_psoc_obj(psoc); + if (!mlme_obj) { + mlme_err("mlme obj null"); + return QDF_STATUS_E_INVAL; + } + + return wlan_mlme_get_cfg_str(buf, + &mlme_obj->cfg.rates.supported_mcs_set, + len); +} + +QDF_STATUS +ucfg_mlme_set_supported_mcs_set(struct wlan_objmgr_psoc *psoc, + uint8_t *buf, qdf_size_t len) +{ + struct wlan_mlme_psoc_obj *mlme_obj; + + mlme_obj = mlme_get_psoc_obj(psoc); + if (!mlme_obj) { + mlme_err("mlme obj null"); + return QDF_STATUS_E_INVAL; + } + + return wlan_mlme_set_cfg_str(buf, + &mlme_obj->cfg.rates.supported_mcs_set, + len); +} + +QDF_STATUS +ucfg_mlme_get_current_mcs_set(struct wlan_objmgr_psoc *psoc, + uint8_t *buf, qdf_size_t *len) +{ + struct wlan_mlme_psoc_obj *mlme_obj; + + mlme_obj = mlme_get_psoc_obj(psoc); + if (!mlme_obj) { + mlme_err("mlme obj null"); + return QDF_STATUS_E_INVAL; + } + + return wlan_mlme_get_cfg_str(buf, + &mlme_obj->cfg.rates.current_mcs_set, + len); +} diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c index f14231adcf..aac7b73a55 100644 --- a/core/hdd/src/wlan_hdd_cfg.c +++ b/core/hdd/src/wlan_hdd_cfg.c @@ -4947,10 +4947,10 @@ QDF_STATUS hdd_update_nss(struct hdd_adapter *adapter, uint8_t nss) uint32_t rx_supp_data_rate, tx_supp_data_rate; bool status = true; QDF_STATUS qdf_status; + qdf_size_t val_len; struct mlme_ht_capabilities_info ht_cap_info; uint8_t mcs_set[SIZE_OF_SUPPORTED_MCS_SET] = {0}; uint8_t mcs_set_temp[SIZE_OF_SUPPORTED_MCS_SET]; - uint32_t val; uint8_t enable2x2; mac_handle_t mac_handle; bool bval = 0; @@ -5038,21 +5038,26 @@ QDF_STATUS hdd_update_nss(struct hdd_adapter *adapter, uint8_t nss) } #define WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES 0xff - val = SIZE_OF_SUPPORTED_MCS_SET; - sme_cfg_get_str(mac_handle, WNI_CFG_SUPPORTED_MCS_SET, - mcs_set_temp, &val); - - mcs_set[0] = mcs_set_temp[0]; - if (enable2x2) - for (val = 0; val < nss; val++) - mcs_set[val] = WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES; - - if (sme_cfg_set_str(mac_handle, WNI_CFG_SUPPORTED_MCS_SET, - mcs_set, - SIZE_OF_SUPPORTED_MCS_SET) == - QDF_STATUS_E_FAILURE) { + val_len = SIZE_OF_SUPPORTED_MCS_SET; + qdf_status = ucfg_mlme_get_supported_mcs_set(hdd_ctx->psoc, + mcs_set_temp, + &val_len); + if (QDF_IS_STATUS_SUCCESS(qdf_status)) { + mcs_set[0] = mcs_set_temp[0]; + if (enable2x2) + for (val_len = 0; val_len < nss; val_len++) + mcs_set[val_len] = + WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES; + if (ucfg_mlme_set_supported_mcs_set( + hdd_ctx->psoc, mcs_set, + (qdf_size_t)SIZE_OF_SUPPORTED_MCS_SET) == + QDF_STATUS_E_FAILURE) { + status = false; + hdd_err("Could not pass on MCS SET to CFG"); + } + } else { status = false; - hdd_err("Could not pass on MCS SET to CFG"); + hdd_err("Could not get MCS SET from CFG"); } sme_update_he_cap_nss(mac_handle, adapter->session_id, nss); #undef WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 33dd2581a2..6bf7358a5a 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -1411,6 +1411,7 @@ static void hdd_update_tgt_ht_cap(struct hdd_context *hdd_ctx, struct wma_tgt_ht_cap *cfg) { QDF_STATUS status; + qdf_size_t value_len; uint32_t value; struct mlme_ht_capabilities_info ht_cap_info; uint8_t mcs_set[SIZE_OF_SUPPORTED_MCS_SET]; @@ -1495,9 +1496,10 @@ static void hdd_update_tgt_ht_cap(struct hdd_context *hdd_ctx, if (status != QDF_STATUS_SUCCESS) hdd_err("could not set HT capability to CCM"); #define WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES 0xff - value = SIZE_OF_SUPPORTED_MCS_SET; - if (sme_cfg_get_str(mac_handle, WNI_CFG_SUPPORTED_MCS_SET, mcs_set, - &value) == QDF_STATUS_SUCCESS) { + value_len = SIZE_OF_SUPPORTED_MCS_SET; + if (ucfg_mlme_get_supported_mcs_set( + hdd_ctx->psoc, mcs_set, + &value_len) == QDF_STATUS_SUCCESS) { hdd_debug("Read MCS rate set"); if (cfg->num_rf_chains > SIZE_OF_SUPPORTED_MCS_SET) cfg->num_rf_chains = SIZE_OF_SUPPORTED_MCS_SET; @@ -1507,12 +1509,11 @@ static void hdd_update_tgt_ht_cap(struct hdd_context *hdd_ctx, mcs_set[value] = WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES; - status = - sme_cfg_set_str(mac_handle, - WNI_CFG_SUPPORTED_MCS_SET, - mcs_set, - SIZE_OF_SUPPORTED_MCS_SET); - if (status == QDF_STATUS_E_FAILURE) + status = ucfg_mlme_set_supported_mcs_set( + hdd_ctx->psoc, + mcs_set, + (qdf_size_t)SIZE_OF_SUPPORTED_MCS_SET); + if (QDF_IS_STATUS_ERROR(status)) hdd_err("could not set MCS SET to CCM"); } } diff --git a/core/hdd/src/wlan_hdd_stats.c b/core/hdd/src/wlan_hdd_stats.c index cd03f8a146..d19ab9a261 100644 --- a/core/hdd/src/wlan_hdd_stats.c +++ b/core/hdd/src/wlan_hdd_stats.c @@ -3959,12 +3959,12 @@ static int hdd_report_max_rate(mac_handle_t mac_handle, uint16_t max_rate = 0; uint32_t vht_mcs_map; uint16_t current_rate = 0; - uint8_t or_leng = CSR_DOT11_SUPPORTED_RATES_MAX; + qdf_size_t or_leng = CSR_DOT11_SUPPORTED_RATES_MAX; uint8_t operational_rates[CSR_DOT11_SUPPORTED_RATES_MAX]; uint8_t extended_rates[CSR_DOT11_EXTENDED_SUPPORTED_RATES_MAX]; - uint32_t er_leng = CSR_DOT11_EXTENDED_SUPPORTED_RATES_MAX; + qdf_size_t er_leng = CSR_DOT11_EXTENDED_SUPPORTED_RATES_MAX; uint8_t mcs_rates[SIZE_OF_BASIC_MCS_SET]; - uint32_t mcs_leng = SIZE_OF_BASIC_MCS_SET; + qdf_size_t mcs_leng = SIZE_OF_BASIC_MCS_SET; struct index_vht_data_rate_type *supported_vht_mcs_rate; struct index_data_rate_type *supported_mcs_rate; enum data_rate_11ac_max_mcs vht_max_mcs; @@ -4011,10 +4011,8 @@ static int hdd_report_max_rate(mac_handle_t mac_handle, max_rate = 0; /* Get Basic Rate Set */ - if (0 != sme_cfg_get_str(mac_handle, - WNI_CFG_OPERATIONAL_RATE_SET, - operational_rates, - (uint32_t *)&or_leng)) { + if (0 != ucfg_mlme_get_opr_rate_set(hdd_ctx->psoc, + operational_rates, &or_leng)) { hdd_err("cfg get returned failure"); /*To keep GUI happy */ return 0; @@ -4037,9 +4035,9 @@ static int hdd_report_max_rate(mac_handle_t mac_handle, } /* Get Extended Rate Set */ - if (0 != sme_cfg_get_str(mac_handle, - WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET, - extended_rates, &er_leng)) { + if (0 != ucfg_mlme_get_ext_opr_rate_set(hdd_ctx->psoc, + extended_rates, + &er_leng)) { hdd_err("cfg get returned failure"); /*To keep GUI happy */ return 0; @@ -4062,9 +4060,9 @@ static int hdd_report_max_rate(mac_handle_t mac_handle, * actual speed */ if ((3 != rssidx) && !(tx_rate_flags & TX_RATE_LEGACY)) { - if (0 != sme_cfg_get_str(mac_handle, - WNI_CFG_CURRENT_MCS_SET, mcs_rates, - &mcs_leng)) { + if (0 != ucfg_mlme_get_current_mcs_set(hdd_ctx->psoc, + mcs_rates, + &mcs_leng)) { hdd_err("cfg get returned failure"); /*To keep GUI happy */ return 0; diff --git a/core/mac/inc/wni_cfg.h b/core/mac/inc/wni_cfg.h index 8e9f90387b..5542cbc5e3 100644 --- a/core/mac/inc/wni_cfg.h +++ b/core/mac/inc/wni_cfg.h @@ -32,11 +32,7 @@ enum { WNI_CFG_DTIM_PERIOD, WNI_CFG_ACTIVE_MAXIMUM_CHANNEL_TIME, WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME, - WNI_CFG_SUPPORTED_RATES_11B, - WNI_CFG_SUPPORTED_RATES_11A, WNI_CFG_DOT11_MODE, - WNI_CFG_OPERATIONAL_RATE_SET, - WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET, WNI_CFG_LISTEN_INTERVAL, WNI_CFG_VALID_CHANNEL_LIST, WNI_CFG_APSD_ENABLED, @@ -56,15 +52,12 @@ enum { WNI_CFG_SCAN_CONTROL_LIST, WNI_CFG_HT_CAP_INFO, WNI_CFG_HT_AMPDU_PARAMS, - WNI_CFG_SUPPORTED_MCS_SET, WNI_CFG_EXT_HT_CAP_INFO, WNI_CFG_TX_BF_CAP, WNI_CFG_AS_CAP, WNI_CFG_HT_INFO_FIELD1, WNI_CFG_HT_INFO_FIELD2, WNI_CFG_HT_INFO_FIELD3, - WNI_CFG_BASIC_MCS_SET, - WNI_CFG_CURRENT_MCS_SET, WNI_CFG_MPDU_DENSITY, WNI_CFG_MAX_RX_AMPDU_FACTOR, WNI_CFG_SCAN_IN_POWERSAVE, @@ -210,19 +203,12 @@ enum { #define WNI_CFG_STA_ID_LEN 6 #define WNI_CFG_SSID_LEN 32 -#define WNI_CFG_SUPPORTED_RATES_11B_LEN 4 -#define WNI_CFG_SUPPORTED_RATES_11A_LEN 8 -#define WNI_CFG_OPERATIONAL_RATE_SET_LEN 12 -#define WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET_LEN 8 #define WNI_CFG_PROPRIETARY_OPERATIONAL_RATE_SET_LEN 4 #define WNI_CFG_VALID_CHANNEL_LIST_LEN 100 #define WNI_CFG_MAX_TX_POWER_2_4_LEN 128 #define WNI_CFG_MAX_TX_POWER_5_LEN 128 #define WNI_CFG_COUNTRY_CODE_LEN 3 #define WNI_CFG_SCAN_CONTROL_LIST_LEN 128 -#define WNI_CFG_SUPPORTED_MCS_SET_LEN 16 -#define WNI_CFG_BASIC_MCS_SET_LEN 16 -#define WNI_CFG_CURRENT_MCS_SET_LEN 16 #define WNI_CFG_PROBE_RSP_ADDNIE_DATA1_LEN 255 #define WNI_CFG_ASSOC_RSP_ADDNIE_DATA_LEN 255 #define WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA_LEN 255 diff --git a/core/mac/src/cfg/cfg_param_name.c b/core/mac/src/cfg/cfg_param_name.c index ef51928c18..7372a0bcd8 100644 --- a/core/mac/src/cfg/cfg_param_name.c +++ b/core/mac/src/cfg/cfg_param_name.c @@ -47,11 +47,7 @@ const char *cfg_get_string(uint16_t cfg_id) CASE_RETURN_STRING(WNI_CFG_DTIM_PERIOD); CASE_RETURN_STRING(WNI_CFG_ACTIVE_MAXIMUM_CHANNEL_TIME); CASE_RETURN_STRING(WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME); - CASE_RETURN_STRING(WNI_CFG_SUPPORTED_RATES_11B); - CASE_RETURN_STRING(WNI_CFG_SUPPORTED_RATES_11A); CASE_RETURN_STRING(WNI_CFG_DOT11_MODE); - CASE_RETURN_STRING(WNI_CFG_OPERATIONAL_RATE_SET); - CASE_RETURN_STRING(WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET); CASE_RETURN_STRING(WNI_CFG_LISTEN_INTERVAL); CASE_RETURN_STRING(WNI_CFG_VALID_CHANNEL_LIST); CASE_RETURN_STRING(WNI_CFG_APSD_ENABLED); @@ -71,15 +67,12 @@ const char *cfg_get_string(uint16_t cfg_id) CASE_RETURN_STRING(WNI_CFG_SCAN_CONTROL_LIST); CASE_RETURN_STRING(WNI_CFG_HT_CAP_INFO); CASE_RETURN_STRING(WNI_CFG_HT_AMPDU_PARAMS); - CASE_RETURN_STRING(WNI_CFG_SUPPORTED_MCS_SET); CASE_RETURN_STRING(WNI_CFG_EXT_HT_CAP_INFO); CASE_RETURN_STRING(WNI_CFG_TX_BF_CAP); CASE_RETURN_STRING(WNI_CFG_AS_CAP); CASE_RETURN_STRING(WNI_CFG_HT_INFO_FIELD1); CASE_RETURN_STRING(WNI_CFG_HT_INFO_FIELD2); CASE_RETURN_STRING(WNI_CFG_HT_INFO_FIELD3); - CASE_RETURN_STRING(WNI_CFG_BASIC_MCS_SET); - CASE_RETURN_STRING(WNI_CFG_CURRENT_MCS_SET); CASE_RETURN_STRING(WNI_CFG_MPDU_DENSITY); CASE_RETURN_STRING(WNI_CFG_MAX_RX_AMPDU_FACTOR); CASE_RETURN_STRING(WNI_CFG_WOWLAN_UCAST_PATTERN_FILTER_ENABLE); diff --git a/core/mac/src/cfg/cfg_proc_msg.c b/core/mac/src/cfg/cfg_proc_msg.c index f903ce6116..9c637e1a0d 100644 --- a/core/mac/src/cfg/cfg_proc_msg.c +++ b/core/mac/src/cfg/cfg_proc_msg.c @@ -63,23 +63,12 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = { WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME_STAMIN, WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME_STAMAX, WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME_STADEF}, - {WNI_CFG_SUPPORTED_RATES_11B, - CFG_CTL_VALID | CFG_CTL_RE, - 0, 3, 1}, - {WNI_CFG_SUPPORTED_RATES_11A, CFG_CTL_VALID | CFG_CTL_RE, - 0, 255, 15}, {WNI_CFG_DOT11_MODE, CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_RESTART | CFG_CTL_NTF_LIM, WNI_CFG_DOT11_MODE_STAMIN, WNI_CFG_DOT11_MODE_STAMAX, WNI_CFG_DOT11_MODE_STADEF}, - {WNI_CFG_OPERATIONAL_RATE_SET, - CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART, - 0, 1, 1}, - {WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET, - CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART, - 0, 65535, 65534}, {WNI_CFG_LISTEN_INTERVAL, CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_RESTART, @@ -178,10 +167,6 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = { WNI_CFG_HT_AMPDU_PARAMS_STAMIN, WNI_CFG_HT_AMPDU_PARAMS_STAMAX, WNI_CFG_HT_AMPDU_PARAMS_STADEF}, - {WNI_CFG_SUPPORTED_MCS_SET, - CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_SAVE | - CFG_CTL_RESTART | CFG_CTL_NTF_LIM, - 0, 0, 0}, {WNI_CFG_EXT_HT_CAP_INFO, CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_SAVE | CFG_CTL_RESTART | CFG_CTL_NTF_LIM, @@ -218,14 +203,6 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = { WNI_CFG_HT_INFO_FIELD3_STAMIN, WNI_CFG_HT_INFO_FIELD3_STAMAX, WNI_CFG_HT_INFO_FIELD3_STADEF}, - {WNI_CFG_BASIC_MCS_SET, - CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_SAVE | - CFG_CTL_RESTART | CFG_CTL_NTF_LIM, - 0, 0, 0}, - {WNI_CFG_CURRENT_MCS_SET, - CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_SAVE | - CFG_CTL_RESTART | CFG_CTL_NTF_LIM, - 0, 0, 0}, {WNI_CFG_MPDU_DENSITY, CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_RESTART | CFG_CTL_NTF_LIM, @@ -859,22 +836,6 @@ cfgstatic_string cfg_static_string[CFG_MAX_STATIC_STRING] = { WNI_CFG_SSID_LEN, 10, {1, 2, 3, 4, 5, 6, 7, 8, 9, 0} }, - {WNI_CFG_SUPPORTED_RATES_11B, - WNI_CFG_SUPPORTED_RATES_11B_LEN, - 4, - {2, 4, 11, 22} }, - {WNI_CFG_SUPPORTED_RATES_11A, - WNI_CFG_SUPPORTED_RATES_11A_LEN, - 8, - {12, 18, 24, 36, 48, 72, 96, 108} }, - {WNI_CFG_OPERATIONAL_RATE_SET, - WNI_CFG_OPERATIONAL_RATE_SET_LEN, - 0, - {0} }, - {WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET, - WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET_LEN, - 0, - {0} }, {WNI_CFG_VALID_CHANNEL_LIST, WNI_CFG_VALID_CHANNEL_LIST_LEN, 55, @@ -906,21 +867,6 @@ cfgstatic_string cfg_static_string[CFG_MAX_STATIC_STRING] = { 0x8c, 0x0, 0x90, 0x0, 0x95, 0x1, 0x97, 0x1, 0x99, 0x1, 0x9b, 0x1, 0x9d, 0x1, 0x9f, 0x1, 0xa1, 0x1, 0xa5, 0x1, 0xf0, 0x1, 0xf2, 0x1, 0xf4, 0x1, 0xf6, 0x1, 0xf8, 0x1, 0xfa, 0x1, 0xfc, 0x1} }, - {WNI_CFG_SUPPORTED_MCS_SET, - WNI_CFG_SUPPORTED_MCS_SET_LEN, - 16, - {0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0} }, - {WNI_CFG_BASIC_MCS_SET, - WNI_CFG_BASIC_MCS_SET_LEN, - 16, - {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0} }, - {WNI_CFG_CURRENT_MCS_SET, - WNI_CFG_CURRENT_MCS_SET_LEN, - 16, - {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0} }, {WNI_CFG_WPS_UUID, WNI_CFG_WPS_UUID_LEN, 6, diff --git a/core/mac/src/pe/lim/lim_assoc_utils.c b/core/mac/src/pe/lim/lim_assoc_utils.c index 6e36e121a5..a3aac4391b 100644 --- a/core/mac/src/pe/lim/lim_assoc_utils.c +++ b/core/mac/src/pe/lim/lim_assoc_utils.c @@ -54,6 +54,7 @@ #include "wma_types.h" #include "lim_types.h" #include "wlan_utility.h" +#include "wlan_mlme_api.h" #ifdef FEATURE_WLAN_TDLS #define IS_TDLS_PEER(type) ((type) == STA_ENTRY_TDLS_PEER) @@ -259,15 +260,15 @@ lim_check_rx_basic_rates(tpAniSirGlobal pMac, tSirMacRateSet rxRateSet, uint8_t lim_check_mcs_set(tpAniSirGlobal pMac, uint8_t *supportedMCSSet) { uint8_t basicMCSSet[SIZE_OF_BASIC_MCS_SET] = { 0 }; - uint32_t cfgLen = 0; + qdf_size_t cfg_len = 0; uint8_t i; uint8_t validBytes; uint8_t lastByteMCSMask = 0x1f; - cfgLen = WNI_CFG_BASIC_MCS_SET_LEN; - if (wlan_cfg_get_str(pMac, WNI_CFG_BASIC_MCS_SET, - (uint8_t *) basicMCSSet, - (uint32_t *) &cfgLen) != QDF_STATUS_SUCCESS) { + cfg_len = pMac->mlme_cfg->rates.basic_mcs_set.len; + if (wlan_mlme_get_cfg_str((uint8_t *)basicMCSSet, + &pMac->mlme_cfg->rates.basic_mcs_set, + &cfg_len) != QDF_STATUS_SUCCESS) { /* / Could not get Basic MCS rateset from CFG. Log error. */ pe_err("could not retrieve Basic MCS rateset"); return false; @@ -1488,6 +1489,7 @@ lim_populate_own_rate_set(tpAniSirGlobal mac_ctx, uint32_t self_sta_dot11mode = 0; uint8_t a_rate_index = 0; uint8_t b_rate_index = 0; + qdf_size_t val_len; is_arate = 0; @@ -1504,20 +1506,22 @@ lim_populate_own_rate_set(tpAniSirGlobal mac_ctx, (self_sta_dot11mode == WNI_CFG_DOT11_MODE_11N) || (self_sta_dot11mode == WNI_CFG_DOT11_MODE_11G) || (self_sta_dot11mode == WNI_CFG_DOT11_MODE_11B)) { - val = WNI_CFG_SUPPORTED_RATES_11B_LEN; - wlan_cfg_get_str(mac_ctx, WNI_CFG_SUPPORTED_RATES_11B, - (uint8_t *) &temp_rate_set.rate, &val); - temp_rate_set.numRates = (uint8_t) val; + val_len = mac_ctx->mlme_cfg->rates.supported_11b.len; + wlan_mlme_get_cfg_str((uint8_t *)&temp_rate_set.rate, + &mac_ctx->mlme_cfg->rates.supported_11b, + &val_len); + temp_rate_set.numRates = (uint8_t)val_len; } else { temp_rate_set.numRates = 0; } /* Include 11a rates when the device configured in non-11b mode */ if (!IS_DOT11_MODE_11B(self_sta_dot11mode)) { - val = WNI_CFG_SUPPORTED_RATES_11A_LEN; - wlan_cfg_get_str(mac_ctx, WNI_CFG_SUPPORTED_RATES_11A, - (uint8_t *) &temp_rate_set2.rate, &val); - temp_rate_set2.numRates = (uint8_t) val; + val_len = mac_ctx->mlme_cfg->rates.supported_11a.len; + wlan_mlme_get_cfg_str((uint8_t *)&temp_rate_set2.rate, + &mac_ctx->mlme_cfg->rates.supported_11a, + &val_len); + temp_rate_set2.numRates = (uint8_t)val_len; } else { temp_rate_set2.numRates = 0; } @@ -1566,10 +1570,11 @@ lim_populate_own_rate_set(tpAniSirGlobal mac_ctx, } if (IS_DOT11_MODE_HT(self_sta_dot11mode)) { - val = SIZE_OF_SUPPORTED_MCS_SET; - if (wlan_cfg_get_str(mac_ctx, WNI_CFG_SUPPORTED_MCS_SET, - rates->supportedMCSSet, - &val) != QDF_STATUS_SUCCESS) { + val_len = SIZE_OF_SUPPORTED_MCS_SET; + if (wlan_mlme_get_cfg_str( + rates->supportedMCSSet, + &mac_ctx->mlme_cfg->rates.supported_mcs_set, + &val_len) != QDF_STATUS_SUCCESS) { pe_err("could not retrieve supportedMCSSet"); return QDF_STATUS_E_FAILURE; } @@ -1629,6 +1634,7 @@ lim_populate_peer_rate_set(tpAniSirGlobal pMac, tSirMacRateSet tempRateSet; tSirMacRateSet tempRateSet2; uint32_t i, j, val, min, isArate = 0; + qdf_size_t val_len; /* copy operational rate set from psessionEntry */ if (psessionEntry->rateSet.numRates <= SIR_MAC_RATESET_EID_MAX) { @@ -1721,10 +1727,11 @@ lim_populate_peer_rate_set(tpAniSirGlobal pMac, } if (IS_DOT11_MODE_HT(psessionEntry->dot11mode)) { - val = SIZE_OF_SUPPORTED_MCS_SET; - if (wlan_cfg_get_str(pMac, WNI_CFG_SUPPORTED_MCS_SET, - pRates->supportedMCSSet, - &val) != QDF_STATUS_SUCCESS) { + val_len = SIZE_OF_SUPPORTED_MCS_SET; + if (wlan_mlme_get_cfg_str( + pRates->supportedMCSSet, + &pMac->mlme_cfg->rates.supported_mcs_set, + &val_len) != QDF_STATUS_SUCCESS) { pe_err("could not retrieve supportedMCSSet"); return QDF_STATUS_E_FAILURE; } @@ -1819,6 +1826,7 @@ QDF_STATUS lim_populate_matching_rate_set(tpAniSirGlobal mac_ctx, tpSirSupportedRates rates; uint8_t a_rate_index = 0; uint8_t b_rate_index = 0; + qdf_size_t val_len; is_arate = 0; @@ -1969,9 +1977,11 @@ QDF_STATUS lim_populate_matching_rate_set(tpAniSirGlobal mac_ctx, (sta_ds->mlmStaContext.htCapability)) #endif { - val = SIZE_OF_SUPPORTED_MCS_SET; - if (wlan_cfg_get_str(mac_ctx, WNI_CFG_SUPPORTED_MCS_SET, - mcs_set, &val) != QDF_STATUS_SUCCESS) { + val_len = SIZE_OF_SUPPORTED_MCS_SET; + if (wlan_mlme_get_cfg_str( + mcs_set, + &mac_ctx->mlme_cfg->rates.supported_mcs_set, + &val_len) != QDF_STATUS_SUCCESS) { pe_err("could not retrieve supportedMCSet"); return QDF_STATUS_E_FAILURE; } @@ -1979,7 +1989,7 @@ QDF_STATUS lim_populate_matching_rate_set(tpAniSirGlobal mac_ctx, if (session_entry->nss == NSS_1x1_MODE) mcs_set[1] = 0; - for (i = 0; i < val; i++) + for (i = 0; i < val_len; i++) sta_ds->supportedRates.supportedMCSSet[i] = mcs_set[i] & supported_mcs_set[i]; diff --git a/core/mac/src/pe/lim/lim_ibss_peer_mgmt.c b/core/mac/src/pe/lim/lim_ibss_peer_mgmt.c index 934cb104ba..4ed95fa771 100644 --- a/core/mac/src/pe/lim/lim_ibss_peer_mgmt.c +++ b/core/mac/src/pe/lim/lim_ibss_peer_mgmt.c @@ -30,6 +30,7 @@ #include "lim_session.h" #include "lim_ibss_peer_mgmt.h" #include "lim_types.h" +#include "wlan_mlme_api.h" /** * ibss_peer_find @@ -482,7 +483,7 @@ static void ibss_bss_add(tpAniSirGlobal pMac, tpPESession psessionEntry) tpSirMacMgmtHdr pHdr = (tpSirMacMgmtHdr) pMac->lim.ibssInfo.pHdr; tpSchBeaconStruct pBeacon = (tpSchBeaconStruct) pMac->lim.ibssInfo.pBeacon; - uint8_t numExtRates = 0; + qdf_size_t num_ext_rates = 0; if ((pHdr == NULL) || (pBeacon == NULL)) { pe_err("Unable to add BSS (no cached BSS info)"); @@ -525,10 +526,11 @@ static void ibss_bss_add(tpAniSirGlobal pMac, tpPESession psessionEntry) */ if (pBeacon->extendedRatesPresent) - numExtRates = pBeacon->extendedRates.numRates; - if (cfg_set_str(pMac, WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET, - (uint8_t *) &pBeacon->extendedRates.rate, - numExtRates) != QDF_STATUS_SUCCESS) { + num_ext_rates = pBeacon->extendedRates.numRates; + if (wlan_mlme_set_cfg_str( + (uint8_t *)&pBeacon->extendedRates.rate, + &pMac->mlme_cfg->rates.ext_opr_rate_set, + num_ext_rates) != QDF_STATUS_SUCCESS) { pe_err("could not update ExtendedOperRateset at CFG"); return; } diff --git a/core/mac/src/pe/lim/lim_process_tdls.c b/core/mac/src/pe/lim/lim_process_tdls.c index 832fce52b0..50c1a37df7 100644 --- a/core/mac/src/pe/lim/lim_process_tdls.c +++ b/core/mac/src/pe/lim/lim_process_tdls.c @@ -72,6 +72,7 @@ #include "wlan_reg_services_api.h" #include "wlan_tdls_tgt_api.h" #include "wlan_mlme_public_struct.h" +#include "wlan_mlme_api.h" /* define NO_PAD_TDLS_MIN_8023_SIZE to NOT padding: See CR#447630 There was IOT issue with cisco 1252 open mode, where it pads @@ -697,7 +698,7 @@ static void populate_dot11f_tdls_ht_vht_cap(tpAniSirGlobal pMac, tpPESession psessionEntry) { uint8_t nss; - uint32_t val; + qdf_size_t val_len; struct mlme_vht_capabilities_info vht_cap_info; vht_cap_info = pMac->mlme_cfg->vht_caps.vht_cap_info; @@ -711,9 +712,10 @@ static void populate_dot11f_tdls_ht_vht_cap(tpAniSirGlobal pMac, if (IS_DOT11_MODE_HT(selfDot11Mode)) { /* Include HT Capability IE */ populate_dot11f_ht_caps(pMac, NULL, htCap); - val = SIZE_OF_SUPPORTED_MCS_SET; - wlan_cfg_get_str(pMac, WNI_CFG_SUPPORTED_MCS_SET, - &htCap->supportedMCSSet[0], &val); + val_len = SIZE_OF_SUPPORTED_MCS_SET; + wlan_mlme_get_cfg_str(&htCap->supportedMCSSet[0], + &pMac->mlme_cfg->rates.supported_mcs_set, + &val_len); if (NSS_1x1_MODE == nss) htCap->supportedMCSSet[1] = 0; /* @@ -2256,6 +2258,7 @@ lim_tdls_populate_matching_rate_set(tpAniSirGlobal mac_ctx, tpDphHashNode stads, uint8_t a_rateindex = 0; uint8_t b_rateindex = 0; uint8_t nss; + qdf_size_t val_len; is_a_rate = 0; temp_rate_set2.numRates = 0; @@ -2263,24 +2266,28 @@ lim_tdls_populate_matching_rate_set(tpAniSirGlobal mac_ctx, tpDphHashNode stads, lim_get_phy_mode(mac_ctx, &phymode, NULL); /* get own rate set */ - val = WNI_CFG_OPERATIONAL_RATE_SET_LEN; - if (wlan_cfg_get_str(mac_ctx, WNI_CFG_OPERATIONAL_RATE_SET, - (uint8_t *) &temp_rate_set.rate, - &val) != QDF_STATUS_SUCCESS) { + val_len = mac_ctx->mlme_cfg->rates.opr_rate_set.len; + if (wlan_mlme_get_cfg_str((uint8_t *)&temp_rate_set.rate, + &mac_ctx->mlme_cfg->rates.opr_rate_set, + &val_len) != QDF_STATUS_SUCCESS) { /* Could not get rateset from CFG. Log error. */ pe_err("could not retrieve rateset"); - val = 0; + val_len = 0; } - temp_rate_set.numRates = val; + temp_rate_set.numRates = val_len; if (phymode == WNI_CFG_PHY_MODE_11G) { /* get own extended rate set */ - val = WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET_LEN; - if (wlan_cfg_get_str(mac_ctx, - WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET, - (uint8_t *) &temp_rate_set2.rate, - &val) != QDF_STATUS_SUCCESS) - temp_rate_set2.numRates = val; + val_len = mac_ctx->mlme_cfg->rates.ext_opr_rate_set.len; + if (wlan_mlme_get_cfg_str( + (uint8_t *)&temp_rate_set2.rate, + &mac_ctx->mlme_cfg->rates.ext_opr_rate_set, + &val_len) != QDF_STATUS_SUCCESS) { + /* Could not get rateset from CFG. Log error. */ + pe_err("could not retrieve extrateset"); + val_len = 0; + } + temp_rate_set2.numRates = val_len; } if ((temp_rate_set.numRates + temp_rate_set2.numRates) > 12) { @@ -2379,9 +2386,11 @@ lim_tdls_populate_matching_rate_set(tpAniSirGlobal mac_ctx, tpDphHashNode stads, (stads->mlmStaContext.htCapability)) #endif { - val = SIZE_OF_SUPPORTED_MCS_SET; - if (wlan_cfg_get_str(mac_ctx, WNI_CFG_SUPPORTED_MCS_SET, - mcsSet, &val) != QDF_STATUS_SUCCESS) { + val_len = SIZE_OF_SUPPORTED_MCS_SET; + if (wlan_mlme_get_cfg_str( + mcsSet, + &mac_ctx->mlme_cfg->rates.supported_mcs_set, + &val_len) != QDF_STATUS_SUCCESS) { /* Could not get rateset from CFG. Log error. */ pe_err("could not retrieve supportedMCSSet"); return QDF_STATUS_E_FAILURE; @@ -2389,7 +2398,7 @@ lim_tdls_populate_matching_rate_set(tpAniSirGlobal mac_ctx, tpDphHashNode stads, if (NSS_1x1_MODE == nss) mcsSet[1] = 0; - for (i = 0; i < val; i++) + for (i = 0; i < val_len; i++) stads->supportedRates.supportedMCSSet[i] = mcsSet[i] & supp_mcs_set[i]; diff --git a/core/mac/src/sys/legacy/src/utils/src/parser_api.c b/core/mac/src/sys/legacy/src/utils/src/parser_api.c index 8969c2acab..8af06f973b 100644 --- a/core/mac/src/sys/legacy/src/utils/src/parser_api.c +++ b/core/mac/src/sys/legacy/src/utils/src/parser_api.c @@ -45,6 +45,7 @@ #include "wifi_pos_api.h" #include "wlan_mlme_public_struct.h" #include "wlan_mlme_ucfg_api.h" +#include "wlan_mlme_api.h" #define RSN_OUI_SIZE 4 /* ////////////////////////////////////////////////////////////////////// */ @@ -528,8 +529,8 @@ populate_dot11f_ext_supp_rates(tpAniSirGlobal pMac, uint8_t nChannelNum, tDot11fIEExtSuppRates *pDot11f, tpPESession psessionEntry) { - QDF_STATUS nSirStatus; - uint32_t nRates = 0; + QDF_STATUS nsir_status; + qdf_size_t nRates = 0; uint8_t rates[SIR_MAC_RATESET_EID_MAX]; /* Use the ext rates present in session entry whenever nChannelNum is set to OPERATIONAL @@ -545,9 +546,16 @@ populate_dot11f_ext_supp_rates(tpAniSirGlobal pMac, uint8_t nChannelNum, pe_err("no session context exists while populating Operational Rate Set"); } } else if (HIGHEST_24GHZ_CHANNEL_NUM >= nChannelNum) { - CFG_GET_STR(nSirStatus, pMac, - WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET, rates, - nRates, WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET_LEN); + nRates = pMac->mlme_cfg->rates.ext_opr_rate_set.len; + nsir_status = wlan_mlme_get_cfg_str( + rates, + &pMac->mlme_cfg->rates.ext_opr_rate_set, &nRates); + if (QDF_IS_STATUS_ERROR(nsir_status)) { + nRates = 0; + pe_err("Failed to retrieve nItem from CFG status: %d", + (nsir_status)); + return nsir_status; + } } if (0 != nRates) { @@ -565,8 +573,8 @@ populate_dot11f_ext_supp_rates1(tpAniSirGlobal pMac, uint8_t nChannelNum, tDot11fIEExtSuppRates *pDot11f) { - uint32_t nRates; - QDF_STATUS nSirStatus; + qdf_size_t nRates; + QDF_STATUS nsir_status; uint8_t rates[SIR_MAC_MAX_NUMBER_OF_RATES]; if (14 < nChannelNum) { @@ -576,8 +584,16 @@ populate_dot11f_ext_supp_rates1(tpAniSirGlobal pMac, /* N.B. I have *no* idea why we're calling 'wlan_cfg_get_str' with an argument */ /* of WNI_CFG_SUPPORTED_RATES_11A here, but that's what was done */ /* previously & I'm afraid to change it! */ - CFG_GET_STR(nSirStatus, pMac, WNI_CFG_SUPPORTED_RATES_11A, - rates, nRates, SIR_MAC_MAX_NUMBER_OF_RATES); + nRates = SIR_MAC_MAX_NUMBER_OF_RATES; + nsir_status = wlan_mlme_get_cfg_str( + rates, + &pMac->mlme_cfg->rates.supported_11a, + &nRates); + if (QDF_IS_STATUS_ERROR(nsir_status)) { + pe_err("Failed to retrieve nItem from CFG status: %d", + (nsir_status)); + return nsir_status; + } if (0 != nRates) { pDot11f->num_rates = (uint8_t) nRates; @@ -592,8 +608,9 @@ QDF_STATUS populate_dot11f_ht_caps(tpAniSirGlobal pMac, tpPESession psessionEntry, tDot11fIEHTCaps *pDot11f) { - uint32_t nCfgValue, nCfgLen; + uint32_t nCfgValue; uint8_t nCfgValue8; + qdf_size_t ncfglen; QDF_STATUS nSirStatus; tSirMacHTParametersInfo *pHTParametersInfo; uint8_t disable_high_ht_mcs_2x2 = 0; @@ -651,9 +668,16 @@ populate_dot11f_ht_caps(tpAniSirGlobal pMac, pDot11f->mpduDensity = pHTParametersInfo->mpduDensity; pDot11f->reserved1 = pHTParametersInfo->reserved; - CFG_GET_STR(nSirStatus, pMac, WNI_CFG_SUPPORTED_MCS_SET, - pDot11f->supportedMCSSet, nCfgLen, - SIZE_OF_SUPPORTED_MCS_SET); + ncfglen = SIZE_OF_SUPPORTED_MCS_SET; + nSirStatus = wlan_mlme_get_cfg_str( + pDot11f->supportedMCSSet, + &pMac->mlme_cfg->rates.supported_mcs_set, + &ncfglen); + if (QDF_IS_STATUS_ERROR(nSirStatus)) { + pe_err("Failed to retrieve nItem from CFG status: %d", + (nSirStatus)); + return nSirStatus; + } if (psessionEntry) { disable_high_ht_mcs_2x2 = @@ -1131,7 +1155,8 @@ QDF_STATUS populate_dot11f_ht_info(tpAniSirGlobal pMac, tDot11fIEHTInfo *pDot11f, tpPESession psessionEntry) { - uint32_t nCfgValue, nCfgLen; + uint32_t nCfgValue; + qdf_size_t ncfglen; uint8_t htInfoField1; uint16_t htInfoField2; QDF_STATUS nSirStatus; @@ -1233,8 +1258,15 @@ populate_dot11f_ht_info(tpAniSirGlobal pMac, pDot11f->pcoActive = uHTInfoField.infoField3.pcoActive; pDot11f->pcoPhase = uHTInfoField.infoField3.pcoPhase; pDot11f->reserved2 = uHTInfoField.infoField3.reserved; - CFG_GET_STR(nSirStatus, pMac, WNI_CFG_BASIC_MCS_SET, - pDot11f->basicMCSSet, nCfgLen, SIZE_OF_BASIC_MCS_SET); + ncfglen = SIZE_OF_BASIC_MCS_SET; + nSirStatus = wlan_mlme_get_cfg_str(pDot11f->basicMCSSet, + &pMac->mlme_cfg->rates.basic_mcs_set, + &ncfglen); + if (QDF_IS_STATUS_ERROR(nSirStatus)) { + pe_err("Failed to retrieve nItem from CFG status: %d", + (nSirStatus)); + return nSirStatus; + } pDot11f->present = 1; @@ -1546,8 +1578,8 @@ populate_dot11f_supp_rates(tpAniSirGlobal pMac, uint8_t nChannelNum, tDot11fIESuppRates *pDot11f, tpPESession psessionEntry) { - QDF_STATUS nSirStatus; - uint32_t nRates; + QDF_STATUS nsir_status; + qdf_size_t nRates; uint8_t rates[SIR_MAC_MAX_NUMBER_OF_RATES]; /* Use the operational rates present in session entry whenever nChannelNum is set to OPERATIONAL @@ -1556,7 +1588,7 @@ populate_dot11f_supp_rates(tpAniSirGlobal pMac, */ if (POPULATE_DOT11F_RATES_OPERATIONAL == nChannelNum) { #if 0 - CFG_GET_STR(nSirStatus, pMac, WNI_CFG_OPERATIONAL_RATE_SET, + CFG_GET_STR(nsir_status, pMac, WNI_CFG_OPERATIONAL_RATE_SET, rates, nRates, SIR_MAC_MAX_NUMBER_OF_RATES); #endif /* TO SUPPORT BT-AMP */ if (psessionEntry != NULL) { @@ -1568,11 +1600,27 @@ populate_dot11f_supp_rates(tpAniSirGlobal pMac, nRates = 0; } } else if (14 >= nChannelNum) { - CFG_GET_STR(nSirStatus, pMac, WNI_CFG_SUPPORTED_RATES_11B, - rates, nRates, SIR_MAC_MAX_NUMBER_OF_RATES); + nRates = SIR_MAC_MAX_NUMBER_OF_RATES; + nsir_status = wlan_mlme_get_cfg_str( + rates, + &pMac->mlme_cfg->rates.supported_11b, + &nRates); + if (QDF_IS_STATUS_ERROR(nsir_status)) { + pe_err("Failed to retrieve nItem from CFG status: %d", + (nsir_status)); + return nsir_status; + } } else { - CFG_GET_STR(nSirStatus, pMac, WNI_CFG_SUPPORTED_RATES_11A, - rates, nRates, SIR_MAC_MAX_NUMBER_OF_RATES); + nRates = SIR_MAC_MAX_NUMBER_OF_RATES; + nsir_status = wlan_mlme_get_cfg_str( + rates, + &pMac->mlme_cfg->rates.supported_11a, + &nRates); + if (QDF_IS_STATUS_ERROR(nsir_status)) { + pe_err("Failed to retrieve nItem from CFG status: %d", + (nsir_status)); + return nsir_status; + } } if (0 != nRates) { @@ -1610,8 +1658,9 @@ populate_dot11f_rates_tdls(tpAniSirGlobal p_mac, { tSirMacRateSet temp_rateset; tSirMacRateSet temp_rateset2; - uint32_t val, i; + uint32_t i; uint32_t self_dot11mode = 0; + qdf_size_t num_rates; wlan_cfg_get_int(p_mac, WNI_CFG_DOT11_MODE, &self_dot11mode); @@ -1632,20 +1681,22 @@ populate_dot11f_rates_tdls(tpAniSirGlobal p_mac, (self_dot11mode == WNI_CFG_DOT11_MODE_11N) || (self_dot11mode == WNI_CFG_DOT11_MODE_11G) || (self_dot11mode == WNI_CFG_DOT11_MODE_11B))) { - val = WNI_CFG_SUPPORTED_RATES_11B_LEN; - wlan_cfg_get_str(p_mac, WNI_CFG_SUPPORTED_RATES_11B, - (uint8_t *)&temp_rateset.rate, &val); - temp_rateset.numRates = (uint8_t) val; + num_rates = p_mac->mlme_cfg->rates.supported_11b.len; + wlan_mlme_get_cfg_str((uint8_t *)&temp_rateset.rate, + &p_mac->mlme_cfg->rates.supported_11b, + &num_rates); + temp_rateset.numRates = (uint8_t)num_rates; } else { temp_rateset.numRates = 0; } /* Include 11a rates when the device configured in non-11b mode */ if (!IS_DOT11_MODE_11B(self_dot11mode)) { - val = WNI_CFG_SUPPORTED_RATES_11A_LEN; - wlan_cfg_get_str(p_mac, WNI_CFG_SUPPORTED_RATES_11A, - (uint8_t *)&temp_rateset2.rate, &val); - temp_rateset2.numRates = (uint8_t) val; + num_rates = p_mac->mlme_cfg->rates.supported_11a.len; + wlan_mlme_get_cfg_str((uint8_t *)&temp_rateset2.rate, + &p_mac->mlme_cfg->rates.supported_11a, + &num_rates); + temp_rateset2.numRates = (uint8_t)num_rates; } else { temp_rateset2.numRates = 0; } diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 0216e7c1d5..e3f517649b 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -5090,13 +5090,13 @@ static void csr_set_cfg_rate_set(tpAniSirGlobal pMac, eCsrPhyMode phyMode, enum csr_cfgdot11mode cfgDot11Mode; /* leave enough room for the max number of rates */ uint8_t OperationalRates[CSR_DOT11_SUPPORTED_RATES_MAX]; - uint32_t OperationalRatesLength = 0; + qdf_size_t OperationalRatesLength = 0; /* leave enough room for the max number of rates */ uint8_t ExtendedOperationalRates [CSR_DOT11_EXTENDED_SUPPORTED_RATES_MAX]; - uint32_t ExtendedOperationalRatesLength = 0; + qdf_size_t ExtendedOperationalRatesLength = 0; uint8_t MCSRateIdxSet[SIZE_OF_SUPPORTED_MCS_SET]; - uint32_t MCSRateLength = 0; + qdf_size_t MCSRateLength = 0; QDF_ASSERT(pIes != NULL); if (NULL != pIes) { @@ -5168,13 +5168,15 @@ static void csr_set_cfg_rate_set(tpAniSirGlobal pMac, eCsrPhyMode phyMode, } } /* Set the operational rate set CFG variables... */ - cfg_set_str(pMac, WNI_CFG_OPERATIONAL_RATE_SET, - OperationalRates, OperationalRatesLength); - cfg_set_str(pMac, WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET, - ExtendedOperationalRates, - ExtendedOperationalRatesLength); - cfg_set_str(pMac, WNI_CFG_CURRENT_MCS_SET, MCSRateIdxSet, - MCSRateLength); + wlan_mlme_set_cfg_str(OperationalRates, + &pMac->mlme_cfg->rates.opr_rate_set, + OperationalRatesLength); + wlan_mlme_set_cfg_str(ExtendedOperationalRates, + &pMac->mlme_cfg->rates.ext_opr_rate_set, + ExtendedOperationalRatesLength); + wlan_mlme_set_cfg_str(MCSRateIdxSet, + &pMac->mlme_cfg->rates.current_mcs_set, + MCSRateLength); } /* Parsing BSSDesc */ else sme_err("failed to parse BssDesc"); @@ -5203,11 +5205,11 @@ static void csr_set_cfg_rate_set_from_profile(tpAniSirGlobal pMac, enum band_info eBand; /* leave enough room for the max number of rates */ uint8_t OperationalRates[CSR_DOT11_SUPPORTED_RATES_MAX]; - uint32_t OperationalRatesLength = 0; + qdf_size_t OperationalRatesLength = 0; /* leave enough room for the max number of rates */ uint8_t ExtendedOperationalRates [CSR_DOT11_EXTENDED_SUPPORTED_RATES_MAX]; - uint32_t ExtendedOperationalRatesLength = 0; + qdf_size_t ExtendedOperationalRatesLength = 0; uint8_t operationChannel = 0; if (pProfile->ChannelInfo.ChannelList) @@ -5263,11 +5265,12 @@ static void csr_set_cfg_rate_set_from_profile(tpAniSirGlobal pMac, } /* Set the operational rate set CFG variables... */ - cfg_set_str(pMac, WNI_CFG_OPERATIONAL_RATE_SET, OperationalRates, - OperationalRatesLength); - cfg_set_str(pMac, WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET, - ExtendedOperationalRates, - ExtendedOperationalRatesLength); + wlan_mlme_set_cfg_str(OperationalRates, + &pMac->mlme_cfg->rates.opr_rate_set, + OperationalRatesLength); + wlan_mlme_set_cfg_str(ExtendedOperationalRates, + &pMac->mlme_cfg->rates.ext_opr_rate_set, + ExtendedOperationalRatesLength); } static void csr_roam_ccm_cfg_set_callback(tpAniSirGlobal pMac, diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index 263e08b5bd..c25a7d3115 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -69,6 +69,7 @@ #include #include #include "wma_nan_datapath.h" +#include "wlan_mlme_api.h" #define WMA_MCC_MIRACAST_REST_TIME 400 #define WMA_SCAN_ID_MASK 0x0fff @@ -2671,6 +2672,7 @@ QDF_STATUS wma_roam_scan_fill_self_caps(tp_wma_handle wma_handle, roam_offload_params, tSirRoamOffloadScanReq *roam_req) { + qdf_size_t val_len; struct sAniSirGlobal *pMac = NULL; tSirMacCapabilityInfo selfCaps; uint32_t val = 0; @@ -2772,12 +2774,12 @@ QDF_STATUS wma_roam_scan_fill_self_caps(tp_wma_handle wma_handle, nCfgValue8 = (uint8_t) nCfgValue; roam_offload_params->ampdu_param = (nCfgValue8) & 0xFF; - val = ROAM_OFFLOAD_NUM_MCS_SET; - if (wlan_cfg_get_str(pMac, WNI_CFG_SUPPORTED_MCS_SET, - (uint8_t *) roam_offload_params->mcsset, - &val) != QDF_STATUS_SUCCESS) { + val_len = ROAM_OFFLOAD_NUM_MCS_SET; + if (wlan_mlme_get_cfg_str((uint8_t *)roam_offload_params->mcsset, + &pMac->mlme_cfg->rates.supported_mcs_set, + &val_len) != QDF_STATUS_SUCCESS) { QDF_TRACE(QDF_MODULE_ID_WMA, QDF_TRACE_LEVEL_ERROR, - "Failed to get WNI_CFG_SUPPORTED_MCS_SET"); + "Failed to get CFG_SUPPORTED_MCS_SET"); return QDF_STATUS_E_FAILURE; } if (wlan_cfg_get_int(pMac, WNI_CFG_EXT_HT_CAP_INFO, &nCfgValue) !=