]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: when parsing local entry against dad, retrieve config
authorPhilippe Guibert <philippe.guibert@6wind.com>
Fri, 25 Oct 2019 12:25:00 +0000 (14:25 +0200)
committerPhilippe Guibert <philippe.guibert@6wind.com>
Mon, 21 Sep 2020 07:17:11 +0000 (09:17 +0200)
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 <philippe.guibert@6wind.com>
zebra/zebra_evpn.c
zebra/zebra_vxlan.c

index da4ba4f705cdfce2921ae0a264959e811b43e6df..d78ee57af35c58fde5b2cec4c5ad225fe8faa00e 100644 (file)
@@ -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;
 
index a0046e60312e6777cf1e2e47a8117b3541de57bb..6332854e73d7c48ef4a608099374785bcd452dee 100644 (file)
@@ -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;
        }