[PATCH] net/ice: fix rss simple_xor hash function
Burakov, Anatoly
anatoly.burakov at intel.com
Mon Mar 9 12:48:59 CET 2026
On 3/9/2026 12:17 PM, Mandal, Anurag wrote:
>
>> -----Original Message-----
>> From: Burakov, Anatoly <anatoly.burakov at intel.com>
>> Sent: 09 March 2026 15:49
>> To: Mandal, Anurag <anurag.mandal at intel.com>; dev at dpdk.org
>> Cc: Richardson, Bruce <bruce.richardson at intel.com>;
>> alex.chapman at arm.com; stable at dpdk.org
>> Subject: Re: [PATCH] net/ice: fix rss simple_xor hash function
>>
>> On 3/9/2026 3:32 AM, Anurag Mandal wrote:
>>> RSS Simple XOR hash function is supported by the NIC as per datasheet
>>> & also in ICE Linux Ethernet kernel driver but the same is not enabled
>>> in ICE PMD even though code support is already present.
>>>
>>> This patch fixes the issue by removing the simple_xor check & adding
>>> proper error log for empty argument.
>>>
>>> Bugzilla ID: 1518
>>> Fixes: 0b952714e9c1 ("net/ice: refactor PF hash flow")
>>> Cc: stable at dpdk.org
>>>
>>> Signed-off-by: Anurag Mandal <anurag.mandal at intel.com>
>>> ---
>>
>> Hi,
>>
>>> drivers/net/intel/ice/ice_hash.c | 9 ++++-----
>>> 1 file changed, 4 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/net/intel/ice/ice_hash.c
>>> b/drivers/net/intel/ice/ice_hash.c
>>> index 77829e607b..d57b5ee0e4 100644
>>> --- a/drivers/net/intel/ice/ice_hash.c
>>> +++ b/drivers/net/intel/ice/ice_hash.c
>>> @@ -1109,12 +1109,11 @@ ice_hash_parse_action(struct
>> ice_pattern_match_item *pattern_match_item,
>>> rss_type = rss->types;
>>>
>>> /* Check hash function and save it to rss_meta. */
>>> - if (pattern_match_item->pattern_list !=
>>> - pattern_empty && rss->func ==
>>> - RTE_ETH_HASH_FUNCTION_SIMPLE_XOR) {
>>> - return rte_flow_error_set(error, ENOTSUP,
>>> + if (pattern_match_item->pattern_list ==
>>> + pattern_empty) {
>>> + return rte_flow_error_set(error, EINVAL,
>>> RTE_FLOW_ERROR_TYPE_ACTION,
>> action,
>>> - "Not supported flow");
>>> + "Invalid empty argument");
>>
>> I think this changes existing semantics a little too far.
>>
>> The original code disallowed simple XOR only for cases where pattern wasn't
>> empty (if it was, we allowed it - i.e. if it was a global RSS configuration). The fix
>> disallows empty patterns altogether, whereas what it should've done instead
>> is remove this check, and instead modify the second check to look for empty
>> patterns (because otherwise we would go through further checks down the
>> line for non-empty patterns).
>>
>>> } else if (rss->func ==
>>> RTE_ETH_HASH_FUNCTION_SIMPLE_XOR){
>>> rss_meta->hash_function =
>>
>>
>> --
>> Thanks,
>> Anatoly
>
> Hi Anatoly,
>
> Thank you for your comments.
> I understand the current change disallows all empty patterns altogether and that should be rectified.
> My doubt is should be allow both empty and non empty patterns to apply for simple_xor like symmetric Toeplitz ?
That's what your patch fixes, is it not? It already allowed empty
patterns with simple xor (the second branch of the if condition).
>
> Thanks,
> Anurag M
>
--
Thanks,
Anatoly
More information about the dev
mailing list