]> git.puffer.fish Git - matthieu/frr.git/commitdiff
zebra: fdb and neighbor table are read for all zns
authorPhilippe Guibert <philippe.guibert@6wind.com>
Fri, 27 Sep 2019 13:46:22 +0000 (15:46 +0200)
committerPhilippe Guibert <philippe.guibert@6wind.com>
Mon, 21 Sep 2020 07:17:10 +0000 (09:17 +0200)
all network namespaces are read so as to collect interesting fdb and
neighbor tables for EVPN.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
zebra/zebra_vxlan.c

index 5a58794378d8f21db536f1eba107fa46e3c53230..a0046e60312e6777cf1e2e47a8117b3541de57bb 100644 (file)
@@ -5522,6 +5522,21 @@ stream_failure:
        return;
 }
 
+static int macfdb_read_zns(struct zebra_ns *zns,
+                            void *_in_param __attribute__((unused)),
+                            void **out_param __attribute__((unused)))
+{
+       macfdb_read(zns);
+       return ZNS_WALK_CONTINUE;
+}
+
+static int neigh_read_zns(struct zebra_ns *zns,
+                         void *_in_param __attribute__((unused)),
+                         void **out_param __attribute__((unused)))
+{
+       neigh_read(zns);
+       return ZNS_WALK_CONTINUE;
+}
 
 /*
  * Handle message from client to learn (or stop learning) about VNIs and MACs.
@@ -5574,10 +5589,10 @@ void zebra_vxlan_advertise_all_vni(ZAPI_HANDLER_ARGS)
                             zebra_evpn_gw_macip_add_for_evpn_hash, NULL);
 
                /* Read the MAC FDB */
-               macfdb_read(zvrf->zns);
+               zebra_ns_list_walk(macfdb_read_zns, NULL, NULL);
 
                /* Read neighbors */
-               neigh_read(zvrf->zns);
+               zebra_ns_list_walk(neigh_read_zns, NULL, NULL);
        } else {
                /* Cleanup VTEPs for all EVPNs - uninstall from
                 * kernel and free entries.