ipv6: Teach tree walker to skip multipath routes
authorIdo Schimmel <idosch@mellanox.com>
Sun, 7 Jan 2018 10:45:12 +0000 (12:45 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 8 Jan 2018 02:29:40 +0000 (21:29 -0500)
commitb5cb5a755bd43047a9bd18d950fdb22fc828947a
treef7b4a9a1f2b6d171f2a925e4e3f96a9934dc9c81
parenta2c554d3f8f65dd9c46a55811efad8156e328f85
ipv6: Teach tree walker to skip multipath routes

As explained in previous patch, fib6_ifdown() needs to consider the
state of all the sibling routes when a multipath route is traversed.

This is done by evaluating all the siblings when the first sibling in a
multipath route is traversed. If the multipath route does not need to be
flushed (e.g., not all siblings are dead), then we should just skip the
multipath route as our work is done.

Have the tree walker jump to the last sibling when it is determined that
the multipath route needs to be skipped.

Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Acked-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ip6_fib.c