]> git.proxmox.com Git - mirror_frr.git/commitdiff
zebra: add EVPN learned neighbors as NUD_NOARP
authorMitesh Kanjariya <mitesh@marvel-07.cumulusnetworks.com>
Mon, 26 Feb 2018 22:10:50 +0000 (14:10 -0800)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 12 Apr 2018 13:07:43 +0000 (09:07 -0400)
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 <mitesh@cumulusnetworks.com>
zebra/rt_netlink.c
zebra/zebra_vxlan.c

index fbaa9c478398c6e8b502f699103a23c1e7c0788d..9fd8ecb27cfc3a1e51ec1083506c945d0687cf7d 100644 (file)
@@ -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)
index a2961428d7e0dd4a5b4b169871e7824eadbcf8ec..b851ba41d5077f80823d4f68803a9513c6a84167 100644 (file)
@@ -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