This set aims to add support for IPv6 non-equal-cost multipath routes. The first three patches convert multipath selection to use the hash-threshold method (RFC 2992) instead of modulo-N. The same method is employed by the IPv4 routing code since commit 0e884c78ee19 ("ipv4: L3 hash-based multipath").
Unlike modulo-N, with hash-threshold only the flows near the region boundaries are affected when a nexthop is added or removed. In addition, it allows us to easily add support for non-equal-cost multipath in the last patch by sizing the different regions according to the provided weights. Ido Schimmel (4): ipv6: Calculate hash thresholds for IPv6 nexthops ipv6: Use a 31-bit multipath hash ipv6: Use hash-threshold instead of modulo-N ipv6: Add support for non-equal-cost multipath include/net/ip6_fib.h | 2 + include/net/ip6_route.h | 7 +++ net/ipv6/ip6_fib.c | 8 +-- net/ipv6/route.c | 141 +++++++++++++++++++++++++++++++++++++++--------- 4 files changed, 126 insertions(+), 32 deletions(-) -- 2.14.3