Hi, Andrew > -----Original Message----- > From: Andrew Rybchenko [mailto:arybche...@solarflare.com] > Sent: Sunday, September 29, 2019 7:51 PM > To: Shahaf Shuler <shah...@mellanox.com>; Adrien Mazarguil > <adrien.mazarg...@6wind.com> > Cc: Su, Simei <simei...@intel.com>; Zhang, Qi Z <qi.z.zh...@intel.com>; Wu, > Jingjing <jingjing...@intel.com>; dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH 1/2] ethdev: add symmetric toeplitz hash > support > > On 7/31/19 4:43 PM, Shahaf Shuler wrote: > > Wednesday, July 31, 2019 3:31 PM, Adrien Mazarguil: > >> Subject: Re: [dpdk-dev] [PATCH 1/2] ethdev: add symmetric toeplitz > >> hash support > >> > >> On Wed, Jul 31, 2019 at 03:08:19PM +0300, Andrew Rybchenko wrote: > >>> On 7/25/19 7:57 AM, simei wrote: > >>>> From: Simei Su <simei...@intel.com> > >>>> > >>>> Currently, there are DEFAULT,TOEPLITZ and SIMPLE_XOR hash funtion. > >>>> To support symmetric hash by rte_flow RSS action, this patch adds > >>>> new hash function "Symmetric Toeplitz" which is supported by some > >> hardware. > >>> Isn't it a question of key to achieve symmetry? > >>> I.e. hash algorithm (function) is still the same - Toeplitz, but > >>> hash key makes the result symmetric (i.e. equal for flows in both > >>> directions - swap transport ports and IPv4/6 addresses). > >> This is only an option when src/dst are known in advance. > >> > >> When doing RSS, HW implementations (such as Mellanox's) implement a > >> modified Toeplitz XOR'ing src with dst resulting in the same hash > >> both ways regardless of the key. > > Just to stand correct it was a bug on Mellanox kernel driver that was > > fixed. Now > the RSS is spec complaint (non-symmetric). > > Andrew is correct one can have a special key that will make the RSS > > symmetric, > however it is good to have this option for the user to explicitly request > symmetric > function (w/o any restriction on the key). > > I think we need a definition what is behind SYMMETRIC_TOEPLITZ here. > If I'd like to test it and check, I need to know an algorithm in order to > know what > to expect. > Also it is important to make it the same for all NIC vendors: what should > algorithm be in order to say that it is symmetric Toeplitz?
The symmetric toeplitz is: src, dst will be replaced by xor(src, dst). It is expected to get the same hash value when swapping src/dst ip or port. Br Simei