[dpdk-stable] [PATCH 19.11.6] ethdev: fix data type in TC queues

Luca Boccassi bluca at debian.org
Tue Nov 3 10:21:03 CET 2020


On Tue, 2020-11-03 at 17:04 +0800, Lijun Ou wrote:
> From: Huisong Li <lihuisong at huawei.com>
> 
> [ upstream commit 9f6dc8592d54aa2ec1800c53977a31bd7922147b ]
> 
> 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 at dpdk.org
> 
> Signed-off-by: Huisong Li <lihuisong at huawei.com>
> Signed-off-by: Min Hu (Connor) <humin29 at huawei.com>
> Reviewed-by: Wei Hu (Xavier) <xavier.huwei at huawei.com>
> Reviewed-by: Dongdong Liu <liudongdong3 at huawei.com>
> Acked-by: Thomas Monjalon <thomas at monjalon.net>
> Reviewed-by: Ferruh Yigit <ferruh.yigit at intel.com>
> ---
>  doc/guides/rel_notes/release_19_11.rst | 5 +++++
>  lib/librte_ethdev/rte_ethdev.h         | 8 ++++----
>  2 files changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/doc/guides/rel_notes/release_19_11.rst b/doc/guides/rel_notes/release_19_11.rst
> index acd18a3..cba8ebd 100644
> --- a/doc/guides/rel_notes/release_19_11.rst
> +++ b/doc/guides/rel_notes/release_19_11.rst
> @@ -457,6 +457,11 @@ API Changes
>  * ethdev: changed ``rte_eth_dev_owner_delete`` return value from ``void`` to
>    ``int`` to provide a way to report various error conditions.
>  
> +* 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.
> +
>  * ethdev: The deprecated function ``rte_eth_dev_count`` was removed.
>    The function ``rte_eth_dev_count_avail`` is a drop-in replacement.
>    If the intent is to iterate over ports, ``RTE_ETH_FOREACH_*`` macros
> diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
> index 51f9f25..5fedff0 100644
> --- a/lib/librte_ethdev/rte_ethdev.h
> +++ b/lib/librte_ethdev/rte_ethdev.h
> @@ -1360,13 +1360,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];
>  };

Hi,

Thanks for the patch, but isn't this an ABI breakage? This is a public
header right?

-- 
Kind regards,
Luca Boccassi


More information about the stable mailing list