ethdev: fix data type in TC queues

Currently, base and nb_queue in the tc_rxq and tc_txq information
of queue and TC mapping on both TX and RX paths are uint8_t.
However, these data will be truncated when queue number under a TC
is greater than 256. So it is necessary for base and nb_queue to
change from uint8_t to uint16_t.

Fixes: 89d6728c7837 ("ethdev: get DCB information")
Cc: stable@dpdk.org

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Reviewed-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Reviewed-by: Dongdong Liu <liudongdong3@huawei.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
Huisong Li 2020-09-27 11:16:36 +08:00 committed by Ferruh Yigit
parent c7870bfe09
commit 9f6dc8592d
2 changed files with 9 additions and 4 deletions

View File

@ -227,6 +227,11 @@ API Changes
* ``_rte_eth_dev_callback_process()`` -> ``rte_eth_dev_callback_process()``
* ``_rte_eth_dev_reset`` -> ``rte_eth_dev_internal_reset()``
* ethdev: Modified field type of ``base`` and ``nb_queue`` in struct
``rte_eth_dcb_tc_queue_mapping`` from ``uint8_t`` to ``uint16_t``.
As the data of ``uint8_t`` will be truncated when queue number under
a TC is greater than 256.
* vhost: Moved vDPA APIs from experimental to stable.
* rawdev: Added a structure size parameter to the functions

View File

@ -1522,13 +1522,13 @@ struct rte_eth_xstat_name {
struct rte_eth_dcb_tc_queue_mapping {
/** rx queues assigned to tc per Pool */
struct {
uint8_t base;
uint8_t nb_queue;
uint16_t base;
uint16_t nb_queue;
} tc_rxq[ETH_MAX_VMDQ_POOL][ETH_DCB_NUM_TCS];
/** rx queues assigned to tc per Pool */
struct {
uint8_t base;
uint8_t nb_queue;
uint16_t base;
uint16_t nb_queue;
} tc_txq[ETH_MAX_VMDQ_POOL][ETH_DCB_NUM_TCS];
};