summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonatas Abraitis <donatas@opensourcerouting.org>2024-10-02 13:57:30 +0300
committerMergify <37929162+mergify[bot]@users.noreply.github.com>2024-10-02 15:09:29 +0000
commit149366d6433a414405c54aab69829edd754c6ac6 (patch)
treea37f4731a35fa4c89697ebcc549d3843f73599f1
parenta3b1e324a9b442cab842ce94cb51ce0a9d194df5 (diff)
bgpd: Actually make ` --v6-with-v4-nexthops` it work
It was using `-v` which is actually a _version_. Fixes: 0435b31bb8ed55377f83d0e19bc085abc3c71b44 ("bgpd: Allow bgp to specify if it will allow v6 routing with v4 nexthops") Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org> (cherry picked from commit 0495cac837ad0f6ff1082746c37e4a48c1068035)
-rw-r--r--bgpd/bgp_main.c32
-rw-r--r--doc/user/bgp.rst2
2 files changed, 17 insertions, 17 deletions
diff --git a/bgpd/bgp_main.c b/bgpd/bgp_main.c
index 11917c6c4a..785a56736d 100644
--- a/bgpd/bgp_main.c
+++ b/bgpd/bgp_main.c
@@ -56,18 +56,16 @@
#endif
/* 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);
@@ -385,11 +383,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"
@@ -398,7 +397,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) {
@@ -460,8 +459,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);
@@ -473,6 +472,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)
diff --git a/doc/user/bgp.rst b/doc/user/bgp.rst
index 03b150659d..35004db2fb 100644
--- a/doc/user/bgp.rst
+++ b/doc/user/bgp.rst
@@ -86,7 +86,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