Eric Dumazet ddbe503203 ipv6: add ipv6_addr_hash() helper
Introduce ipv6_addr_hash() helper doing a XOR on all bits
of an IPv6 address, with an optimized x86_64 version.

Use it in flow dissector, as suggested by Andrew McGregor,
to reduce hash collision probabilities in fq_codel (and other
users of flow dissector)

Use it in ip6_tunnel.c and use more bit shuffling, as suggested
by David Laight, as existing hash was ignoring most of them.

Use it in sunrpc and use more bit shuffling, using hash_32().

Use it in net/ipv6/addrconf.c, using hash_32() as well.

As a cleanup, use it in net/ipv4/tcp_metrics.c

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Andrew McGregor <andrewmcgr@gmail.com>
Cc: Dave Taht <dave.taht@gmail.com>
Cc: Tom Herbert <therbert@google.com>
Cc: David Laight <David.Laight@ACULAB.COM>
Cc: Joe Perches <joe@perches.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-07-18 11:28:46 -07:00
..
2012-07-18 11:28:46 -07:00
2012-05-18 02:24:13 -04:00
2012-05-19 01:08:16 -04:00
2012-05-19 01:08:16 -04:00
2012-06-04 11:45:11 -04:00
2012-07-18 11:28:46 -07:00
2012-06-27 15:36:44 -07:00
2012-05-15 13:13:34 -04:00
2012-01-17 23:56:18 -05:00
2012-07-17 10:48:26 -07:00
2011-11-22 16:43:32 -05:00