If we get an ageout notification from the kernel for EVPN-installed
neighbors, ensure that they are readded. Otherwise, while entries in
STALE state are usable, based on other kernel parameters they can
get deleted and adding them back only at delete can have other
undesirable performance consequences.
Note: This is the current Linux kernel behavior (to ageout EVPN
installed neighbors).
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
Ticket: CM-15623, CM-17490
Reviewed By: CCR-6586
Testing Done: Manual, evpn-min
}
/*
- * Handle neighbor add or update (on a VLAN device / L3 interface)
- * from the kernel.
+ * Handle neighbor add or update from the kernel. This is typically
+ * for a local neighbor on a VLAN device (L3 interface) but can also
+ * be the ageout notification for a remote neighbor.
*/
int zebra_vxlan_local_neigh_add_update(struct interface *ifp,
struct interface *link_if,
/* The neighbor is remote and that is the notification we got.
*/
{
- /* TODO: Evaluate if we need to do anything here. */
+ /* If the kernel has aged this entry, re-install. */
+ if (state & NUD_STALE)
+ zvni_neigh_install(zvni, n);
return 0;
} else
/* Neighbor has moved from remote to local. */