On Thu,  3 Mar 2022 06:01:36 +0000
xuan.d...@intel.com wrote:

> diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h
> index c2d1f9a972..6743648c22 100644
> --- a/lib/ethdev/rte_ethdev.h
> +++ b/lib/ethdev/rte_ethdev.h
> @@ -1202,7 +1202,8 @@ struct rte_eth_rxseg_split {
>       struct rte_mempool *mp; /**< Memory pool to allocate segment from. */
>       uint16_t length; /**< Segment data length, configures split point. */
>       uint16_t offset; /**< Data offset from beginning of mbuf data buffer. */
> -     uint32_t reserved; /**< Reserved field. */
> +     uint16_t proto;
> +     uint16_t reserved; /**< Reserved field. */
>  };

This feature suffers from a common bad design pattern.
You can't just start using reserved fields unless the previous versions
enforced that the field was a particular value (usually zero).

There is no guarantee that application will initialize these reserved
fields and now using them risks breaking the API/ABI. It looks like

rte_eth_rx_queue_check_split(const struct rte_eth_rxseg_split *rx_seg,

Would have had to check in previous release.

This probably has to wait until 22.11 next API release.

Reply via email to