diff options
| author | whitespace / reindent <invalid@invalid.invalid> | 2017-07-17 14:03:14 +0200 |
|---|---|---|
| committer | whitespace / reindent <invalid@invalid.invalid> | 2017-07-17 14:04:07 +0200 |
| commit | d62a17aedeb0eebdba98238874bb13d62c48dbf9 (patch) | |
| tree | 3b319b1d61c8b85b4d1f06adf8b844bb8a9b5107 /bgpd/bgp_main.c | |
| parent | 888ac268a0077fc9ebd1218cec6ae472af0bfc40 (diff) | |
*: reindentreindent-master-after
indent.py `git ls-files | pcregrep '\.[ch]$' | pcregrep -v '^(ldpd|babeld|nhrpd)/'`
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'bgpd/bgp_main.c')
| -rw-r--r-- | bgpd/bgp_main.c | 522 |
1 files changed, 248 insertions, 274 deletions
diff --git a/bgpd/bgp_main.c b/bgpd/bgp_main.c index 7841d510b0..25a562ed68 100644 --- a/bgpd/bgp_main.c +++ b/bgpd/bgp_main.c @@ -60,112 +60,101 @@ #endif /* bgpd options, we use GNU getopt library. */ -static const struct option longopts[] = -{ - { "bgp_port", required_argument, NULL, 'p'}, - { "listenon", required_argument, NULL, 'l'}, - { "retain", no_argument, NULL, 'r'}, - { "no_kernel", no_argument, NULL, 'n'}, - { "skip_runas", no_argument, NULL, 'S'}, - { "ecmp", required_argument, NULL, 'e'}, - { 0 } -}; +static const struct option longopts[] = { + {"bgp_port", required_argument, NULL, 'p'}, + {"listenon", required_argument, NULL, 'l'}, + {"retain", no_argument, NULL, 'r'}, + {"no_kernel", no_argument, NULL, 'n'}, + {"skip_runas", no_argument, NULL, 'S'}, + {"ecmp", required_argument, NULL, 'e'}, + {0}}; /* signal definitions */ -void sighup (void); -void sigint (void); -void sigusr1 (void); +void sighup(void); +void sigint(void); +void sigusr1(void); -static void bgp_exit (int); -static void bgp_vrf_terminate (void); +static void bgp_exit(int); +static void bgp_vrf_terminate(void); -static struct quagga_signal_t bgp_signals[] = -{ - { - .signal = SIGHUP, - .handler = &sighup, - }, - { - .signal = SIGUSR1, - .handler = &sigusr1, - }, - { - .signal = SIGINT, - .handler = &sigint, - }, - { - .signal = SIGTERM, - .handler = &sigint, - }, +static struct quagga_signal_t bgp_signals[] = { + { + .signal = SIGHUP, + .handler = &sighup, + }, + { + .signal = SIGUSR1, + .handler = &sigusr1, + }, + { + .signal = SIGINT, + .handler = &sigint, + }, + { + .signal = SIGTERM, + .handler = &sigint, + }, }; /* Route retain mode flag. */ static int retain_mode = 0; /* privileges */ -static zebra_capabilities_t _caps_p [] = -{ - ZCAP_BIND, - ZCAP_NET_RAW, - ZCAP_NET_ADMIN, +static zebra_capabilities_t _caps_p[] = { + ZCAP_BIND, ZCAP_NET_RAW, ZCAP_NET_ADMIN, }; -struct zebra_privs_t bgpd_privs = -{ +struct zebra_privs_t bgpd_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, }; static struct frr_daemon_info bgpd_di; /* SIGHUP handler. */ -void -sighup (void) +void sighup(void) { - zlog_info ("SIGHUP received"); + zlog_info("SIGHUP received"); - /* Terminate all thread. */ - bgp_terminate (); - bgp_reset (); - zlog_info ("bgpd restarting!"); + /* Terminate all thread. */ + bgp_terminate(); + bgp_reset(); + zlog_info("bgpd restarting!"); - /* Reload config file. */ - vty_read_config (bgpd_di.config_file, config_default); + /* Reload config file. */ + vty_read_config(bgpd_di.config_file, config_default); - /* Try to return to normal operation. */ + /* Try to return to normal operation. */ } /* SIGINT handler. */ -__attribute__((__noreturn__)) void -sigint (void) +__attribute__((__noreturn__)) void sigint(void) { - zlog_notice ("Terminating on signal"); + zlog_notice("Terminating on signal"); - if (! retain_mode) - { - bgp_terminate (); - if (bgpd_privs.user) /* NULL if skip_runas flag set */ - zprivs_terminate (&bgpd_privs); - } + if (!retain_mode) { + bgp_terminate(); + if (bgpd_privs.user) /* NULL if skip_runas flag set */ + zprivs_terminate(&bgpd_privs); + } - bgp_exit (0); + bgp_exit(0); - exit (0); + exit(0); } /* SIGUSR1 handler. */ -void -sigusr1 (void) +void sigusr1(void) { - zlog_rotate(); + zlog_rotate(); } /* @@ -175,265 +164,250 @@ sigusr1 (void) Zebra route removal and protocol teardown are not meant to be done here. For example, "retain_mode" may be set. */ -static __attribute__((__noreturn__)) void -bgp_exit (int status) +static __attribute__((__noreturn__)) void bgp_exit(int status) { - struct bgp *bgp; - struct listnode *node, *nnode; + struct bgp *bgp; + struct listnode *node, *nnode; - /* it only makes sense for this to be called on a clean exit */ - assert (status == 0); + /* it only makes sense for this to be called on a clean exit */ + assert(status == 0); - bfd_gbl_exit(); + bfd_gbl_exit(); - bgp_close(); + bgp_close(); - if (retain_mode) - if_add_hook (IF_DELETE_HOOK, NULL); + if (retain_mode) + if_add_hook(IF_DELETE_HOOK, NULL); - /* reverse bgp_master_init */ - for (ALL_LIST_ELEMENTS (bm->bgp, node, nnode, bgp)) - bgp_delete (bgp); + /* reverse bgp_master_init */ + for (ALL_LIST_ELEMENTS(bm->bgp, node, nnode, bgp)) + bgp_delete(bgp); - /* reverse bgp_dump_init */ - bgp_dump_finish (); + /* reverse bgp_dump_init */ + bgp_dump_finish(); - /* reverse bgp_route_init */ - bgp_route_finish (); + /* reverse bgp_route_init */ + bgp_route_finish(); - /* cleanup route maps */ - bgp_route_map_terminate(); + /* cleanup route maps */ + bgp_route_map_terminate(); - /* reverse bgp_attr_init */ - bgp_attr_finish (); + /* reverse bgp_attr_init */ + bgp_attr_finish(); - /* reverse access_list_init */ - access_list_add_hook (NULL); - access_list_delete_hook (NULL); - access_list_reset (); + /* reverse access_list_init */ + access_list_add_hook(NULL); + access_list_delete_hook(NULL); + access_list_reset(); - /* reverse bgp_filter_init */ - as_list_add_hook (NULL); - as_list_delete_hook (NULL); - bgp_filter_reset (); + /* reverse bgp_filter_init */ + as_list_add_hook(NULL); + as_list_delete_hook(NULL); + bgp_filter_reset(); - /* reverse prefix_list_init */ - prefix_list_add_hook (NULL); - prefix_list_delete_hook (NULL); - prefix_list_reset (); + /* reverse prefix_list_init */ + prefix_list_add_hook(NULL); + prefix_list_delete_hook(NULL); + prefix_list_reset(); - /* reverse community_list_init */ - community_list_terminate (bgp_clist); + /* reverse community_list_init */ + community_list_terminate(bgp_clist); - bgp_vrf_terminate (); - cmd_terminate (); - vty_terminate (); + bgp_vrf_terminate(); + cmd_terminate(); + vty_terminate(); #if ENABLE_BGP_VNC - vnc_zebra_destroy(); + vnc_zebra_destroy(); #endif - bgp_zebra_destroy(); + bgp_zebra_destroy(); - /* reverse bgp_master_init */ - if (bm->master) - thread_master_free (bm->master); + /* reverse bgp_master_init */ + if (bm->master) + thread_master_free(bm->master); - closezlog (); + closezlog(); - list_delete (bm->bgp); - memset (bm, 0, sizeof (*bm)); + list_delete(bm->bgp); + memset(bm, 0, sizeof(*bm)); - if (bgp_debug_count()) - log_memstats_stderr ("bgpd"); - exit (status); + if (bgp_debug_count()) + log_memstats_stderr("bgpd"); + exit(status); } -static int -bgp_vrf_new (struct vrf *vrf) +static int bgp_vrf_new(struct vrf *vrf) { - if (BGP_DEBUG (zebra, ZEBRA)) - zlog_debug ("VRF Created: %s(%d)", vrf->name, vrf->vrf_id); + if (BGP_DEBUG(zebra, ZEBRA)) + zlog_debug("VRF Created: %s(%d)", vrf->name, vrf->vrf_id); - return 0; + return 0; } -static int -bgp_vrf_delete (struct vrf *vrf) +static int bgp_vrf_delete(struct vrf *vrf) { - if (BGP_DEBUG (zebra, ZEBRA)) - zlog_debug ("VRF Deletion: %s(%d)", vrf->name, vrf->vrf_id); + if (BGP_DEBUG(zebra, ZEBRA)) + zlog_debug("VRF Deletion: %s(%d)", vrf->name, vrf->vrf_id); - return 0; + return 0; } -static int -bgp_vrf_enable (struct vrf *vrf) +static int bgp_vrf_enable(struct vrf *vrf) { - struct bgp *bgp; - vrf_id_t old_vrf_id; - - if (BGP_DEBUG (zebra, ZEBRA)) - zlog_debug("VRF enable add %s id %d", vrf->name, vrf->vrf_id); - - bgp = bgp_lookup_by_name (vrf->name); - if (bgp) - { - old_vrf_id = bgp->vrf_id; - /* We have instance configured, link to VRF and make it "up". */ - bgp_vrf_link (bgp, vrf); - - /* Update any redistribute vrf bitmaps if the vrf_id changed */ - if (old_vrf_id != bgp->vrf_id) - bgp_update_redist_vrf_bitmaps(bgp, old_vrf_id); - bgp_instance_up (bgp); - } - - return 0; + struct bgp *bgp; + vrf_id_t old_vrf_id; + + if (BGP_DEBUG(zebra, ZEBRA)) + zlog_debug("VRF enable add %s id %d", vrf->name, vrf->vrf_id); + + bgp = bgp_lookup_by_name(vrf->name); + if (bgp) { + old_vrf_id = bgp->vrf_id; + /* We have instance configured, link to VRF and make it "up". */ + bgp_vrf_link(bgp, vrf); + + /* Update any redistribute vrf bitmaps if the vrf_id changed */ + if (old_vrf_id != bgp->vrf_id) + bgp_update_redist_vrf_bitmaps(bgp, old_vrf_id); + bgp_instance_up(bgp); + } + + return 0; } -static int -bgp_vrf_disable (struct vrf *vrf) +static int bgp_vrf_disable(struct vrf *vrf) { - struct bgp *bgp; - vrf_id_t old_vrf_id; - - if (vrf->vrf_id == VRF_DEFAULT) - return 0; - - if (BGP_DEBUG (zebra, ZEBRA)) - zlog_debug("VRF disable %s id %d", vrf->name, vrf->vrf_id); - - bgp = bgp_lookup_by_name (vrf->name); - if (bgp) - { - old_vrf_id = bgp->vrf_id; - /* We have instance configured, unlink from VRF and make it "down". */ - bgp_vrf_unlink (bgp, vrf); - /* Update any redistribute vrf bitmaps if the vrf_id changed */ - if (old_vrf_id != bgp->vrf_id) - bgp_update_redist_vrf_bitmaps(bgp, old_vrf_id); - bgp_instance_down (bgp); - } - - /* Note: This is a callback, the VRF will be deleted by the caller. */ - return 0; + struct bgp *bgp; + vrf_id_t old_vrf_id; + + if (vrf->vrf_id == VRF_DEFAULT) + return 0; + + if (BGP_DEBUG(zebra, ZEBRA)) + zlog_debug("VRF disable %s id %d", vrf->name, vrf->vrf_id); + + bgp = bgp_lookup_by_name(vrf->name); + if (bgp) { + old_vrf_id = bgp->vrf_id; + /* We have instance configured, unlink from VRF and make it + * "down". */ + bgp_vrf_unlink(bgp, vrf); + /* Update any redistribute vrf bitmaps if the vrf_id changed */ + if (old_vrf_id != bgp->vrf_id) + bgp_update_redist_vrf_bitmaps(bgp, old_vrf_id); + bgp_instance_down(bgp); + } + + /* Note: This is a callback, the VRF will be deleted by the caller. */ + return 0; } -static void -bgp_vrf_init (void) +static void bgp_vrf_init(void) { - vrf_init (bgp_vrf_new, - bgp_vrf_enable, - bgp_vrf_disable, - bgp_vrf_delete); + vrf_init(bgp_vrf_new, bgp_vrf_enable, bgp_vrf_disable, bgp_vrf_delete); } -static void -bgp_vrf_terminate (void) +static void bgp_vrf_terminate(void) { - vrf_terminate (); + vrf_terminate(); } -FRR_DAEMON_INFO(bgpd, BGP, - .vty_port = BGP_VTY_PORT, +FRR_DAEMON_INFO(bgpd, BGP, .vty_port = BGP_VTY_PORT, - .proghelp = "Implementation of the BGP routing protocol.", + .proghelp = "Implementation of the BGP routing protocol.", - .signals = bgp_signals, - .n_signals = array_size(bgp_signals), + .signals = bgp_signals, .n_signals = array_size(bgp_signals), - .privs = &bgpd_privs, -) + .privs = &bgpd_privs, ) /* Main routine of bgpd. Treatment of argument and start bgp finite state machine is handled at here. */ -int -main (int argc, char **argv) +int main(int argc, char **argv) { - int opt; - int tmp_port; - - int bgp_port = BGP_PORT_DEFAULT; - char *bgp_address = NULL; - int no_fib_flag = 0; - int skip_runas = 0; - - frr_preinit(&bgpd_di, argc, argv); - frr_opt_add("p:l:rne:", longopts, - " -p, --bgp_port Set bgp protocol's port number\n" - " -l, --listenon Listen on specified address (implies -n)\n" - " -r, --retain When program terminates, retain added route by bgpd.\n" - " -n, --no_kernel Do not install route to kernel.\n" - " -S, --skip_runas Skip capabilities checks, and changing user and group IDs.\n" - " -e, --ecmp Specify ECMP to use.\n"); - - /* Command line argument treatment. */ - while (1) - { - opt = frr_getopt (argc, argv, 0); - - if (opt == EOF) - break; - - switch (opt) - { - case 0: - break; - case 'p': - tmp_port = atoi (optarg); - if (tmp_port <= 0 || tmp_port > 0xffff) - bgp_port = BGP_PORT_DEFAULT; - else - bgp_port = tmp_port; - 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 'r': - retain_mode = 1; - break; - case 'l': - bgp_address = optarg; - /* listenon implies -n */ - /* fallthru */ - case 'n': - no_fib_flag = 1; - break; - case 'S': - skip_runas = 1; - break; - default: - frr_help_exit (1); - break; + int opt; + int tmp_port; + + int bgp_port = BGP_PORT_DEFAULT; + char *bgp_address = NULL; + int no_fib_flag = 0; + int skip_runas = 0; + + frr_preinit(&bgpd_di, argc, argv); + frr_opt_add( + "p:l:rne:", longopts, + " -p, --bgp_port Set bgp protocol's port number\n" + " -l, --listenon Listen on specified address (implies -n)\n" + " -r, --retain When program terminates, retain added route by bgpd.\n" + " -n, --no_kernel Do not install route to kernel.\n" + " -S, --skip_runas Skip capabilities checks, and changing user and group IDs.\n" + " -e, --ecmp Specify ECMP to use.\n"); + + /* Command line argument treatment. */ + while (1) { + opt = frr_getopt(argc, argv, 0); + + if (opt == EOF) + break; + + switch (opt) { + case 0: + break; + case 'p': + tmp_port = atoi(optarg); + if (tmp_port <= 0 || tmp_port > 0xffff) + bgp_port = BGP_PORT_DEFAULT; + else + bgp_port = tmp_port; + 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 'r': + retain_mode = 1; + break; + case 'l': + bgp_address = optarg; + /* listenon implies -n */ + /* fallthru */ + case 'n': + no_fib_flag = 1; + break; + case 'S': + skip_runas = 1; + break; + default: + frr_help_exit(1); + break; + } } - } - if (skip_runas) - memset (&bgpd_privs, 0, sizeof (bgpd_privs)); + if (skip_runas) + memset(&bgpd_privs, 0, sizeof(bgpd_privs)); - /* BGP master init. */ - bgp_master_init (frr_init ()); - bm->port = bgp_port; - bm->address = bgp_address; - if (no_fib_flag) - bgp_option_set (BGP_OPT_NO_FIB); + /* BGP master init. */ + bgp_master_init(frr_init()); + bm->port = bgp_port; + bm->address = bgp_address; + if (no_fib_flag) + bgp_option_set(BGP_OPT_NO_FIB); - /* Initializations. */ - bgp_vrf_init (); + /* Initializations. */ + bgp_vrf_init(); - /* BGP related initialization. */ - bgp_init (); + /* BGP related initialization. */ + bgp_init(); - snprintf (bgpd_di.startinfo, sizeof (bgpd_di.startinfo), ", bgp@%s:%d", - (bm->address ? bm->address : "<all>"), - bm->port); + snprintf(bgpd_di.startinfo, sizeof(bgpd_di.startinfo), ", bgp@%s:%d", + (bm->address ? bm->address : "<all>"), bm->port); - frr_config_fork (); - frr_run (bm->master); + frr_config_fork(); + frr_run(bm->master); - /* Not reached. */ - return (0); + /* Not reached. */ + return (0); } |
