#include "plist.h"
#include "privs.h"
#include "sigevent.h"
+#include "vrf.h"
#include "zebra/rib.h"
#include "zebra/zserv.h"
#include "zebra/rtadv.h"
#include "zebra/zebra_fpm.h"
#include "zebra/zebra_ptm.h"
+#include "zebra/zebra_ns.h"
+#include "zebra/redistribute.h"
#define ZEBRA_PTM_SUPPORT
"-r, --retain When program terminates, retain added route "\
"by zebra.\n"\
"-u, --user User to run as\n"\
- "-g, --group Group to run as\n", progname);
+ "-g, --group Group to run as\n", progname);
#ifdef HAVE_NETLINK
printf ("-s, --nl-bufsize Set netlink receive buffer size\n");
#endif /* HAVE_NETLINK */
static void
sigint (void)
{
+ struct zebra_ns *zns;
+
zlog_notice ("Terminating on signal");
if (!retain_mode)
#endif
zebra_ptm_finish();
+
+ zns = zebra_ns_lookup (NS_DEFAULT);
+ zebra_ns_disable (0, (void **)&zns);
exit (0);
}
zlog_default = openzlog (progname, ZLOG_ZEBRA, 0,
LOG_CONS|LOG_NDELAY|LOG_PID, LOG_DAEMON);
+ zprivs_init (&zserv_privs);
+#if defined(HAVE_CUMULUS)
+ zlog_set_level (NULL, ZLOG_DEST_SYSLOG, zlog_default->default_lvl);
+#endif
while (1)
{
/* Make master thread emulator. */
zebrad.master = thread_master_create ();
- /* privs initialise */
- zprivs_init (&zserv_privs);
-
/* Vty related initialize. */
signal_init (zebrad.master, array_size(zebra_signals), zebra_signals);
cmd_init (1);
rib_init ();
zebra_if_init ();
zebra_debug_init ();
- router_id_init();
+ router_id_cmd_init ();
zebra_vty_init ();
access_list_init ();
prefix_list_init ();
-#ifdef RTADV
- rtadv_init ();
+#if defined (HAVE_RTADV)
+ rtadv_cmd_init ();
#endif
#ifdef HAVE_IRDP
irdp_init();
/* For debug purpose. */
/* SET_FLAG (zebra_debug_event, ZEBRA_DEBUG_EVENT); */
- /* Make kernel routing socket. */
- kernel_init ();
- interface_list ();
- route_read ();
+ /* Initialize NS( and implicitly the VRF module), and make kernel routing socket. */
+ zebra_ns_init ();
#ifdef HAVE_SNMP
zebra_snmp_init ();