[dpdk-dev] [PATCH] net/i40e: fix hash enable issue in RSS flow

Jeff Guo jia.guo at intel.com
Wed May 13 10:40:42 CEST 2020


hi, hailin

Seems that this patch is fixing a issue about l2-playload but it is 
related with the priors wrong usage of the pattern.

The rework need further to do and sincerely it it not very easy to 
review it.  But if consider it for the work around solution, commend as 
below.


On 5/8/2020 11:32 AM, Xu, HailinX wrote:
> Tested-by: Xu, Hailin <hailinx.xu at intel.com>
>
> Regards,
> Xu, Hailin
>
> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Wang, ShougangX
> Sent: Friday, May 8, 2020 9:52 AM
> To: Xing, Beilei <beilei.xing at intel.com>; dev at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] net/i40e: fix hash enable issue in RSS flow
>
> Hi, Beilei
>
>> -----Original Message-----
>> From: Xing, Beilei <beilei.xing at intel.com>
>> Sent: Friday, May 8, 2020 9:04 AM
>> To: Wang, ShougangX <shougangx.wang at intel.com>; dev at dpdk.org
>> Subject: RE: [PATCH] net/i40e: fix hash enable issue in RSS flow
>>
>>
>>
>>> -----Original Message-----
>>> From: Wang, ShougangX <shougangx.wang at intel.com>
>>> Sent: Thursday, May 7, 2020 5:44 PM
>>> To: dev at dpdk.org
>>> Cc: Xing, Beilei <beilei.xing at intel.com>; Wang, ShougangX
>>> <shougangx.wang at intel.com>
>>> Subject: [PATCH] net/i40e: fix hash enable issue in RSS flow
>>>
>>> This patch fixes the issue that failed to create an RSS rule with
>>> type
>>> L2- payload.
>>>
>>> Fixes: feaae285b342 ("net/i40e: support hash configuration in RSS
>>> flow")
>>>
>>> Signed-off-by: Shougang Wang <shougangx.wang at intel.com>
>>> ---
>>>   drivers/net/i40e/i40e_flow.c | 14 ++++++--------
>>>   1 file changed, 6 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/drivers/net/i40e/i40e_flow.c
>>> b/drivers/net/i40e/i40e_flow.c index 7e64ae53a..f5f2f0d5d 100644L2-
>>> --- a/drivers/net/i40e/i40e_flow.c
>>> +++ b/drivers/net/i40e/i40e_flow.c
>>> @@ -4511,6 +4511,7 @@ i40e_flow_parse_rss_pattern(__rte_unused
>> struct
>>> rte_eth_dev *dev,
>> <...>
>>
>>> @@ -4544,8 +4545,7 @@ i40e_flow_parse_rss_pattern(__rte_unused
>> struct
>>> rte_eth_dev *dev,  if
>>> (i40e_match_pattern(i40e_rss_pctype_patterns[i].item_array,
>>>   items)) {
>>>   p_info->types = i40e_rss_pctype_patterns[i].type; -rte_free(items);
>>> -return 0;
>>> +break;
>>>   }
>>>   }
>>>
>>> @@ -4580,11 +4580,9 @@ i40e_flow_parse_rss_pattern(__rte_unused
>>> struct rte_eth_dev *dev,
>>>   }
>>>   break;
>>>   default:
>>> -rte_flow_error_set(error, EINVAL,
>>> -RTE_FLOW_ERROR_TYPE_ITEM,
>>> -item,
>>> -"Not support range");
>>> -return -rte_errno;
>>> +p_info->action_flag = 0;
>>> +memset(info, 0, sizeof(struct i40e_queue_regions)); return 0;


Could you check if all case have set

p_info->action_flag such as RTE_FLOW_ITEM_TYPE_VLAN case.


>>>   }
>>>   }
>>>
>>> @@ -4640,7 +4638,7 @@ i40e_flow_parse_rss_action(struct rte_eth_dev
>>> *dev,  return -rte_errno;  }
>>>
>>> -if (p_info.action_flag) {
>>> +if (p_info.action_flag && rss->queue_num) {
>>>   for (n = 0; n < 64; n++) {
>>>   if (rss->types & (hf_bit << n)) {
>>>   conf_info->region[0].hw_flowtype[0] = n;
>>> --
>>> 2.17.1
>> Are the above changes relating to L2-payload?
>>
> Yes, in order to resolve the conflict between hash enable and queue region which caused by ether pattern, there are also a little bit changes for queue region.
>
> Thanks.
> Shougang


More information about the dev mailing list