Subject: Re: No netlink notification for user-initiated NUD state change

From: Nicolas Dichtel <[email-masked]>
Date: Tue, 10 Dec 2013 18:15:48 +0100

Le 27/11/2013 03:28, Bob Gilligan a écrit :
> Hi -- 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 a user-initiated 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.
>
> I'm wondering if that is intended behavior?  Is there any reason not to
> send a netlink notification in this case?  The situation we've seen
> where it would be nice to have these notifications is if a user changes
> an existing resolved entry to PERMANENT.
>
> This one-line change to neigh_update() would trigger netlink
> notifications on all user-initiated state changes:
>
> Index: linux-3.12.1/net/core/neighbour.c
> ===================================================================
> --- linux-3.12.1.orig/net/core/neighbour.c
> +++ linux-3.12.1/net/core/neighbour.c
> @@ -1161,6 +1161,7 @@ int neigh_update(struct neighbour *neigh
>
> neigh->parms->reachable_time :
>                                                   0)));
>                  neigh->nud_state = new;
> +               notify = 1;
>          }
>
>          if (lladdr != neigh->ha) {
>
>
>
> I'd be happy to submit a properly formatted patch if there's agreement
> that this is an issue.
I think this patch is good, please could you submit it properly?