Thread (15 messages) flat view 15 messages, 5 authors, 2012-05-15

Re: [PATCH] netfilter: xt_HMARK: endian bugs

From: Eric Dumazet <hidden>
Date: 2012-05-14 18:28:52
Also in: netfilter-devel

On Mon, 2012-05-14 at 19:51 +0200, Hans Schillstrom wrote:
On Monday 14 May 2012 18:24:34 Eric Dumazet wrote:
quoted
On Mon, 2012-05-14 at 18:09 +0200, Hans Schillstrom wrote:
quoted
This context can contain both le & be machines,
so at least in hmark it make sense
Before jhash() and its shuffle ? What do you mean ?
I want that a Big endian machine should produce the same
hash value independent of flow direction as a Little endian.
So one machine can be both le and be ? at the same time ?
OK, I missed ntohl() before calling jhash_3words()

Correct me if I'm wrong here (have no big endian machine available for test)
jhash_3words() and __jhash_final() seems to be "endian" safe.

So by doing the expensive ntohl on addresses and ports into jhash_3words()
it will produce the same value on both be and le.
And what is the purpose of the jhash output ? Is is sent to other
machines on the network, or only localy used ?
That's why I want to have the ntohs() / ntohl() when comparing.
If xt_HMARK depends on a particular bit ordering to jhash() input, then
something is really wrong. I mean it.

jhash() primary purpose it to shuffle input.

We use (__force u32) everywhere in network tree to avoid sparse
warnings. Please grep for them.


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