summaryrefslogtreecommitdiffstats
path: root/net/core/neighbour.c
diff options
context:
space:
mode:
authorBob Gilligan <gilligan@aristanetworks.com>2013-12-15 13:39:56 -0800
committerDavid S. Miller <davem@davemloft.net>2013-12-17 16:14:35 -0500
commit53385d2d1de84f4036a0919ec46964c4e81b83f5 (patch)
tree95ac370a41050ecb778fe2c5a2acd50312c82a25 /net/core/neighbour.c
parent188b04d580ab7acf11eb77cb564692050c10edfe (diff)
downloadblackbird-op-linux-53385d2d1de84f4036a0919ec46964c4e81b83f5.tar.gz
blackbird-op-linux-53385d2d1de84f4036a0919ec46964c4e81b83f5.zip
neigh: Netlink notification for administrative NUD state change
The neighbour code sends up an RTM_NEWNEIGH netlink notification if the NUD state of a neighbour cache entry is changed by a timer (e.g. from REACHABLE to STALE), even if the lladdr of the entry has not changed. But an administrative change to the the NUD state of a neighbour cache entry that does not change the lladdr (e.g. via "ip -4 neigh change ... nud ...") does not trigger a netlink notification. This means that netlink listeners will not hear about administrative NUD state changes such as from a resolved state to PERMANENT. This patch changes the neighbor code to generate an RTM_NEWNEIGH message when the NUD state of an entry is changed administratively. Signed-off-by: Bob Gilligan <gilligan@aristanetworks.com> Acked-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/neighbour.c')
-rw-r--r--net/core/neighbour.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index ca15f32821fb..36b1443f9ae4 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -1161,6 +1161,7 @@ int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new,
neigh->parms->reachable_time :
0)));
neigh->nud_state = new;
+ notify = 1;
}
if (lladdr != neigh->ha) {
OpenPOWER on IntegriCloud