Hi Simei,

On 9/30/19 6:12 AM, Su, Simei wrote:
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.

Are both replaced by XOR or just one is replaced by XOR and another one
removed from Toeplitz input? If later, how does it coexist with src/dst only
flags?

Anyway, please, add it to the patch in Doxygen comments.

Thanks,
Andrew.

Reply via email to