diff options
author | Tom Herbert <tom@herbertland.com> | 2015-06-04 19:16:39 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-06-05 01:44:30 +0300 |
commit | 42aecaa9bb2bd57eb8d61b4565cee5d3640863fb (patch) | |
tree | 1f6198f7e7aaccaf60a51a1e69aca366a7fd1374 /include/net/ipv6.h | |
parent | c468efe2c7d478bad8855f7d170cf245ee0f1b3f (diff) | |
download | linux-42aecaa9bb2bd57eb8d61b4565cee5d3640863fb.tar.xz |
net: Get skb hash over flow_keys structure
This patch changes flow hashing to use jhash2 over the flow_keys
structure instead just doing jhash_3words over src, dst, and ports.
This method will allow us take more input into the hashing function
so that we can include full IPv6 addresses, VLAN, flow labels etc.
without needing to resort to xor'ing which makes for a poor hash.
Acked-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: Tom Herbert <tom@herbertland.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/ipv6.h')
-rw-r--r-- | include/net/ipv6.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/net/ipv6.h b/include/net/ipv6.h index 35d485c78080..474ca466a091 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h @@ -699,6 +699,8 @@ static inline void ip6_set_txhash(struct sock *sk) struct ipv6_pinfo *np = inet6_sk(sk); struct flow_keys keys; + memset(&keys, 0, sizeof(keys)); + keys.addrs.src = (__force __be32)ipv6_addr_hash(&np->saddr); keys.addrs.dst = (__force __be32)ipv6_addr_hash(&sk->sk_v6_daddr); keys.ports.src = inet->inet_sport; |