#include "zebra/zebra_pbr.h"
#include "zebra/zebra_vxlan.h"
#include "zebra/zebra_routemap.h"
+#include "zebra/zebra_nb.h"
+#include "zebra/zebra_opaque.h"
#if defined(HANDLE_NETLINK_FUZZING)
#include "zebra/kernel_netlink.h"
frr_early_fini();
+ /* Stop the opaque module pthread */
+ zebra_opaque_stop();
+
zebra_dplane_pre_finish();
/* Clean up GR related info. */
zebra_gr_stale_client_cleanup(zrouter.stale_client_list);
list_delete_all_node(zrouter.stale_client_list);
+ /* Clean up zapi clients and server module */
for (ALL_LIST_ELEMENTS(zrouter.client_list, ln, nn, client))
zserv_close_client(client);
zserv_close();
list_delete_all_node(zrouter.client_list);
+ /* Once all the zclients are cleaned up, clean up the opaque module */
+ zebra_opaque_finish();
+
zebra_ptm_finish();
if (retain_mode)
vrf_terminate();
rtadv_terminate();
- ns_walk_func(zebra_ns_early_shutdown);
+ ns_walk_func(zebra_ns_early_shutdown, NULL, NULL);
zebra_ns_notify_close();
access_list_reset();
zlog_info("Zebra final shutdown");
/* Final shutdown of ns resources */
- ns_walk_func(zebra_ns_final_shutdown);
+ ns_walk_func(zebra_ns_final_shutdown, NULL, NULL);
/* Stop dplane thread and finish any cleanup */
zebra_dplane_shutdown();
};
static const struct frr_yang_module_info *const zebra_yang_modules[] = {
+ &frr_filter_info,
&frr_interface_info,
&frr_route_map_info,
&frr_zebra_info,
+ &frr_vrf_info,
};
FRR_DAEMON_INFO(
zebra, ZEBRA, .vty_port = ZEBRA_VTY_PORT, .flags = FRR_NO_ZCLIENT,
.proghelp =
- "Daemon which manages kernel routing table management "
- "and\nredistribution between different routing protocols.",
+ "Daemon which manages kernel routing table management and\nredistribution between different routing protocols.",
.signals = zebra_signals, .n_signals = array_size(zebra_signals),
zebra_mpls_vty_init();
zebra_pw_vty_init();
zebra_pbr_init();
+ zebra_opaque_init();
/* For debug purpose. */
/* SET_FLAG (zebra_debug_event, ZEBRA_DEBUG_EVENT); */
/* Start dataplane system */
zebra_dplane_start();
+ /* Start the ted module, before zserv */
+ zebra_opaque_start();
+
/* Start Zebra API server */
zserv_start(zserv_path);