Re: [PATCH v2] neighbour: confirm neigh entries when ARP packet is received

From: Stephen Hemminger
Date: Tue Sep 11 2018 - 14:12:26 EST


On Tue, 11 Sep 2018 11:04:06 -0700
Vasily Khoruzhick <vasilykh@xxxxxxxxxx> wrote:

> diff --git a/net/core/neighbour.c b/net/core/neighbour.c
> index aa19d86937af..56a554597db5 100644
> --- a/net/core/neighbour.c
> +++ b/net/core/neighbour.c
> @@ -1180,6 +1180,12 @@ int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new,
> lladdr = neigh->ha;
> }
>
> + /* Update confirmed timestamp for neighbour entry after we
> + * received ARP packet even if it doesn't change IP to MAC binding.
> + */
> + if (new & NUD_CONNECTED)
> + neigh->confirmed = jiffies;

You might want to do:
if ((new & NUD_CONNECTED) && neigh->confirmed != jiffies)
neigh->confirmed = jiffies;

This avoid poisoning the cacheline with unnecessary write.