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

Reply via email to