]> git.baikalelectronics.ru Git - kernel.git/commit
mlxsw: spectrum_router: Refresh nexthop neighbour when it becomes dead
authorIdo Schimmel <idosch@mellanox.com>
Tue, 11 Jun 2019 07:19:41 +0000 (10:19 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 12 Jun 2019 18:08:14 +0000 (11:08 -0700)
commitea209b8fd39732b545e95867a29a213cbbe956f7
tree8eac2a9ec5aa2b299be377d1d0ba32fb271891d0
parent774d5cdf8778ba04ec52a767ae9731cb4cad7cd2
mlxsw: spectrum_router: Refresh nexthop neighbour when it becomes dead

The driver tries to periodically refresh neighbours that are used to
reach nexthops. This is done by periodically calling neigh_event_send().

However, if the neighbour becomes dead, there is nothing we can do to
return it to a connected state and the above function call is basically
a NOP.

This results in the nexthop never being written to the device's
adjacency table and therefore never used to forward packets.

Fix this by dropping our reference from the dead neighbour and
associating the nexthop with a new neigbhour which we will try to
refresh.

Fixes: 9a51660f4cb1 ("mlxsw: spectrum_router: Implement next-hop routing")
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Reported-by: Alex Veber <alexve@mellanox.com>
Tested-by: Alex Veber <alexve@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c