]> git.baikalelectronics.ru Git - kernel.git/commit
net: ipv4: add support for ECMP hash policy choice
authorNikolay Aleksandrov <nikolay@cumulusnetworks.com>
Thu, 16 Mar 2017 13:28:00 +0000 (15:28 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 21 Mar 2017 22:27:19 +0000 (15:27 -0700)
commitcde8c3efa5296c51f2bf66335099a860a9c866b0
treef1e5a3fd90d22fc603bc5a6780fc1c716684ad94
parentb9894d4e9aac45f683fbd81cfe5deab42afe15fb
net: ipv4: add support for ECMP hash policy choice

This patch adds support for ECMP hash policy choice via a new sysctl
called fib_multipath_hash_policy and also adds support for L4 hashes.
The current values for fib_multipath_hash_policy are:
 0 - layer 3 (default)
 1 - layer 4
If there's an skb hash already set and it matches the chosen policy then it
will be used instead of being calculated (currently only for L4).
In L3 mode we always calculate the hash due to the ICMP error special
case, the flow dissector's field consistentification should handle the
address order thus we can remove the address reversals.
If the skb is provided we always use it for the hash calculation,
otherwise we fallback to fl4, that is if skb is NULL fl4 has to be set.

Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Documentation/networking/ip-sysctl.txt
include/net/ip_fib.h
include/net/netns/ipv4.h
include/net/route.h
net/ipv4/fib_semantics.c
net/ipv4/icmp.c
net/ipv4/route.c
net/ipv4/sysctl_net_ipv4.c