[PATCH] net/ice: fix rss simple_xor hash function

Mandal, Anurag anurag.mandal at intel.com
Mon Mar 9 12:17:32 CET 2026


> -----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 ? 

Thanks,
Anurag M



More information about the dev mailing list