work_queue_free_and_null(&zebrad.lsp_process_q);
vrf_terminate();
- ns_walk_func(zebra_ns_disabled);
+ ns_walk_func(zebra_ns_early_shutdown);
zebra_ns_notify_close();
access_list_reset();
{
zlog_info("Zebra final shutdown");
+ /* Final shutdown of ns resources */
+ ns_walk_func(zebra_ns_final_shutdown);
+
/* Stop dplane thread and finish any cleanup */
zebra_dplane_shutdown();
{
// int batch_mode = 0;
char *zserv_path = NULL;
+ char *vrf_default_name_configured = NULL;
/* Socket to external label manager */
char *lblmgr_path = NULL;
struct sockaddr_storage dummy;
}
break;
case 'o':
- vrf_set_default_name(optarg);
+ vrf_default_name_configured = optarg;
break;
case 'z':
zserv_path = optarg;
}
}
- vty_config_lockless();
zebrad.master = frr_init();
/* Initialize pthread library */
* Initialize NS( and implicitly the VRF module), and make kernel
* routing socket. */
zebra_ns_init();
-
+ if (vrf_default_name_configured)
+ vrf_set_default_name(vrf_default_name_configured,
+ true);
zebra_vty_init();
access_list_init();
prefix_list_init();