summaryrefslogtreecommitdiff
path: root/bgpd/bgp_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'bgpd/bgp_main.c')
-rw-r--r--bgpd/bgp_main.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/bgpd/bgp_main.c b/bgpd/bgp_main.c
index ef73b47ffb..6b91a2cf1f 100644
--- a/bgpd/bgp_main.c
+++ b/bgpd/bgp_main.c
@@ -75,6 +75,7 @@ static const struct option longopts[] = {
{"ecmp", required_argument, NULL, 'e'},
{"int_num", required_argument, NULL, 'I'},
{"no_zebra", no_argument, NULL, 'Z'},
+ {"socket_size", required_argument, NULL, 's'},
{0}};
/* signal definitions */
@@ -386,17 +387,19 @@ int main(int argc, char **argv)
int no_zebra_flag = 0;
int skip_runas = 0;
int instance = 0;
+ int buffer_size = BGP_SOCKET_SNDBUF_SIZE;
frr_preinit(&bgpd_di, argc, argv);
frr_opt_add(
- "p:l:SnZe:I:" DEPRECATED_OPTIONS, longopts,
+ "p:l:SnZe:I:s:" DEPRECATED_OPTIONS, longopts,
" -p, --bgp_port Set BGP listen port number (0 means do not listen).\n"
" -l, --listenon Listen on specified address (implies -n)\n"
" -n, --no_kernel Do not install route to kernel.\n"
" -Z, --no_zebra Do not communicate with Zebra.\n"
" -S, --skip_runas Skip capabilities checks, and changing user and group IDs.\n"
" -e, --ecmp Specify ECMP to use.\n"
- " -I, --int_num Set instance number (label-manager)\n");
+ " -I, --int_num Set instance number (label-manager)\n"
+ " -s, --socket_size Set BGP peer socket send buffer size\n");
/* Command line argument treatment. */
while (1) {
@@ -452,6 +455,9 @@ int main(int argc, char **argv)
zlog_err("Instance %i out of range (0..%u)",
instance, (unsigned short)-1);
break;
+ case 's':
+ buffer_size = atoi(optarg);
+ break;
default:
frr_help_exit(1);
break;
@@ -461,7 +467,7 @@ int main(int argc, char **argv)
memset(&bgpd_privs, 0, sizeof(bgpd_privs));
/* BGP master init. */
- bgp_master_init(frr_init());
+ bgp_master_init(frr_init(), buffer_size);
bm->port = bgp_port;
if (bgp_port == 0)
bgp_option_set(BGP_OPT_NO_LISTEN);