From d6bf8f136da0e1afce0ef6c9c7a232a30851742c Mon Sep 17 00:00:00 2001 From: Philippe Guibert Date: Fri, 25 Oct 2019 14:25:00 +0200 Subject: [PATCH] zebra: when parsing local entry against dad, retrieve config when duplicate address detection is observed, some incrementation, some timing mechanisms need to be done. For that the main evpn configuration is retrieved. Until now, the VRF that was storing the dad config parameters was the same VRF that hosted the VXLAN interface. With netns backend, this is not true, as the VXLAN interface is in the same VRF as the bridge interface. The modification takes same definition as in BGP, that is to say that there is a single bgp evpn instance, and this is that instance that will give the correct config settings. Signed-off-by: Philippe Guibert --- zebra/zebra_evpn.c | 2 +- zebra/zebra_vxlan.c | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/zebra/zebra_evpn.c b/zebra/zebra_evpn.c index da4ba4f705..d78ee57af3 100644 --- a/zebra/zebra_evpn.c +++ b/zebra/zebra_evpn.c @@ -1372,7 +1372,7 @@ void process_remote_macip_add(vni_t vni, struct ethaddr *macaddr, } } - zvrf = vrf_info_lookup(zevpn->vxlan_if->vrf_id); + zvrf = zebra_vrf_get_evpn(); if (!zvrf) return; diff --git a/zebra/zebra_vxlan.c b/zebra/zebra_vxlan.c index a0046e6031..6332854e73 100644 --- a/zebra/zebra_vxlan.c +++ b/zebra/zebra_vxlan.c @@ -4062,11 +4062,10 @@ int zebra_vxlan_local_mac_add_update(struct interface *ifp, return -1; } - zvrf = vrf_info_lookup(zevpn->vxlan_if->vrf_id); + zvrf = zebra_vrf_get_evpn(); if (!zvrf) { if (IS_ZEBRA_DEBUG_VXLAN) - zlog_debug(" No Vrf found for vrf_id: %d", - zevpn->vxlan_if->vrf_id); + zlog_debug(" No Evpn Global Vrf found"); return -1; } -- 2.39.5