]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/main.c
lib: add new extensible memory-type handling
[mirror_frr.git] / zebra / main.c
index 45fe38052b9076cdcad84027ccf6faea07cd3432..d8892f582aa986e0791e2da7763665b0bb06c326 100644 (file)
@@ -32,6 +32,7 @@
 #include "plist.h"
 #include "privs.h"
 #include "sigevent.h"
+#include "vrf.h"
 
 #include "zebra/rib.h"
 #include "zebra/zserv.h"
@@ -41,6 +42,8 @@
 #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
 
@@ -147,7 +150,7 @@ usage (char *progname, int status)
              "-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 */
@@ -174,6 +177,8 @@ sighup (void)
 static void
 sigint (void)
 {
+  struct zebra_ns *zns;
+
   zlog_notice ("Terminating on signal");
 
   if (!retain_mode)
@@ -183,6 +188,9 @@ sigint (void)
 #endif
 
   zebra_ptm_finish();
+
+  zns = zebra_ns_lookup (NS_DEFAULT);
+  zebra_ns_disable (0, (void **)&zns);
   exit (0);
 }
 
@@ -236,6 +244,10 @@ main (int argc, char **argv)
 
   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) 
     {
@@ -322,9 +334,6 @@ main (int argc, char **argv)
   /* 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);
@@ -336,12 +345,12 @@ main (int argc, char **argv)
   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();
@@ -354,10 +363,8 @@ main (int argc, char **argv)
   /* 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 ();