[dpdk-dev] [PATCH v3] ethdev: support QinQ strip dynamic configuration

Ferruh Yigit ferruh.yigit at intel.com
Thu Jun 27 13:08:06 CEST 2019


On 4/19/2019 6:59 AM, viveksharma at marvell.com wrote:
> From: Vivek Sharma <viveksharma at marvell.com>
> 
> Enable missing support for runtime configuration (setting/getting)
> of QinQ strip rx offload for a given ethdev.
> 
> Signed-off-by: Vivek Sharma <viveksharma at marvell.com>

<...>

> diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
> index 40a068f..c1792f4 100644
> --- a/lib/librte_ethdev/rte_ethdev.h
> +++ b/lib/librte_ethdev/rte_ethdev.h
> @@ -550,11 +550,13 @@ struct rte_eth_rss_conf {
>  #define ETH_VLAN_STRIP_OFFLOAD   0x0001 /**< VLAN Strip  On/Off */
>  #define ETH_VLAN_FILTER_OFFLOAD  0x0002 /**< VLAN Filter On/Off */
>  #define ETH_VLAN_EXTEND_OFFLOAD  0x0004 /**< VLAN Extend On/Off */
> +#define ETH_QINQ_STRIP_OFFLOAD   0x0008 /**< QINQ Strip On/Off */
>  
>  /* Definitions used for mask VLAN setting */
>  #define ETH_VLAN_STRIP_MASK   0x0001 /**< VLAN Strip  setting mask */
>  #define ETH_VLAN_FILTER_MASK  0x0002 /**< VLAN Filter  setting mask*/
>  #define ETH_VLAN_EXTEND_MASK  0x0004 /**< VLAN Extend  setting mask*/
> +#define ETH_QINQ_STRIP_MASK   0x0008 /**< QINQ Strip  setting mask */
>  #define ETH_VLAN_ID_MAX       0x0FFF /**< VLAN ID is in lower 12 bits*/

On its own patch looks ok but a few high level questions:

1- Why we need this interim defines, instead of using actual offload values?
Although changing this will be API/ABI breakage.

2- Why we have specific function to set vlan offloads, for other offloads the
way is stop device and reconfigure it with new offload flags.

3- If devices can change offload configuration dynamically, do we need a generic
API to alter the offload configs? (similar to these vlan APIs but more generic)?



Related to the patch, what do you think about following options:
a)
- Get this patch
- Send a deprecation notice for 1) in this release
- Next release remove these flags, which will be practically reverse this patch
and more

b)
- Send a deprecation notice for 1) in this release
- Next release update the APIs and a smaller/different version of this patch
will be required.


More information about the dev mailing list