[dpdk-dev] [PATCH] ethdev: reserve space in main structs for extension

Stephen Hemminger stephen at networkplumber.org
Fri Nov 8 04:41:33 CET 2019


On Thu,  7 Nov 2019 23:15:24 +0100
Thomas Monjalon <thomas at monjalon.net> wrote:

> The struct rte_eth_dev and rte_eth_dev_data are supposed
> to be used internally only, but there is a chance that
> increasing their size would break ABI for some applications.
> In order to allow smooth addition of features without breaking
> ABI compatibility, some space is reserved.
> 
> Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
> ---
>  lib/librte_ethdev/rte_ethdev_core.h | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/lib/librte_ethdev/rte_ethdev_core.h b/lib/librte_ethdev/rte_ethdev_core.h
> index 392aea8e6b..ea8dd1d9ba 100644
> --- a/lib/librte_ethdev/rte_ethdev_core.h
> +++ b/lib/librte_ethdev/rte_ethdev_core.h
> @@ -698,6 +698,9 @@ struct rte_eth_dev {
>  	struct rte_eth_rxtx_callback *pre_tx_burst_cbs[RTE_MAX_QUEUES_PER_PORT];
>  	enum rte_eth_dev_state state; /**< Flag indicating the port state */
>  	void *security_ctx; /**< Context for security ops */
> +
> +	uint64_t reserved_64s[4]; /**< Reserved for future fields */
> +	void *reserved_ptrs[4]; /**< Reserved for future fields */
>  } __rte_cache_aligned;
>  
>  struct rte_eth_dev_sriov;
> @@ -764,6 +767,9 @@ struct rte_eth_dev_data {
>  			/**< Switch-specific identifier.
>  			 *   Valid if RTE_ETH_DEV_REPRESENTOR in dev_flags.
>  			 */
> +
> +	uint64_t reserved_64s[4]; /**< Reserved for future fields */
> +	void *reserved_ptrs[4]; /**< Reserved for future fields */
>  } __rte_cache_aligned;
>  
>  /**

Void * is 32 bits on 32 bit architectures is that helpful or not?


More information about the dev mailing list