Message ID | 20180721040754.22577-1-jakub.kicinski@netronome.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Series | [net] nfp: flower: ensure dead neighbour entries are not offloaded | expand |
From: Jakub Kicinski <jakub.kicinski@netronome.com> Date: Fri, 20 Jul 2018 21:07:54 -0700 > From: John Hurley <john.hurley@netronome.com> > > Previously only the neighbour state was checked to decide if an offloaded > entry should be removed. However, there can be situations when the entry > is dead but still marked as valid. This can lead to dead entries not > being removed from fw tables or even incorrect data being added. > > Check the entry dead bit before deciding if it should be added to or > removed from fw neighbour tables. > > Fixes: 8e6a9046b66a ("nfp: flower vxlan neighbour offload") > Signed-off-by: John Hurley <john.hurley@netronome.com> > Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com> Patch applied and queued up for -stable, thanks Jakub.
diff --git a/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c b/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c index 78afe75129ab..382bb93cb090 100644 --- a/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c +++ b/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c @@ -317,7 +317,7 @@ nfp_tun_write_neigh(struct net_device *netdev, struct nfp_app *app, payload.dst_ipv4 = flow->daddr; /* If entry has expired send dst IP with all other fields 0. */ - if (!(neigh->nud_state & NUD_VALID)) { + if (!(neigh->nud_state & NUD_VALID) || neigh->dead) { nfp_tun_del_route_from_cache(app, payload.dst_ipv4); /* Trigger ARP to verify invalid neighbour state. */ neigh_event_send(neigh, NULL);