From e9d2cbdebf26a264a3053abef9cfa9321e9a5cdd Mon Sep 17 00:00:00 2001 From: Mitesh Kanjariya Date: Mon, 26 Feb 2018 14:10:50 -0800 Subject: [PATCH] zebra: add EVPN learned neighbors as NUD_NOARP EVPN owns the remote neigh entries which are programed in the kernel. This entries should not age out and the only way to delete should be from EVPN. We should program these entries with NUD_NOARP instead of NUD_REACHABLE to avoid aging of this macs. Signed-off-by: Mitesh Kanjariya --- zebra/rt_netlink.c | 2 +- zebra/zebra_vxlan.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c index fbaa9c4783..9fd8ecb27c 100644 --- a/zebra/rt_netlink.c +++ b/zebra/rt_netlink.c @@ -2412,7 +2412,7 @@ int kernel_del_mac(struct interface *ifp, vlanid_t vid, struct ethaddr *mac, int kernel_add_neigh(struct interface *ifp, struct ipaddr *ip, struct ethaddr *mac) { - return netlink_neigh_update2(ifp, ip, mac, NUD_REACHABLE, RTM_NEWNEIGH); + return netlink_neigh_update2(ifp, ip, mac, NUD_NOARP, RTM_NEWNEIGH); } int kernel_del_neigh(struct interface *ifp, struct ipaddr *ip) diff --git a/zebra/zebra_vxlan.c b/zebra/zebra_vxlan.c index a2961428d7..b851ba41d5 100644 --- a/zebra/zebra_vxlan.c +++ b/zebra/zebra_vxlan.c @@ -2079,8 +2079,10 @@ static int zvni_remote_neigh_update(zebra_vni_t *zvni, /* If a remote entry, see if it needs to be refreshed */ if (CHECK_FLAG(n->flags, ZEBRA_NEIGH_REMOTE)) { +#ifdef GNU_LINUX if (state & NUD_STALE) zvni_neigh_install(zvni, n); +#endif } else { /* We got a "remote" neighbor notification for an entry * we think is local. This can happen in a multihoming