]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/main.c
*: reindent
[mirror_frr.git] / zebra / main.c
index b136f8ae93e12e4ccb9a69385cb995b9c8a3e354..27a6f3e02762974deb37867aa9fb11ef6e400cd7 100644 (file)
@@ -51,9 +51,8 @@
 #define ZEBRA_PTM_SUPPORT
 
 /* Zebra instance */
-struct zebra_t zebrad =
-{
-  .rtm_table_default = 0,
+struct zebra_t zebrad = {
+       .rtm_table_default = 0,
 };
 
 /* process id. */
@@ -77,283 +76,271 @@ u_int32_t nl_rcvbufsize = 4194304;
 #endif /* HAVE_NETLINK */
 
 /* Command line options. */
-struct option longopts[] =
-{
-  { "batch",        no_argument,       NULL, 'b'},
-  { "allow_delete", no_argument,       NULL, 'a'},
-  { "keep_kernel",  no_argument,       NULL, 'k'},
-  { "socket",       required_argument, NULL, 'z'},
-  { "ecmp",         required_argument, NULL, 'e'},
-  { "label_socket", no_argument,       NULL, 'l'},
-  { "retain",       no_argument,       NULL, 'r'},
+struct option longopts[] = {{"batch", no_argument, NULL, 'b'},
+                           {"allow_delete", no_argument, NULL, 'a'},
+                           {"keep_kernel", no_argument, NULL, 'k'},
+                           {"socket", required_argument, NULL, 'z'},
+                           {"ecmp", required_argument, NULL, 'e'},
+                           {"label_socket", no_argument, NULL, 'l'},
+                           {"retain", no_argument, NULL, 'r'},
 #ifdef HAVE_NETLINK
-  { "nl-bufsize",   required_argument, NULL, 's'},
+                           {"nl-bufsize", required_argument, NULL, 's'},
 #endif /* HAVE_NETLINK */
-  { 0 }
-};
+                           {0}};
 
-zebra_capabilities_t _caps_p [] =
-{
-  ZCAP_NET_ADMIN,
-  ZCAP_SYS_ADMIN,
-  ZCAP_NET_RAW,
+zebra_capabilities_t _caps_p[] = {
+       ZCAP_NET_ADMIN, ZCAP_SYS_ADMIN, ZCAP_NET_RAW,
 };
 
 /* zebra privileges to run with */
-struct zebra_privs_t zserv_privs =
-{
+struct zebra_privs_t zserv_privs = {
 #if defined(FRR_USER) && defined(FRR_GROUP)
-  .user = FRR_USER,
-  .group = FRR_GROUP,
+       .user = FRR_USER,
+       .group = FRR_GROUP,
 #endif
 #ifdef VTY_GROUP
-  .vty_group = VTY_GROUP,
+       .vty_group = VTY_GROUP,
 #endif
-  .caps_p = _caps_p,
-  .cap_num_p = array_size(_caps_p),
-  .cap_num_i = 0
-};
+       .caps_p = _caps_p,
+       .cap_num_p = array_size(_caps_p),
+       .cap_num_i = 0};
 
 unsigned int multipath_num = MULTIPATH_NUM;
 
 /* SIGHUP handler. */
-static void
-sighup (void)
+static void sighup(void)
 {
-  zlog_info ("SIGHUP received");
+       zlog_info("SIGHUP received");
 
-  /* Reload of config file. */
-  ;
+       /* Reload of config file. */
+       ;
 }
 
 /* SIGINT handler. */
-static void
-sigint (void)
+static void sigint(void)
 {
-  struct vrf *vrf;
-  struct zebra_vrf *zvrf;
-  struct zebra_ns *zns;
+       struct vrf *vrf;
+       struct zebra_vrf *zvrf;
+       struct zebra_ns *zns;
 
-  zlog_notice ("Terminating on signal");
+       zlog_notice("Terminating on signal");
 
 #ifdef HAVE_IRDP
-  irdp_finish();
+       irdp_finish();
 #endif
 
-  zebra_ptm_finish();
-  list_delete_all_node (zebrad.client_list);
-
-  if (retain_mode)
-    RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name)
-      {
-       zvrf = vrf->info;
-       if (zvrf)
-         SET_FLAG (zvrf->flags, ZEBRA_VRF_RETAIN);
-      }
-  vrf_terminate ();
-
-  zns = zebra_ns_lookup (NS_DEFAULT);
-  zebra_ns_disable (0, (void **)&zns);
-
-  access_list_reset ();
-  prefix_list_reset ();
-  route_map_finish ();
-  cmd_terminate ();
-  vty_terminate ();
-  zprivs_terminate (&zserv_privs);
-  list_delete (zebrad.client_list);
-  work_queue_free (zebrad.ribq);
-  if (zebrad.lsp_process_q)
-    work_queue_free (zebrad.lsp_process_q);
-  meta_queue_free (zebrad.mq);
-  thread_master_free (zebrad.master);
-  closezlog ();
-
-  exit (0);
+       zebra_ptm_finish();
+       list_delete_all_node(zebrad.client_list);
+
+       if (retain_mode)
+               RB_FOREACH(vrf, vrf_name_head, &vrfs_by_name)
+               {
+                       zvrf = vrf->info;
+                       if (zvrf)
+                               SET_FLAG(zvrf->flags, ZEBRA_VRF_RETAIN);
+               }
+       vrf_terminate();
+
+       zns = zebra_ns_lookup(NS_DEFAULT);
+       zebra_ns_disable(0, (void **)&zns);
+
+       access_list_reset();
+       prefix_list_reset();
+       route_map_finish();
+       cmd_terminate();
+       vty_terminate();
+       zprivs_terminate(&zserv_privs);
+       list_delete(zebrad.client_list);
+       work_queue_free(zebrad.ribq);
+       if (zebrad.lsp_process_q)
+               work_queue_free(zebrad.lsp_process_q);
+       meta_queue_free(zebrad.mq);
+       thread_master_free(zebrad.master);
+       closezlog();
+
+       exit(0);
 }
 
 /* SIGUSR1 handler. */
-static void
-sigusr1 (void)
+static void sigusr1(void)
 {
-  zlog_rotate();
+       zlog_rotate();
 }
 
-struct quagga_signal_t zebra_signals[] =
-{
-  {
-    .signal = SIGHUP,
-    .handler = &sighup,
-  },
-  {
-    .signal = SIGUSR1,
-    .handler = &sigusr1,
-  },
-  {
-    .signal = SIGINT,
-    .handler = &sigint,
-  },
-  {
-    .signal = SIGTERM,
-    .handler = &sigint,
-  },
+struct quagga_signal_t zebra_signals[] = {
+       {
+               .signal = SIGHUP,
+               .handler = &sighup,
+       },
+       {
+               .signal = SIGUSR1,
+               .handler = &sigusr1,
+       },
+       {
+               .signal = SIGINT,
+               .handler = &sigint,
+       },
+       {
+               .signal = SIGTERM,
+               .handler = &sigint,
+       },
 };
 
-FRR_DAEMON_INFO(zebra, ZEBRA,
-       .vty_port = ZEBRA_VTY_PORT,
-       .flags = FRR_NO_ZCLIENT,
+FRR_DAEMON_INFO(
+       zebra, ZEBRA, .vty_port = ZEBRA_VTY_PORT, .flags = FRR_NO_ZCLIENT,
 
-       .proghelp = "Daemon which manages kernel routing table management "
+       .proghelp =
+               "Daemon which manages kernel routing table management "
                "and\nredistribution between different routing protocols.",
 
-       .signals = zebra_signals,
-       .n_signals = array_size(zebra_signals),
+       .signals = zebra_signals, .n_signals = array_size(zebra_signals),
 
-       .privs = &zserv_privs,
-)
+       .privs = &zserv_privs, )
 
 /* Main startup routine. */
-int
-main (int argc, char **argv)
+int main(int argc, char **argv)
 {
-  // int batch_mode = 0;
-  char *zserv_path = NULL;
-  /* Socket to external label manager */
-  char *lblmgr_path = NULL;
+       // int batch_mode = 0;
+       char *zserv_path = NULL;
+       /* Socket to external label manager */
+       char *lblmgr_path = NULL;
 
-  frr_preinit(&zebra_di, argc, argv);
+       frr_preinit(&zebra_di, argc, argv);
 
-  frr_opt_add("bakz:e:l:r"
+       frr_opt_add(
+               "bakz:e:l:r"
 #ifdef HAVE_NETLINK
-       "s:"
+               "s:"
 #endif
-       , longopts,
-       "  -b, --batch        Runs in batch mode\n"
-       "  -a, --allow_delete Allow other processes to delete zebra routes\n"
-       "  -z, --socket       Set path of zebra socket\n"
-       "  -e, --ecmp         Specify ECMP to use.\n"
-       "  -l, --label_socket Socket to external label manager\n"\
-       "  -k, --keep_kernel  Don't delete old routes which installed by zebra.\n"
-       "  -r, --retain       When program terminates, retain added route by zebra.\n"
+               ,
+               longopts,
+               "  -b, --batch        Runs in batch mode\n"
+               "  -a, --allow_delete Allow other processes to delete zebra routes\n"
+               "  -z, --socket       Set path of zebra socket\n"
+               "  -e, --ecmp         Specify ECMP to use.\n"
+               "  -l, --label_socket Socket to external label manager\n"
+               "  -k, --keep_kernel  Don't delete old routes which installed by zebra.\n"
+               "  -r, --retain       When program terminates, retain added route by zebra.\n"
 #ifdef HAVE_NETLINK
-       "  -s, --nl-bufsize   Set netlink receive buffer size\n"
+               "  -s, --nl-bufsize   Set netlink receive buffer size\n"
 #endif /* HAVE_NETLINK */
-       );
-
-  while (1)
-    {
-      int opt = frr_getopt(argc, argv, NULL);
-
-      if (opt == EOF)
-       break;
-
-      switch (opt)
-       {
-       case 0:
-         break;
-       case 'b':
-         // batch_mode = 1;
-         break;
-       case 'a':
-         allow_delete = 1;
-         break;
-       case 'k':
-         keep_kernel_mode = 1;
-         break;
-        case 'e':
-          multipath_num = atoi (optarg);
-          if (multipath_num > MULTIPATH_NUM || multipath_num <= 0)
-            {
-              zlog_err ("Multipath Number specified must be less than %d and greater than 0", MULTIPATH_NUM);
-              return 1;
-            }
-          break;
-       case 'z':
-         zserv_path = optarg;
-         break;
-       case 'l':
-         lblmgr_path = optarg;
-         break;
-       case 'r':
-         retain_mode = 1;
-         break;
+               );
+
+       while (1) {
+               int opt = frr_getopt(argc, argv, NULL);
+
+               if (opt == EOF)
+                       break;
+
+               switch (opt) {
+               case 0:
+                       break;
+               case 'b':
+                       // batch_mode = 1;
+                       break;
+               case 'a':
+                       allow_delete = 1;
+                       break;
+               case 'k':
+                       keep_kernel_mode = 1;
+                       break;
+               case 'e':
+                       multipath_num = atoi(optarg);
+                       if (multipath_num > MULTIPATH_NUM
+                           || multipath_num <= 0) {
+                               zlog_err(
+                                       "Multipath Number specified must be less than %d and greater than 0",
+                                       MULTIPATH_NUM);
+                               return 1;
+                       }
+                       break;
+               case 'z':
+                       zserv_path = optarg;
+                       break;
+               case 'l':
+                       lblmgr_path = optarg;
+                       break;
+               case 'r':
+                       retain_mode = 1;
+                       break;
 #ifdef HAVE_NETLINK
-       case 's':
-         nl_rcvbufsize = atoi (optarg);
-         break;
+               case 's':
+                       nl_rcvbufsize = atoi(optarg);
+                       break;
 #endif /* HAVE_NETLINK */
-       default:
-         frr_help_exit (1);
-         break;
+               default:
+                       frr_help_exit(1);
+                       break;
+               }
        }
-    }
-
-  vty_config_lockless ();
-  zebrad.master = frr_init();
-
-  /* Zebra related initialize. */
-  zebra_init ();
-  rib_init ();
-  zebra_if_init ();
-  zebra_debug_init ();
-  router_id_cmd_init ();
-  zebra_vty_init ();
-  access_list_init ();
-  prefix_list_init ();
-#if defined (HAVE_RTADV)
-  rtadv_cmd_init ();
+
+       vty_config_lockless();
+       zebrad.master = frr_init();
+
+       /* Zebra related initialize. */
+       zebra_init();
+       rib_init();
+       zebra_if_init();
+       zebra_debug_init();
+       router_id_cmd_init();
+       zebra_vty_init();
+       access_list_init();
+       prefix_list_init();
+#if defined(HAVE_RTADV)
+       rtadv_cmd_init();
 #endif
 #ifdef HAVE_IRDP
-  irdp_init();
+       irdp_init();
 #endif
-  /* PTM socket */
+/* PTM socket */
 #ifdef ZEBRA_PTM_SUPPORT
-  zebra_ptm_init();
+       zebra_ptm_init();
 #endif
 
-  zebra_mpls_init ();
-  zebra_mpls_vty_init ();
+       zebra_mpls_init();
+       zebra_mpls_vty_init();
 
-  /* For debug purpose. */
-  /* SET_FLAG (zebra_debug_event, ZEBRA_DEBUG_EVENT); */
+       /* For debug purpose. */
+       /* SET_FLAG (zebra_debug_event, ZEBRA_DEBUG_EVENT); */
 
-  /* Initialize NS( and implicitly the VRF module), and make kernel routing socket. */
-  zebra_ns_init ();
+       /* Initialize NS( and implicitly the VRF module), and make kernel
+        * routing socket. */
+       zebra_ns_init();
 
-  /* Process the configuration file. Among other configuration
-  *  directives we can meet those installing static routes. Such
-  *  requests will not be executed immediately, but queued in
-  *  zebra->ribq structure until we enter the main execution loop.
-  *  The notifications from kernel will show originating PID equal
-  *  to that after daemon() completes (if ever called).
-  */
-  frr_config_fork();
+       /* Process the configuration file. Among other configuration
+       *  directives we can meet those installing static routes. Such
+       *  requests will not be executed immediately, but queued in
+       *  zebra->ribq structure until we enter the main execution loop.
+       *  The notifications from kernel will show originating PID equal
+       *  to that after daemon() completes (if ever called).
+       */
+       frr_config_fork();
 
-  /* Clean up rib -- before fork (?) */
-  /* rib_weed_tables (); */
+       /* Clean up rib -- before fork (?) */
+       /* rib_weed_tables (); */
 
-  /* After we have successfully acquired the pidfile, we can be sure
-  *  about being the only copy of zebra process, which is submitting
-  *  changes to the FIB.
-  *  Clean up zebra-originated routes. The requests will be sent to OS
-  *  immediately, so originating PID in notifications from kernel
-  *  will be equal to the current getpid(). To know about such routes,
-  * we have to have route_read() called before.
-  */
-  if (! keep_kernel_mode)
-    rib_sweep_route ();
+       /* After we have successfully acquired the pidfile, we can be sure
+       *  about being the only copy of zebra process, which is submitting
+       *  changes to the FIB.
+       *  Clean up zebra-originated routes. The requests will be sent to OS
+       *  immediately, so originating PID in notifications from kernel
+       *  will be equal to the current getpid(). To know about such routes,
+       * we have to have route_read() called before.
+       */
+       if (!keep_kernel_mode)
+               rib_sweep_route();
 
-  /* Needed for BSD routing socket. */
-  pid = getpid ();
+       /* Needed for BSD routing socket. */
+       pid = getpid();
 
-  /* This must be done only after locking pidfile (bug #403). */
-  zebra_zserv_socket_init (zserv_path);
+       /* This must be done only after locking pidfile (bug #403). */
+       zebra_zserv_socket_init(zserv_path);
 
-  /* Init label manager */
-  label_manager_init (lblmgr_path);
+       /* Init label manager */
+       label_manager_init(lblmgr_path);
 
-  frr_run (zebrad.master);
+       frr_run(zebrad.master);
 
-  /* Not reached... */
-  return 0;
+       /* Not reached... */
+       return 0;
 }