]> git.baikalelectronics.ru Git - kernel.git/commit
ipv6: Flush multipath routes when all siblings are dead
authorIdo Schimmel <idosch@mellanox.com>
Sun, 7 Jan 2018 10:45:15 +0000 (12:45 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 8 Jan 2018 02:29:41 +0000 (21:29 -0500)
commit1d44487be36048b9d7575879c0203fa6b974800e
tree40a5927f90f6b838b5039c1571499e2ac83ceeca
parent968fe4d88b0a8b24fbb1af8c73a5f2c120ac2aff
ipv6: Flush multipath routes when all siblings are dead

By default, IPv6 deletes nexthops from a multipath route when the
nexthop device is put administratively down. This differs from IPv4
where the nexthops are kept, but marked with the RTNH_F_DEAD flag. A
multipath route is flushed when all of its nexthops become dead.

Align IPv6 with IPv4 and have it conform to the same guidelines.

In case the multipath route needs to be flushed, its siblings are
flushed one by one. Otherwise, the nexthops are marked with the
appropriate flags and the tree walker is instructed to skip all the
siblings.

As explained in previous patches, care is taken to update the sernum of
the affected tree nodes, so as to prevent the use of wrong dst entries.

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/route.c