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);  }  | 
