aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorIdo Schimmel <idosch@mellanox.com>2017-02-06 16:20:13 +0100
committerDavid S. Miller <davem@davemloft.net>2017-02-06 11:25:56 -0500
commit5c8802f14a0679e970e7b25f809a12c3ae1a873d (patch)
treebfd69c0d3b5299a4dcd459e4993dadd0f6a4e7b3 /net
parentmlxsw: spectrum_router: Remove unused variable (diff)
downloadlinux-dev-5c8802f14a0679e970e7b25f809a12c3ae1a873d.tar.xz
linux-dev-5c8802f14a0679e970e7b25f809a12c3ae1a873d.zip
mlxsw: spectrum_router: Simplify neighbour reflection
Up until now we had two interfaces for neighbour related configuration: ndo_neigh_{construct,destroy} and NEIGH_UPDATE netevents. The ndos were used to add and remove neighbours from the driver's cache, whereas the netevent was used to reflect the neighbours into the device's tables. However, if the NUD state of a neighbour isn't NUD_VALID or if the neighbour is dead, then there's really no reason for us to keep it inside our cache. The only exception to this rule are neighbours that are also used for nexthops, which we periodically refresh to get them resolved. We can therefore eliminate the ndo entry point into the driver and simplify the code, making it similar to the FIB reflection, which is based solely on events. This also helps us avoid a locking issue, in which the RIF cache was traversed without proper locking during insertion into the neigh entry cache. Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions