]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: make neigh active when it is modified from local to remote
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>
Tue, 16 Oct 2018 15:23:22 +0000 (08:23 -0700)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 31 Oct 2018 10:23:32 +0000 (06:23 -0400)
This is a fixup to commit -
f32ea5c07 - zebra: act on kernel notifications for remote neighbors

The original commit handled a race condition between kernel and zebra
that would result in an inconsistent state i.e.
kernel has an offload/remote neigh
zebra has a local neigh

The original commit missed setting the neigh to active when zebra
tried to resolve the inconsistency by modifying the local neigh to
remote neigh on hearing back its own kernel update. Fixed here.

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Ticket: CM-22700

zebra/zebra_vxlan.c

index 9ecf83433373fe82deeb190f16e4290d02800f02..b98b7381f4358e16dd87d704ac0a5efa309c388e 100644 (file)
@@ -2218,6 +2218,7 @@ static int zvni_remote_neigh_update(zebra_vni_t *zvni,
 
                UNSET_FLAG(n->flags, ZEBRA_NEIGH_LOCAL);
                SET_FLAG(n->flags, ZEBRA_NEIGH_REMOTE);
+               ZEBRA_NEIGH_SET_ACTIVE(n);
                n->r_vtep_ip = zmac->fwd_info.r_vtep_ip;
        }