Thread (6 messages) flat view 6 messages, 4 authors, 2016-02-19

RE: [PATCH net-next] store complete hash type information in socket buffer...

From: Paul Durrant <hidden>
Date: 2016-02-19 08:55:23

-----Original Message-----
From: Tom Herbert [mailto:tom@herbertland.com]
Sent: 19 February 2016 02:22
To: Eric Dumazet
Cc: David Miller; Paul Durrant; Linux Kernel Network Developers; Jay
Vosburgh; Veaceslav Falico; Andy Gospodarek
Subject: Re: [PATCH net-next] store complete hash type information in
socket buffer...

On Wed, Feb 17, 2016 at 1:30 PM, Eric Dumazet [off-list ref]
wrote:
quoted
On mer., 2016-02-17 at 15:44 -0500, David Miller wrote:
quoted
From: Paul Durrant <redacted>
Date: Mon, 15 Feb 2016 08:32:08 +0000
quoted
...rather than a boolean merely indicating a canonical L4 hash.

skb_set_hash() takes a hash type (from enum pkt_hash_types) as an
argument but information is lost since only a single bit in the skb
stores whether that hash type is PKT_HASH_TYPE_L4 or not. By using
two bits it's possible to store the complete hash type information.

Signed-off-by: Paul Durrant <redacted>
Tom and/or Eric, please have a look at this.
I guess my question is simply 'why do we need this' ?

Consuming a bit in our precious sk_buff is not something we want for
some obscure feature.
Right. I think the reason Paul wants this is be able to pass the hash
to a Windows guest. As I pointed out though, we'd also need an
indication that the hash is Toeplitz to be really correct with Windows
interface.
Tom,

  Actually xen-netback can live without this change. Windows (at the moment at least) only cares about L3 and L4 hashes. The motivation for this change was just to fix the apparent mismatch where some functions deal with the hash type enum and some the single 'is l4' bit. I agree it would also be useful and sensible for sk_buff to also encode a hash algorithm as most NIC h/w out there will probably use Toeplitz (since it's a hard requirement for Windows) but may also be able use alternative hashes.
The Linux driver interface does allow indicating L2, L3, or
L4 hash with the assumption that differentiation might be useful some
day, but so far it only appears that distinguishing L4 from others has
any value. It would be interesting to know if Windows actually does
anything useful in differentiating L2 and L3 hashes.
  As I said above, it does not distinguish L2 and L3 at the moment so this patch is not necessary. I still think it’s a step in the right direction though.

  Cheers,

    Paul
Tom
quoted
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help