[v5,1/3] ethdev: add new RSS offload types

Message ID 20200415171129.86297-2-jia.guo@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Ferruh Yigit
Headers
Series add RSS configuration for iavf |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Guo, Jia April 15, 2020, 5:11 p.m. UTC
  Defines some new RSS offload types for ETH/S_VLAN/C_VLAN/L2TPV3/
ESP/AH/PFCP/L2_SRC_ONLY/L2_DST_ONLY.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>
---
v5->v4:
rename ETH_RSS_ETH_XXX to ETH_RSS_L2_XXX.
---
 lib/librte_ethdev/rte_ethdev.h | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
  

Comments

Iremonger, Bernard April 15, 2020, 3:38 p.m. UTC | #1
Hi  Jeff,


> -----Original Message-----
> From: Guo, Jia <jia.guo@intel.com>
> Sent: Wednesday, April 15, 2020 6:11 PM
> To: Iremonger, Bernard <bernard.iremonger@intel.com>;
> orika@mellanox.com; Ye, Xiaolong <xiaolong.ye@intel.com>; Zhang, Qi Z
> <qi.z.zhang@intel.com>
> Cc: dev@dpdk.org; Wu, Jingjing <jingjing.wu@intel.com>; Cao, Yahui
> <yahui.cao@intel.com>; Su, Simei <simei.su@intel.com>; Guo, Jia
> <jia.guo@intel.com>
> Subject: [dpdk-dev v5 1/3] ethdev: add new RSS offload types
> 
> Defines some new RSS offload types for ETH/S_VLAN/C_VLAN/L2TPV3/
> ESP/AH/PFCP/L2_SRC_ONLY/L2_DST_ONLY.
> 
> Signed-off-by: Jeff Guo <jia.guo@intel.com>
> Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>
> ---
> v5->v4:
> rename ETH_RSS_ETH_XXX to ETH_RSS_L2_XXX.
> ---
>  lib/librte_ethdev/rte_ethdev.h | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
> index d1a593ad1..138c15a16 100644
> --- a/lib/librte_ethdev/rte_ethdev.h
> +++ b/lib/librte_ethdev/rte_ethdev.h
> @@ -511,6 +511,13 @@ struct rte_eth_rss_conf {
>  #define ETH_RSS_GENEVE             (1ULL << 20)
>  #define ETH_RSS_NVGRE              (1ULL << 21)
>  #define ETH_RSS_GTPU               (1ULL << 23)
> +#define ETH_RSS_ETH		   (1ULL << 24)
> +#define ETH_RSS_S_VLAN		   (1ULL << 25)
> +#define ETH_RSS_C_VLAN		   (1ULL << 26)
> +#define ETH_RSS_ESP		   (1ULL << 27)
> +#define ETH_RSS_AH		   (1ULL << 28)

I have a patch in flight to  add ETH_RSS_ESP and ETH_RSS_AH.
I have used the same values as you have used.
http://patches.dpdk.org/patch/68550/

> +#define ETH_RSS_L2TPV3		   (1ULL << 29)
> +#define ETH_RSS_PFCP		   (1ULL << 30)
> 
>  /*
>   * We use the following macros to combine with above ETH_RSS_* for @@ -
> 524,7 +531,9 @@ struct rte_eth_rss_conf {
>  #define ETH_RSS_L3_SRC_ONLY        (1ULL << 63)
>  #define ETH_RSS_L3_DST_ONLY        (1ULL << 62)
>  #define ETH_RSS_L4_SRC_ONLY        (1ULL << 61)
> -#define ETH_RSS_L4_DST_ONLY        (1ULL << 60)
> +#define ETH_RSS_L4_DST_ONLY	   (1ULL << 60)
> +#define ETH_RSS_L2_SRC_ONLY	   (1ULL << 59)
> +#define ETH_RSS_L2_DST_ONLY	   (1ULL << 58)
> 
>  /**
>   * For input set change of hash filter, if SRC_ONLY and DST_ONLY of
> --
> 2.20.1

Regards,

Bernard.
  
Ferruh Yigit April 15, 2020, 10:13 p.m. UTC | #2
On 4/15/2020 4:38 PM, Iremonger, Bernard wrote:
> Hi  Jeff,
> 
> 
>> -----Original Message-----
>> From: Guo, Jia <jia.guo@intel.com>
>> Sent: Wednesday, April 15, 2020 6:11 PM
>> To: Iremonger, Bernard <bernard.iremonger@intel.com>;
>> orika@mellanox.com; Ye, Xiaolong <xiaolong.ye@intel.com>; Zhang, Qi Z
>> <qi.z.zhang@intel.com>
>> Cc: dev@dpdk.org; Wu, Jingjing <jingjing.wu@intel.com>; Cao, Yahui
>> <yahui.cao@intel.com>; Su, Simei <simei.su@intel.com>; Guo, Jia
>> <jia.guo@intel.com>
>> Subject: [dpdk-dev v5 1/3] ethdev: add new RSS offload types
>>
>> Defines some new RSS offload types for ETH/S_VLAN/C_VLAN/L2TPV3/
>> ESP/AH/PFCP/L2_SRC_ONLY/L2_DST_ONLY.
>>
>> Signed-off-by: Jeff Guo <jia.guo@intel.com>
>> Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>
>> ---
>> v5->v4:
>> rename ETH_RSS_ETH_XXX to ETH_RSS_L2_XXX.
>> ---
>>  lib/librte_ethdev/rte_ethdev.h | 11 ++++++++++-
>>  1 file changed, 10 insertions(+), 1 deletion(-)
>>
>> diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
>> index d1a593ad1..138c15a16 100644
>> --- a/lib/librte_ethdev/rte_ethdev.h
>> +++ b/lib/librte_ethdev/rte_ethdev.h
>> @@ -511,6 +511,13 @@ struct rte_eth_rss_conf {
>>  #define ETH_RSS_GENEVE             (1ULL << 20)
>>  #define ETH_RSS_NVGRE              (1ULL << 21)
>>  #define ETH_RSS_GTPU               (1ULL << 23)
>> +#define ETH_RSS_ETH		   (1ULL << 24)
>> +#define ETH_RSS_S_VLAN		   (1ULL << 25)
>> +#define ETH_RSS_C_VLAN		   (1ULL << 26)
>> +#define ETH_RSS_ESP		   (1ULL << 27)
>> +#define ETH_RSS_AH		   (1ULL << 28)
> 
> I have a patch in flight to  add ETH_RSS_ESP and ETH_RSS_AH.
> I have used the same values as you have used.
> http://patches.dpdk.org/patch/68550/

Both patch sets touch similar area, both in ethdev and testpmd, and both sets
has external dependencies, so not easy to manage.
But since the changes are trivial, I hope it can be resolved while merging, if
not one may be required to be rebased, based on merge order.
btw, using same values is good idea, it helps to resolve conflict.

> 
>> +#define ETH_RSS_L2TPV3		   (1ULL << 29)
>> +#define ETH_RSS_PFCP		   (1ULL << 30)
>>
>>  /*
>>   * We use the following macros to combine with above ETH_RSS_* for @@ -
>> 524,7 +531,9 @@ struct rte_eth_rss_conf {
>>  #define ETH_RSS_L3_SRC_ONLY        (1ULL << 63)
>>  #define ETH_RSS_L3_DST_ONLY        (1ULL << 62)
>>  #define ETH_RSS_L4_SRC_ONLY        (1ULL << 61)
>> -#define ETH_RSS_L4_DST_ONLY        (1ULL << 60)
>> +#define ETH_RSS_L4_DST_ONLY	   (1ULL << 60)
>> +#define ETH_RSS_L2_SRC_ONLY	   (1ULL << 59)
>> +#define ETH_RSS_L2_DST_ONLY	   (1ULL << 58)
>>
>>  /**
>>   * For input set change of hash filter, if SRC_ONLY and DST_ONLY of
>> --
>> 2.20.1
> 
> Regards,
> 
> Bernard.
>
  
Guo, Jia April 16, 2020, 3:22 a.m. UTC | #3
hi, ferruh and bernard


On 4/16/2020 6:13 AM, Ferruh Yigit wrote:
> On 4/15/2020 4:38 PM, Iremonger, Bernard wrote:
>> Hi  Jeff,
>>
>>
>>> -----Original Message-----
>>> From: Guo, Jia <jia.guo@intel.com>
>>> Sent: Wednesday, April 15, 2020 6:11 PM
>>> To: Iremonger, Bernard <bernard.iremonger@intel.com>;
>>> orika@mellanox.com; Ye, Xiaolong <xiaolong.ye@intel.com>; Zhang, Qi Z
>>> <qi.z.zhang@intel.com>
>>> Cc: dev@dpdk.org; Wu, Jingjing <jingjing.wu@intel.com>; Cao, Yahui
>>> <yahui.cao@intel.com>; Su, Simei <simei.su@intel.com>; Guo, Jia
>>> <jia.guo@intel.com>
>>> Subject: [dpdk-dev v5 1/3] ethdev: add new RSS offload types
>>>
>>> Defines some new RSS offload types for ETH/S_VLAN/C_VLAN/L2TPV3/
>>> ESP/AH/PFCP/L2_SRC_ONLY/L2_DST_ONLY.
>>>
>>> Signed-off-by: Jeff Guo <jia.guo@intel.com>
>>> Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>
>>> ---
>>> v5->v4:
>>> rename ETH_RSS_ETH_XXX to ETH_RSS_L2_XXX.
>>> ---
>>>   lib/librte_ethdev/rte_ethdev.h | 11 ++++++++++-
>>>   1 file changed, 10 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
>>> index d1a593ad1..138c15a16 100644
>>> --- a/lib/librte_ethdev/rte_ethdev.h
>>> +++ b/lib/librte_ethdev/rte_ethdev.h
>>> @@ -511,6 +511,13 @@ struct rte_eth_rss_conf {
>>>   #define ETH_RSS_GENEVE             (1ULL << 20)
>>>   #define ETH_RSS_NVGRE              (1ULL << 21)
>>>   #define ETH_RSS_GTPU               (1ULL << 23)
>>> +#define ETH_RSS_ETH		   (1ULL << 24)
>>> +#define ETH_RSS_S_VLAN		   (1ULL << 25)
>>> +#define ETH_RSS_C_VLAN		   (1ULL << 26)
>>> +#define ETH_RSS_ESP		   (1ULL << 27)
>>> +#define ETH_RSS_AH		   (1ULL << 28)
>> I have a patch in flight to  add ETH_RSS_ESP and ETH_RSS_AH.
>> I have used the same values as you have used.
>> http://patches.dpdk.org/patch/68550/
> Both patch sets touch similar area, both in ethdev and testpmd, and both sets
> has external dependencies, so not easy to manage.
> But since the changes are trivial, I hope it can be resolved while merging, if
> not one may be required to be rebased, based on merge order.
> btw, using same values is good idea, it helps to resolve conflict.


Agree and thanks.


>>> +#define ETH_RSS_L2TPV3		   (1ULL << 29)
>>> +#define ETH_RSS_PFCP		   (1ULL << 30)
>>>
>>>   /*
>>>    * We use the following macros to combine with above ETH_RSS_* for @@ -
>>> 524,7 +531,9 @@ struct rte_eth_rss_conf {
>>>   #define ETH_RSS_L3_SRC_ONLY        (1ULL << 63)
>>>   #define ETH_RSS_L3_DST_ONLY        (1ULL << 62)
>>>   #define ETH_RSS_L4_SRC_ONLY        (1ULL << 61)
>>> -#define ETH_RSS_L4_DST_ONLY        (1ULL << 60)
>>> +#define ETH_RSS_L4_DST_ONLY	   (1ULL << 60)
>>> +#define ETH_RSS_L2_SRC_ONLY	   (1ULL << 59)
>>> +#define ETH_RSS_L2_DST_ONLY	   (1ULL << 58)
>>>
>>>   /**
>>>    * For input set change of hash filter, if SRC_ONLY and DST_ONLY of
>>> --
>>> 2.20.1
>> Regards,
>>
>> Bernard.
>>
  
Ori Kam April 16, 2020, 6:57 a.m. UTC | #4
Hi Jeff,

> -----Original Message-----
> From: Jeff Guo <jia.guo@intel.com>
> Sent: Wednesday, April 15, 2020 8:11 PM
> To: bernard.iremonger@intel.com; Ori Kam <orika@mellanox.com>;
> xiaolong.ye@intel.com; qi.z.zhang@intel.com
> Cc: dev@dpdk.org; jingjing.wu@intel.com; yahui.cao@intel.com;
> simei.su@intel.com; jia.guo@intel.com
> Subject: [dpdk-dev v5 1/3] ethdev: add new RSS offload types
> 
> Defines some new RSS offload types for ETH/S_VLAN/C_VLAN/L2TPV3/
> ESP/AH/PFCP/L2_SRC_ONLY/L2_DST_ONLY.
> 
> Signed-off-by: Jeff Guo <jia.guo@intel.com>
> Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>
> ---
> v5->v4:
> rename ETH_RSS_ETH_XXX to ETH_RSS_L2_XXX.
> ---

Acked-by: Ori Kam <orika@mellanox.com>
Thanks,
Ori

>  lib/librte_ethdev/rte_ethdev.h | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
> index d1a593ad1..138c15a16 100644
> --- a/lib/librte_ethdev/rte_ethdev.h
> +++ b/lib/librte_ethdev/rte_ethdev.h
> @@ -511,6 +511,13 @@ struct rte_eth_rss_conf {
>  #define ETH_RSS_GENEVE             (1ULL << 20)
>  #define ETH_RSS_NVGRE              (1ULL << 21)
>  #define ETH_RSS_GTPU               (1ULL << 23)
> +#define ETH_RSS_ETH		   (1ULL << 24)
> +#define ETH_RSS_S_VLAN		   (1ULL << 25)
> +#define ETH_RSS_C_VLAN		   (1ULL << 26)
> +#define ETH_RSS_ESP		   (1ULL << 27)
> +#define ETH_RSS_AH		   (1ULL << 28)
> +#define ETH_RSS_L2TPV3		   (1ULL << 29)
> +#define ETH_RSS_PFCP		   (1ULL << 30)
> 
>  /*
>   * We use the following macros to combine with above ETH_RSS_* for
> @@ -524,7 +531,9 @@ struct rte_eth_rss_conf {
>  #define ETH_RSS_L3_SRC_ONLY        (1ULL << 63)
>  #define ETH_RSS_L3_DST_ONLY        (1ULL << 62)
>  #define ETH_RSS_L4_SRC_ONLY        (1ULL << 61)
> -#define ETH_RSS_L4_DST_ONLY        (1ULL << 60)
> +#define ETH_RSS_L4_DST_ONLY	   (1ULL << 60)
> +#define ETH_RSS_L2_SRC_ONLY	   (1ULL << 59)
> +#define ETH_RSS_L2_DST_ONLY	   (1ULL << 58)
> 
>  /**
>   * For input set change of hash filter, if SRC_ONLY and DST_ONLY of
> --
> 2.20.1
  

Patch

diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
index d1a593ad1..138c15a16 100644
--- a/lib/librte_ethdev/rte_ethdev.h
+++ b/lib/librte_ethdev/rte_ethdev.h
@@ -511,6 +511,13 @@  struct rte_eth_rss_conf {
 #define ETH_RSS_GENEVE             (1ULL << 20)
 #define ETH_RSS_NVGRE              (1ULL << 21)
 #define ETH_RSS_GTPU               (1ULL << 23)
+#define ETH_RSS_ETH		   (1ULL << 24)
+#define ETH_RSS_S_VLAN		   (1ULL << 25)
+#define ETH_RSS_C_VLAN		   (1ULL << 26)
+#define ETH_RSS_ESP		   (1ULL << 27)
+#define ETH_RSS_AH		   (1ULL << 28)
+#define ETH_RSS_L2TPV3		   (1ULL << 29)
+#define ETH_RSS_PFCP		   (1ULL << 30)
 
 /*
  * We use the following macros to combine with above ETH_RSS_* for
@@ -524,7 +531,9 @@  struct rte_eth_rss_conf {
 #define ETH_RSS_L3_SRC_ONLY        (1ULL << 63)
 #define ETH_RSS_L3_DST_ONLY        (1ULL << 62)
 #define ETH_RSS_L4_SRC_ONLY        (1ULL << 61)
-#define ETH_RSS_L4_DST_ONLY        (1ULL << 60)
+#define ETH_RSS_L4_DST_ONLY	   (1ULL << 60)
+#define ETH_RSS_L2_SRC_ONLY	   (1ULL << 59)
+#define ETH_RSS_L2_DST_ONLY	   (1ULL << 58)
 
 /**
  * For input set change of hash filter, if SRC_ONLY and DST_ONLY of