Skip to content

Commit

Permalink
Merge pull request FRRouting#16979 from FRRouting/mergify/bp/stable/1…
Browse files Browse the repository at this point in the history
…0.0/pr-16971

bgpd: Actually make ` --v6-with-v4-nexthops` it work (backport FRRouting#16971)
  • Loading branch information
ton31337 authored Oct 3, 2024
2 parents 6585471 + 16421ea commit 589dcc7
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 17 deletions.
32 changes: 16 additions & 16 deletions bgpd/bgp_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,18 +62,16 @@ DEFINE_HOOK(bgp_hook_vrf_update, (struct vrf *vrf, bool enabled),
(vrf, enabled));

/* bgpd options, we use GNU getopt library. */
static const struct option longopts[] = {
{ "bgp_port", required_argument, NULL, 'p' },
{ "listenon", required_argument, NULL, 'l' },
{ "no_kernel", no_argument, NULL, 'n' },
{ "skip_runas", no_argument, NULL, 'S' },
{ "ecmp", required_argument, NULL, 'e' },
{ "int_num", required_argument, NULL, 'I' },
{ "no_zebra", no_argument, NULL, 'Z' },
{ "socket_size", required_argument, NULL, 's' },
{ "v6-with-v4-nexthops", no_argument, NULL, 'v' },
{ 0 }
};
static const struct option longopts[] = { { "bgp_port", required_argument, NULL, 'p' },
{ "listenon", required_argument, NULL, 'l' },
{ "no_kernel", no_argument, NULL, 'n' },
{ "skip_runas", no_argument, NULL, 'S' },
{ "ecmp", required_argument, NULL, 'e' },
{ "int_num", required_argument, NULL, 'I' },
{ "no_zebra", no_argument, NULL, 'Z' },
{ "socket_size", required_argument, NULL, 's' },
{ "v6-with-v4-nexthops", no_argument, NULL, 'x' },
{ 0 } };

/* signal definitions */
void sighup(void);
Expand Down Expand Up @@ -418,11 +416,12 @@ int main(int argc, char **argv)
int buffer_size = BGP_SOCKET_SNDBUF_SIZE;
char *address;
struct listnode *node;
bool v6_with_v4_nexthops = false;

addresses->cmp = (int (*)(void *, void *))strcmp;

frr_preinit(&bgpd_di, argc, argv);
frr_opt_add("p:l:SnZe:I:s:" DEPRECATED_OPTIONS, longopts,
frr_opt_add("p:l:SnZe:I:s:x" 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"
Expand All @@ -431,7 +430,7 @@ int main(int argc, char **argv)
" -e, --ecmp Specify ECMP to use.\n"
" -I, --int_num Set instance number (label-manager)\n"
" -s, --socket_size Set BGP peer socket send buffer size\n"
" , --v6-with-v4-nexthop Allow BGP to form v6 neighbors using v4 nexthops\n");
" -x, --v6-with-v4-nexthop Allow BGP to form v6 neighbors using v4 nexthops\n");

/* Command line argument treatment. */
while (1) {
Expand Down Expand Up @@ -493,8 +492,8 @@ int main(int argc, char **argv)
case 's':
buffer_size = atoi(optarg);
break;
case 'v':
bm->v6_with_v4_nexthops = true;
case 'x':
v6_with_v4_nexthops = true;
break;
default:
frr_help_exit(1);
Expand All @@ -506,6 +505,7 @@ int main(int argc, char **argv)
/* BGP master init. */
bgp_master_init(frr_init(), buffer_size, addresses);
bm->port = bgp_port;
bm->v6_with_v4_nexthops = v6_with_v4_nexthops;
if (bgp_port == 0)
bgp_option_set(BGP_OPT_NO_LISTEN);
if (no_fib_flag || no_zebra_flag)
Expand Down
2 changes: 1 addition & 1 deletion doc/user/bgp.rst
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ be specified (:ref:`common-invocation-options`).
be done to see if this is helping or not at the scale you are running
at.

.. option:: --v6-with-v4-nexthops
.. option:: -x, --v6-with-v4-nexthops

Allow BGP to peer in the V6 afi, when the interface only has v4 addresses.
This allows bgp to install the v6 routes with a v6 nexthop that has the
Expand Down

0 comments on commit 589dcc7

Please sign in to comment.