diff options
author | Ido Schimmel <idosch@mellanox.com> | 2018-01-09 16:40:25 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-01-10 15:14:44 -0500 |
commit | d7dedee184e775f77d321cfa1c660a7680cf6588 (patch) | |
tree | 7d59d50b661562ccf2cfad936be59b37f7f69b99 /include/net/ip6_fib.h | |
parent | e2b3b35eb9896f26c98b9a2c047d9111638059a2 (diff) | |
download | linux-d7dedee184e775f77d321cfa1c660a7680cf6588.tar.gz linux-d7dedee184e775f77d321cfa1c660a7680cf6588.tar.bz2 linux-d7dedee184e775f77d321cfa1c660a7680cf6588.zip |
ipv6: Calculate hash thresholds for IPv6 nexthops
Before we convert IPv6 to use hash-threshold instead of modulo-N, we
first need each nexthop to store its region boundary in the hash
function's output space.
The boundary is calculated by dividing the output space equally between
the different active nexthops. That is, nexthops that are not dead or
linkdown.
The boundaries are rebalanced whenever a nexthop is added or removed to
a multipath route and whenever a nexthop becomes active or inactive.
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Acked-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/ip6_fib.h')
-rw-r--r-- | include/net/ip6_fib.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h index ddf53dd1e948..97cd05d87780 100644 --- a/include/net/ip6_fib.h +++ b/include/net/ip6_fib.h @@ -149,6 +149,7 @@ struct rt6_info { */ struct list_head rt6i_siblings; unsigned int rt6i_nsiblings; + atomic_t rt6i_nh_upper_bound; atomic_t rt6i_ref; |