From: Daniel Walton Date: Fri, 23 Sep 2016 19:45:50 +0000 (+0000) Subject: bgpd: add 'int idx_foo' argv index variables X-Git-Tag: frr-3.0-branchpoint~129^2~173^2~6 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=c500ae4060d155ee9808d99e63450c6bac0f7dbd;p=matthieu%2Ffrr.git bgpd: add 'int idx_foo' argv index variables Signed-off-by: Daniel Walton --- diff --git a/bgpd/bgp_debug.c b/bgpd/bgp_debug.c index 89b970d97c..817a8e00a4 100644 --- a/bgpd/bgp_debug.c +++ b/bgpd/bgp_debug.c @@ -630,7 +630,8 @@ DEFUN (debug_bgp_neighbor_events_peer, "BGP IPv6 neighbor to debug\n" "BGP neighbor on interface to debug\n") { - const char *host = argv[3]->arg; + int idx_peer = 3; + const char *host = argv[idx_peer]->arg; if (!bgp_debug_neighbor_events_peers) bgp_debug_neighbor_events_peers = list_new (); @@ -684,8 +685,9 @@ DEFUN (no_debug_bgp_neighbor_events_peer, "BGP IPv6 neighbor to debug\n" "BGP neighbor on interface to debug\n") { + int idx_peer = 4; int found_peer = 0; - const char *host = argv[4]->arg; + const char *host = argv[idx_peer]->arg; if (bgp_debug_neighbor_events_peers && !list_isempty(bgp_debug_neighbor_events_peers)) { @@ -774,7 +776,8 @@ DEFUN (debug_bgp_keepalive_peer, "BGP IPv6 neighbor to debug\n" "BGP neighbor on interface to debug\n") { - const char *host = argv[3]->arg; + int idx_peer = 3; + const char *host = argv[idx_peer]->arg; if (!bgp_debug_keepalive_peers) bgp_debug_keepalive_peers = list_new (); @@ -828,8 +831,9 @@ DEFUN (no_debug_bgp_keepalive_peer, "BGP IPv6 neighbor to debug\n" "BGP neighbor on interface to debug\n") { + int idx_peer = 4; int found_peer = 0; - const char *host = argv[4]->arg; + const char *host = argv[idx_peer]->arg; if (bgp_debug_keepalive_peers && !list_isempty(bgp_debug_keepalive_peers)) { @@ -863,11 +867,12 @@ DEFUN (debug_bgp_bestpath_prefix, "IPv6 prefix /\n") { + int idx_ipv4_ipv6_prefixlen = 3; struct prefix *argv_p; int ret; argv_p = prefix_new(); - ret = str2prefix (argv[3]->arg, argv_p); + ret = str2prefix (argv[idx_ipv4_ipv6_prefixlen]->arg, argv_p); if (!ret) { prefix_free(argv_p); @@ -881,7 +886,7 @@ DEFUN (debug_bgp_bestpath_prefix, if (bgp_debug_list_has_entry(bgp_debug_bestpath_prefixes, NULL, argv_p)) { - vty_out (vty, "BGP bestptah debugging is already enabled for %s%s", argv[3]->arg, VTY_NEWLINE); + vty_out (vty, "BGP bestptah debugging is already enabled for %s%s", argv[idx_ipv4_ipv6_prefixlen]->arg, VTY_NEWLINE); return CMD_SUCCESS; } @@ -894,7 +899,7 @@ DEFUN (debug_bgp_bestpath_prefix, else { TERM_DEBUG_ON (bestpath, BESTPATH); - vty_out (vty, "BGP bestpath debugging is on for %s%s", argv[3]->arg, VTY_NEWLINE); + vty_out (vty, "BGP bestpath debugging is on for %s%s", argv[idx_ipv4_ipv6_prefixlen]->arg, VTY_NEWLINE); } return CMD_SUCCESS; @@ -911,12 +916,13 @@ DEFUN (no_debug_bgp_bestpath_prefix, "IPv6 prefix /\n") { + int idx_ipv4_ipv6_prefixlen = 4; struct prefix *argv_p; int found_prefix = 0; int ret; argv_p = prefix_new(); - ret = str2prefix (argv[4]->arg, argv_p); + ret = str2prefix (argv[idx_ipv4_ipv6_prefixlen]->arg, argv_p); if (!ret) { prefix_free(argv_p); @@ -943,9 +949,9 @@ DEFUN (no_debug_bgp_bestpath_prefix, } if (found_prefix) - vty_out (vty, "BGP bestpath debugging is off for %s%s", argv[4]->arg, VTY_NEWLINE); + vty_out (vty, "BGP bestpath debugging is off for %s%s", argv[idx_ipv4_ipv6_prefixlen]->arg, VTY_NEWLINE); else - vty_out (vty, "BGP bestpath debugging was not enabled for %s%s", argv[4]->arg, VTY_NEWLINE); + vty_out (vty, "BGP bestpath debugging was not enabled for %s%s", argv[idx_ipv4_ipv6_prefixlen]->arg, VTY_NEWLINE); return CMD_SUCCESS; } @@ -1005,22 +1011,23 @@ DEFUN (debug_bgp_update_direct, "Inbound updates\n" "Outbound updates\n") { + int idx_in_out = 3; - if (strncmp ("i", argv[3]->arg, 1) == 0) + if (strncmp ("i", argv[idx_in_out]->arg, 1) == 0) bgp_debug_list_free(bgp_debug_update_in_peers); else bgp_debug_list_free(bgp_debug_update_out_peers); if (vty->node == CONFIG_NODE) { - if (strncmp ("i", argv[3]->arg, 1) == 0) + if (strncmp ("i", argv[idx_in_out]->arg, 1) == 0) DEBUG_ON (update, UPDATE_IN); else DEBUG_ON (update, UPDATE_OUT); } else { - if (strncmp ("i", argv[3]->arg, 1) == 0) + if (strncmp ("i", argv[idx_in_out]->arg, 1) == 0) { TERM_DEBUG_ON (update, UPDATE_IN); vty_out (vty, "BGP updates debugging is on (inbound)%s", VTY_NEWLINE); @@ -1046,7 +1053,9 @@ DEFUN (debug_bgp_update_direct_peer, "BGP IPv6 neighbor to debug\n" "BGP neighbor on interface to debug\n") { - const char *host = argv[4]->arg; + int idx_in_out = 3; + int idx_peer = 4; + const char *host = argv[idx_peer]->arg; int inbound; if (!bgp_debug_update_in_peers) @@ -1055,7 +1064,7 @@ DEFUN (debug_bgp_update_direct_peer, if (!bgp_debug_update_out_peers) bgp_debug_update_out_peers = list_new (); - if (strncmp ("i", argv[3]->arg, 1) == 0) + if (strncmp ("i", argv[idx_in_out]->arg, 1) == 0) inbound = 1; else inbound = 0; @@ -1117,12 +1126,12 @@ DEFUN (debug_bgp_update_direct_peer, if (inbound) { TERM_DEBUG_ON (update, UPDATE_IN); - vty_out (vty, "BGP updates debugging is on (inbound) for %s%s", argv[4]->arg, VTY_NEWLINE); + vty_out (vty, "BGP updates debugging is on (inbound) for %s%s", argv[idx_peer]->arg, VTY_NEWLINE); } else { TERM_DEBUG_ON (update, UPDATE_OUT); - vty_out (vty, "BGP updates debugging is on (outbound) for %s%s", argv[4]->arg, VTY_NEWLINE); + vty_out (vty, "BGP updates debugging is on (outbound) for %s%s", argv[idx_peer]->arg, VTY_NEWLINE); } } return CMD_SUCCESS; @@ -1138,7 +1147,8 @@ DEFUN (no_debug_bgp_update_direct, "Inbound updates\n" "Outbound updates\n") { - if (strncmp ("i", argv[4]->arg, 1) == 0) + int idx_in_out = 4; + if (strncmp ("i", argv[idx_in_out]->arg, 1) == 0) { bgp_debug_list_free(bgp_debug_update_in_peers); @@ -1183,11 +1193,13 @@ DEFUN (no_debug_bgp_update_direct_peer, "BGP IPv6 neighbor to debug\n" "BGP neighbor on interface to debug\n") { + int idx_in_out = 4; + int idx_peer = 5; int inbound; int found_peer = 0; - const char *host = argv[5]->arg; + const char *host = argv[idx_peer]->arg; - if (strncmp ("i", argv[4]->arg, 1) == 0) + if (strncmp ("i", argv[idx_in_out]->arg, 1) == 0) inbound = 1; else inbound = 0; @@ -1271,11 +1283,12 @@ DEFUN (debug_bgp_update_prefix, "IPv6 prefix /\n") { + int idx_ipv4_ipv6_prefixlen = 4; struct prefix *argv_p; int ret; argv_p = prefix_new(); - ret = str2prefix (argv[4]->arg, argv_p); + ret = str2prefix (argv[idx_ipv4_ipv6_prefixlen]->arg, argv_p); if (!ret) { prefix_free(argv_p); @@ -1289,7 +1302,7 @@ DEFUN (debug_bgp_update_prefix, if (bgp_debug_list_has_entry(bgp_debug_update_prefixes, NULL, argv_p)) { - vty_out (vty, "BGP updates debugging is already enabled for %s%s", argv[4]->arg, VTY_NEWLINE); + vty_out (vty, "BGP updates debugging is already enabled for %s%s", argv[idx_ipv4_ipv6_prefixlen]->arg, VTY_NEWLINE); return CMD_SUCCESS; } @@ -1302,7 +1315,7 @@ DEFUN (debug_bgp_update_prefix, else { TERM_DEBUG_ON (update, UPDATE_PREFIX); - vty_out (vty, "BGP updates debugging is on for %s%s", argv[4]->arg, VTY_NEWLINE); + vty_out (vty, "BGP updates debugging is on for %s%s", argv[idx_ipv4_ipv6_prefixlen]->arg, VTY_NEWLINE); } return CMD_SUCCESS; @@ -1320,12 +1333,13 @@ DEFUN (no_debug_bgp_update_prefix, "IPv6 prefix /\n") { + int idx_ipv4_ipv6_prefixlen = 5; struct prefix *argv_p; int found_prefix = 0; int ret; argv_p = prefix_new(); - ret = str2prefix (argv[5]->arg, argv_p); + ret = str2prefix (argv[idx_ipv4_ipv6_prefixlen]->arg, argv_p); if (!ret) { prefix_free(argv_p); @@ -1352,9 +1366,9 @@ DEFUN (no_debug_bgp_update_prefix, } if (found_prefix) - vty_out (vty, "BGP updates debugging is off for %s%s", argv[5]->arg, VTY_NEWLINE); + vty_out (vty, "BGP updates debugging is off for %s%s", argv[idx_ipv4_ipv6_prefixlen]->arg, VTY_NEWLINE); else - vty_out (vty, "BGP updates debugging was not enabled for %s%s", argv[5]->arg, VTY_NEWLINE); + vty_out (vty, "BGP updates debugging was not enabled for %s%s", argv[idx_ipv4_ipv6_prefixlen]->arg, VTY_NEWLINE); return CMD_SUCCESS; } @@ -1418,11 +1432,12 @@ DEFUN (debug_bgp_zebra_prefix, "IPv6 prefix /\n") { + int idx_ipv4_ipv6_prefixlen = 4; struct prefix *argv_p; int ret; argv_p = prefix_new(); - ret = str2prefix (argv[4]->arg, argv_p); + ret = str2prefix (argv[idx_ipv4_ipv6_prefixlen]->arg, argv_p); if (!ret) { prefix_free(argv_p); @@ -1435,7 +1450,7 @@ DEFUN (debug_bgp_zebra_prefix, if (bgp_debug_list_has_entry(bgp_debug_zebra_prefixes, NULL, argv_p)) { - vty_out (vty, "BGP zebra debugging is already enabled for %s%s", argv[4]->arg, VTY_NEWLINE); + vty_out (vty, "BGP zebra debugging is already enabled for %s%s", argv[idx_ipv4_ipv6_prefixlen]->arg, VTY_NEWLINE); return CMD_SUCCESS; } @@ -1446,7 +1461,7 @@ DEFUN (debug_bgp_zebra_prefix, else { TERM_DEBUG_ON (zebra, ZEBRA); - vty_out (vty, "BGP zebra debugging is on for %s%s", argv[4]->arg, VTY_NEWLINE); + vty_out (vty, "BGP zebra debugging is on for %s%s", argv[idx_ipv4_ipv6_prefixlen]->arg, VTY_NEWLINE); } return CMD_SUCCESS; @@ -1484,12 +1499,13 @@ DEFUN (no_debug_bgp_zebra_prefix, "IPv6 prefix /\n") { + int idx_ipv4_ipv6_prefixlen = 5; struct prefix *argv_p; int found_prefix = 0; int ret; argv_p = prefix_new(); - ret = str2prefix (argv[5]->arg, argv_p); + ret = str2prefix (argv[idx_ipv4_ipv6_prefixlen]->arg, argv_p); if (!ret) { prefix_free(argv_p); @@ -1514,9 +1530,9 @@ DEFUN (no_debug_bgp_zebra_prefix, } if (found_prefix) - vty_out (vty, "BGP zebra debugging is off for %s%s", argv[5]->arg, VTY_NEWLINE); + vty_out (vty, "BGP zebra debugging is off for %s%s", argv[idx_ipv4_ipv6_prefixlen]->arg, VTY_NEWLINE); else - vty_out (vty, "BGP zebra debugging was not enabled for %s%s", argv[5]->arg, VTY_NEWLINE); + vty_out (vty, "BGP zebra debugging was not enabled for %s%s", argv[idx_ipv4_ipv6_prefixlen]->arg, VTY_NEWLINE); return CMD_SUCCESS; } diff --git a/bgpd/bgp_dump.c b/bgpd/bgp_dump.c index c5fc052009..48c43b7f6e 100644 --- a/bgpd/bgp_dump.c +++ b/bgpd/bgp_dump.c @@ -736,13 +736,16 @@ DEFUN (dump_bgp_all, "Output filename\n" "Interval of output\n") { + int idx_dump_routes = 2; + int idx_path = 3; + int idx_interval = 4; int bgp_dump_type = 0; const char *interval = NULL; struct bgp_dump *bgp_dump_struct = NULL; const struct bgp_dump_type_map *map = NULL; for (map = bgp_dump_type_map; map->str; map++) - if (strcmp(argv[2]->arg, map->str) == 0) + if (strcmp(argv[idx_dump_routes]->arg, map->str) == 0) bgp_dump_type = map->type; switch (bgp_dump_type) @@ -763,10 +766,10 @@ DEFUN (dump_bgp_all, /* When an interval is given */ if (argc == 3) - interval = argv[4]->arg; + interval = argv[idx_interval]->arg; return bgp_dump_set (vty, bgp_dump_struct, bgp_dump_type, - argv[3]->arg, interval); + argv[idx_path]->arg, interval); } DEFUN (no_dump_bgp_all, @@ -781,12 +784,13 @@ DEFUN (no_dump_bgp_all, "Stop dump process updates-et\n" "Stop dump process route-mrt\n") { + int idx_dump_routes = 3; int bgp_dump_type = 0; const struct bgp_dump_type_map *map = NULL; struct bgp_dump *bgp_dump_struct = NULL; for (map = bgp_dump_type_map; map->str; map++) - if (strcmp(argv[3]->arg, map->str) == 0) + if (strcmp(argv[idx_dump_routes]->arg, map->str) == 0) bgp_dump_type = map->type; switch (bgp_dump_type) diff --git a/bgpd/bgp_filter.c b/bgpd/bgp_filter.c index 6a39d02174..05d5eafae6 100644 --- a/bgpd/bgp_filter.c +++ b/bgpd/bgp_filter.c @@ -437,6 +437,8 @@ DEFUN (ip_as_path, "Specify packets to forward\n" "A regular-expression to match the BGP AS paths\n") { + int idx_word = 3; + int idx_permit_deny = 4; enum as_filter_type type; struct as_filter *asfilter; struct as_list *aslist; @@ -444,9 +446,9 @@ DEFUN (ip_as_path, char *regstr; /* Check the filter type. */ - if (strncmp (argv[4]->arg, "p", 1) == 0) + if (strncmp (argv[idx_permit_deny]->arg, "p", 1) == 0) type = AS_FILTER_PERMIT; - else if (strncmp (argv[4]->arg, "d", 1) == 0) + else if (strncmp (argv[idx_permit_deny]->arg, "d", 1) == 0) type = AS_FILTER_DENY; else { @@ -461,7 +463,7 @@ DEFUN (ip_as_path, if (!regex) { XFREE (MTYPE_TMP, regstr); - vty_out (vty, "can't compile regexp %s%s", argv[3]->arg, + vty_out (vty, "can't compile regexp %s%s", argv[idx_word]->arg, VTY_NEWLINE); return CMD_WARNING; } @@ -471,7 +473,7 @@ DEFUN (ip_as_path, XFREE (MTYPE_TMP, regstr); /* Install new filter to the access_list. */ - aslist = as_list_get (argv[3]->arg); + aslist = as_list_get (argv[idx_word]->arg); /* Duplicate insertion check. */; if (as_list_dup_check (aslist, asfilter)) @@ -494,6 +496,8 @@ DEFUN (no_ip_as_path, "Specify packets to forward\n" "A regular-expression to match the BGP AS paths\n") { + int idx_word = 4; + int idx_permit_deny = 5; enum as_filter_type type; struct as_filter *asfilter; struct as_list *aslist; @@ -501,18 +505,18 @@ DEFUN (no_ip_as_path, regex_t *regex; /* Lookup AS list from AS path list. */ - aslist = as_list_lookup (argv[4]->arg); + aslist = as_list_lookup (argv[idx_word]->arg); if (aslist == NULL) { - vty_out (vty, "ip as-path access-list %s doesn't exist%s", argv[4]->arg, + vty_out (vty, "ip as-path access-list %s doesn't exist%s", argv[idx_word]->arg, VTY_NEWLINE); return CMD_WARNING; } /* Check the filter type. */ - if (strncmp (argv[5]->arg, "p", 1) == 0) + if (strncmp (argv[idx_permit_deny]->arg, "p", 1) == 0) type = AS_FILTER_PERMIT; - else if (strncmp (argv[5]->arg, "d", 1) == 0) + else if (strncmp (argv[idx_permit_deny]->arg, "d", 1) == 0) type = AS_FILTER_DENY; else { @@ -527,7 +531,7 @@ DEFUN (no_ip_as_path, if (!regex) { XFREE (MTYPE_TMP, regstr); - vty_out (vty, "can't compile regexp %s%s", argv[4]->arg, + vty_out (vty, "can't compile regexp %s%s", argv[idx_word]->arg, VTY_NEWLINE); return CMD_WARNING; } @@ -558,12 +562,13 @@ DEFUN (no_ip_as_path_all, "Specify an access list name\n" "Regular expression access list name\n") { + int idx_word = 4; struct as_list *aslist; - aslist = as_list_lookup (argv[4]->arg); + aslist = as_list_lookup (argv[idx_word]->arg); if (aslist == NULL) { - vty_out (vty, "ip as-path access-list %s doesn't exist%s", argv[4]->arg, + vty_out (vty, "ip as-path access-list %s doesn't exist%s", argv[idx_word]->arg, VTY_NEWLINE); return CMD_WARNING; } @@ -572,7 +577,7 @@ DEFUN (no_ip_as_path_all, /* Run hook function. */ if (as_list_master.delete_hook) - (*as_list_master.delete_hook) (argv[4]->arg); + (*as_list_master.delete_hook) (argv[idx_word]->arg); return CMD_SUCCESS; } @@ -628,9 +633,10 @@ DEFUN (show_ip_as_path_access_list, "List AS path access lists\n" "AS path access list name\n") { + int idx_word = 3; struct as_list *aslist; - aslist = as_list_lookup (argv[3]->arg); + aslist = as_list_lookup (argv[idx_word]->arg); if (aslist) as_list_show (vty, aslist); diff --git a/bgpd/bgp_mplsvpn.c b/bgpd/bgp_mplsvpn.c index 629cfffb30..48baedcea5 100644 --- a/bgpd/bgp_mplsvpn.c +++ b/bgpd/bgp_mplsvpn.c @@ -360,7 +360,10 @@ DEFUN (vpnv4_network, "BGP tag\n" "tag value\n") { - return bgp_static_set_safi (SAFI_MPLS_VPN, vty, argv[1]->arg, argv[3]->arg, argv[5]->arg, NULL); + int idx_ipv4_prefixlen = 1; + int idx_ext_community = 3; + int idx_word = 5; + return bgp_static_set_safi (SAFI_MPLS_VPN, vty, argv[idx_ipv4_prefixlen]->arg, argv[idx_ext_community]->arg, argv[idx_word]->arg, NULL); } DEFUN (vpnv4_network_route_map, @@ -375,7 +378,11 @@ DEFUN (vpnv4_network_route_map, "route map\n" "route map name\n") { - return bgp_static_set_safi (SAFI_MPLS_VPN, vty, argv[1]->arg, argv[3]->arg, argv[5]->arg, argv[7]->arg); + int idx_ipv4_prefixlen = 1; + int idx_ext_community = 3; + int idx_word = 5; + int idx_word_2 = 7; + return bgp_static_set_safi (SAFI_MPLS_VPN, vty, argv[idx_ipv4_prefixlen]->arg, argv[idx_ext_community]->arg, argv[idx_word]->arg, argv[idx_word_2]->arg); } /* For testing purpose, static route of MPLS-VPN. */ @@ -390,7 +397,10 @@ DEFUN (no_vpnv4_network, "BGP tag\n" "tag value\n") { - return bgp_static_unset_safi (SAFI_MPLS_VPN, vty, argv[2]->arg, argv[4]->arg, argv[6]->arg); + int idx_ipv4_prefixlen = 2; + int idx_ext_community = 4; + int idx_word = 6; + return bgp_static_unset_safi (SAFI_MPLS_VPN, vty, argv[idx_ipv4_prefixlen]->arg, argv[idx_ext_community]->arg, argv[idx_word]->arg); } static int @@ -791,10 +801,11 @@ DEFUN (show_bgp_ipv4_vpn_rd, "VPN Route Distinguisher\n" JSON_STR) { + int idx_ext_community = 5; int ret; struct prefix_rd prd; - ret = str2prefix_rd (argv[5]->arg, &prd); + ret = str2prefix_rd (argv[idx_ext_community]->arg, &prd); if (! ret) { vty_out (vty, "%% Malformed Route Distinguisher%s", VTY_NEWLINE); @@ -814,10 +825,11 @@ DEFUN (show_bgp_ipv6_vpn_rd, "VPN Route Distinguisher\n" JSON_STR) { + int idx_ext_community = 5; int ret; struct prefix_rd prd; - ret = str2prefix_rd (argv[5]->arg, &prd); + ret = str2prefix_rd (argv[idx_ext_community]->arg, &prd); if (!ret) { vty_out (vty, "%% Malformed Route Distinguisher%s", VTY_NEWLINE); @@ -849,10 +861,11 @@ DEFUN (show_ip_bgp_vpnv4_rd, "Display information for a route distinguisher\n" "VPN Route Distinguisher\n") { + int idx_ext_community = 5; int ret; struct prefix_rd prd; - ret = str2prefix_rd (argv[5]->arg, &prd); + ret = str2prefix_rd (argv[idx_ext_community]->arg, &prd); if (! ret) { vty_out (vty, "%% Malformed Route Distinguisher%s", VTY_NEWLINE); @@ -885,10 +898,11 @@ DEFUN (show_ip_bgp_vpnv4_rd_tags, "VPN Route Distinguisher\n" "Display BGP tags for prefixes\n") { + int idx_ext_community = 5; int ret; struct prefix_rd prd; - ret = str2prefix_rd (argv[5]->arg, &prd); + ret = str2prefix_rd (argv[idx_ext_community]->arg, &prd); if (! ret) { vty_out (vty, "%% Malformed Route Distinguisher%s", VTY_NEWLINE); @@ -910,12 +924,13 @@ DEFUN (show_ip_bgp_vpnv4_all_neighbor_routes, "Display routes learned from neighbor\n" "JavaScript Object Notation\n") { + int idx_ipv4 = 6; union sockunion su; struct peer *peer; int ret; u_char uj = use_json(argc, argv); - ret = str2sockunion (argv[6]->arg, &su); + ret = str2sockunion (argv[idx_ipv4]->arg, &su); if (ret < 0) { if (uj) @@ -927,7 +942,7 @@ DEFUN (show_ip_bgp_vpnv4_all_neighbor_routes, json_object_free(json_no); } else - vty_out (vty, "Malformed address: %s%s", argv[6]->arg, VTY_NEWLINE); + vty_out (vty, "Malformed address: %s%s", argv[idx_ipv4]->arg, VTY_NEWLINE); return CMD_WARNING; } @@ -964,13 +979,15 @@ DEFUN (show_ip_bgp_vpnv4_rd_neighbor_routes, "Display routes learned from neighbor\n" "JavaScript Object Notation\n") { + int idx_ext_community = 5; + int idx_ipv4 = 7; int ret; union sockunion su; struct peer *peer; struct prefix_rd prd; u_char uj = use_json(argc, argv); - ret = str2prefix_rd (argv[5]->arg, &prd); + ret = str2prefix_rd (argv[idx_ext_community]->arg, &prd); if (! ret) { if (uj) @@ -986,7 +1003,7 @@ DEFUN (show_ip_bgp_vpnv4_rd_neighbor_routes, return CMD_WARNING; } - ret = str2sockunion (argv[7]->arg, &su); + ret = str2sockunion (argv[idx_ipv4]->arg, &su); if (ret < 0) { if (uj) @@ -998,7 +1015,7 @@ DEFUN (show_ip_bgp_vpnv4_rd_neighbor_routes, json_object_free(json_no); } else - vty_out (vty, "Malformed address: %s%s", argv[5]->arg, VTY_NEWLINE); + vty_out (vty, "Malformed address: %s%s", argv[idx_ext_community]->arg, VTY_NEWLINE); return CMD_WARNING; } @@ -1034,12 +1051,13 @@ DEFUN (show_ip_bgp_vpnv4_all_neighbor_advertised_routes, "Display the routes advertised to a BGP neighbor\n" "JavaScript Object Notation\n") { + int idx_ipv4 = 6; int ret; struct peer *peer; union sockunion su; u_char uj = use_json(argc, argv); - ret = str2sockunion (argv[6]->arg, &su); + ret = str2sockunion (argv[idx_ipv4]->arg, &su); if (ret < 0) { if (uj) @@ -1051,7 +1069,7 @@ DEFUN (show_ip_bgp_vpnv4_all_neighbor_advertised_routes, json_object_free(json_no); } else - vty_out (vty, "Malformed address: %s%s", argv[6]->arg, VTY_NEWLINE); + vty_out (vty, "Malformed address: %s%s", argv[idx_ipv4]->arg, VTY_NEWLINE); return CMD_WARNING; } peer = peer_lookup (NULL, &su); @@ -1087,13 +1105,15 @@ DEFUN (show_ip_bgp_vpnv4_rd_neighbor_advertised_routes, "Display the routes advertised to a BGP neighbor\n" "JavaScript Object Notation\n") { + int idx_ext_community = 5; + int idx_ipv4 = 7; int ret; struct peer *peer; struct prefix_rd prd; union sockunion su; u_char uj = use_json(argc, argv); - ret = str2sockunion (argv[7]->arg, &su); + ret = str2sockunion (argv[idx_ipv4]->arg, &su); if (ret < 0) { if (uj) @@ -1105,7 +1125,7 @@ DEFUN (show_ip_bgp_vpnv4_rd_neighbor_advertised_routes, json_object_free(json_no); } else - vty_out (vty, "Malformed address: %s%s", argv[5]->arg, VTY_NEWLINE); + vty_out (vty, "Malformed address: %s%s", argv[idx_ext_community]->arg, VTY_NEWLINE); return CMD_WARNING; } peer = peer_lookup (NULL, &su); @@ -1124,7 +1144,7 @@ DEFUN (show_ip_bgp_vpnv4_rd_neighbor_advertised_routes, return CMD_WARNING; } - ret = str2prefix_rd (argv[5]->arg, &prd); + ret = str2prefix_rd (argv[idx_ext_community]->arg, &prd); if (! ret) { if (uj) diff --git a/bgpd/bgp_nexthop.c b/bgpd/bgp_nexthop.c index caecd80e6e..e648af91e7 100644 --- a/bgpd/bgp_nexthop.c +++ b/bgpd/bgp_nexthop.c @@ -520,7 +520,8 @@ DEFUN (show_ip_bgp_instance_nexthop, BGP_INSTANCE_HELP_STR "BGP nexthop table\n") { - return show_ip_bgp_nexthop_table (vty, argv[4]->arg, 0); + int idx_word = 4; + return show_ip_bgp_nexthop_table (vty, argv[idx_word]->arg, 0); } DEFUN (show_ip_bgp_instance_all_nexthop, @@ -545,7 +546,8 @@ DEFUN (show_ip_bgp_instance_nexthop_detail, BGP_INSTANCE_HELP_STR "BGP nexthop table\n") { - return show_ip_bgp_nexthop_table (vty, argv[4]->arg, 1); + int idx_word = 4; + return show_ip_bgp_nexthop_table (vty, argv[idx_word]->arg, 1); } void diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index d0eff6e206..6238f28dda 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -4264,8 +4264,9 @@ DEFUN (bgp_table_map, "BGP table to RIB route download filter\n" "Name of the route map\n") { + int idx_word = 1; return bgp_table_map_set (vty, vty->index, - bgp_node_afi (vty), bgp_node_safi (vty), argv[1]->arg); + bgp_node_afi (vty), bgp_node_safi (vty), argv[idx_word]->arg); } DEFUN (no_bgp_table_map, no_bgp_table_map_cmd, @@ -4273,8 +4274,9 @@ DEFUN (no_bgp_table_map, "BGP table to RIB route download filter\n" "Name of the route map\n") { + int idx_word = 2; return bgp_table_map_unset (vty, vty->index, - bgp_node_afi (vty), bgp_node_safi (vty), argv[2]->arg); + bgp_node_afi (vty), bgp_node_safi (vty), argv[idx_word]->arg); } DEFUN (bgp_network, @@ -4283,7 +4285,8 @@ DEFUN (bgp_network, "Specify a network to announce via BGP\n" "IP prefix /, e.g., 35.0.0.0/8\n") { - return bgp_static_set (vty, vty->index, argv[1]->arg, + int idx_ipv4_prefixlen = 1; + return bgp_static_set (vty, vty->index, argv[idx_ipv4_prefixlen]->arg, AFI_IP, bgp_node_safi (vty), NULL, 0); } @@ -4295,8 +4298,10 @@ DEFUN (bgp_network_route_map, "Route-map to modify the attributes\n" "Name of the route map\n") { - return bgp_static_set (vty, vty->index, argv[1]->arg, - AFI_IP, bgp_node_safi (vty), argv[3]->arg, 0); + int idx_ipv4_prefixlen = 1; + int idx_word = 3; + return bgp_static_set (vty, vty->index, argv[idx_ipv4_prefixlen]->arg, + AFI_IP, bgp_node_safi (vty), argv[idx_word]->arg, 0); } DEFUN (bgp_network_backdoor, @@ -4306,7 +4311,8 @@ DEFUN (bgp_network_backdoor, "IP prefix /, e.g., 35.0.0.0/8\n" "Specify a BGP backdoor route\n") { - return bgp_static_set (vty, vty->index, argv[1]->arg, AFI_IP, SAFI_UNICAST, + int idx_ipv4_prefixlen = 1; + return bgp_static_set (vty, vty->index, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_UNICAST, NULL, 1); } @@ -4318,10 +4324,12 @@ DEFUN (bgp_network_mask, "Network mask\n" "Network mask\n") { + int idx_ipv4 = 1; + int idx_ipv4_2 = 3; int ret; char prefix_str[BUFSIZ]; - ret = netmask_str2prefix_str (argv[1]->arg, argv[3]->arg, prefix_str); + ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, prefix_str); if (! ret) { vty_out (vty, "%% Inconsistent address and mask%s", VTY_NEWLINE); @@ -4342,10 +4350,13 @@ DEFUN (bgp_network_mask_route_map, "Route-map to modify the attributes\n" "Name of the route map\n") { + int idx_ipv4 = 1; + int idx_ipv4_2 = 3; + int idx_word = 5; int ret; char prefix_str[BUFSIZ]; - ret = netmask_str2prefix_str (argv[1]->arg, argv[3]->arg, prefix_str); + ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, prefix_str); if (! ret) { vty_out (vty, "%% Inconsistent address and mask%s", VTY_NEWLINE); @@ -4353,7 +4364,7 @@ DEFUN (bgp_network_mask_route_map, } return bgp_static_set (vty, vty->index, prefix_str, - AFI_IP, bgp_node_safi (vty), argv[5]->arg, 0); + AFI_IP, bgp_node_safi (vty), argv[idx_word]->arg, 0); } DEFUN (bgp_network_mask_backdoor, @@ -4365,10 +4376,12 @@ DEFUN (bgp_network_mask_backdoor, "Network mask\n" "Specify a BGP backdoor route\n") { + int idx_ipv4 = 1; + int idx_ipv4_2 = 3; int ret; char prefix_str[BUFSIZ]; - ret = netmask_str2prefix_str (argv[1]->arg, argv[3]->arg, prefix_str); + ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, prefix_str); if (! ret) { vty_out (vty, "%% Inconsistent address and mask%s", VTY_NEWLINE); @@ -4385,10 +4398,11 @@ DEFUN (bgp_network_mask_natural, "Specify a network to announce via BGP\n" "Network number\n") { + int idx_ipv4 = 1; int ret; char prefix_str[BUFSIZ]; - ret = netmask_str2prefix_str (argv[1]->arg, NULL, prefix_str); + ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, NULL, prefix_str); if (! ret) { vty_out (vty, "%% Inconsistent address and mask%s", VTY_NEWLINE); @@ -4407,10 +4421,12 @@ DEFUN (bgp_network_mask_natural_route_map, "Route-map to modify the attributes\n" "Name of the route map\n") { + int idx_ipv4 = 1; + int idx_word = 3; int ret; char prefix_str[BUFSIZ]; - ret = netmask_str2prefix_str (argv[1]->arg, NULL, prefix_str); + ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, NULL, prefix_str); if (! ret) { vty_out (vty, "%% Inconsistent address and mask%s", VTY_NEWLINE); @@ -4418,7 +4434,7 @@ DEFUN (bgp_network_mask_natural_route_map, } return bgp_static_set (vty, vty->index, prefix_str, - AFI_IP, bgp_node_safi (vty), argv[3]->arg, 0); + AFI_IP, bgp_node_safi (vty), argv[idx_word]->arg, 0); } DEFUN (bgp_network_mask_natural_backdoor, @@ -4428,10 +4444,11 @@ DEFUN (bgp_network_mask_natural_backdoor, "Network number\n" "Specify a BGP backdoor route\n") { + int idx_ipv4 = 1; int ret; char prefix_str[BUFSIZ]; - ret = netmask_str2prefix_str (argv[1]->arg, NULL, prefix_str); + ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, NULL, prefix_str); if (! ret) { vty_out (vty, "%% Inconsistent address and mask%s", VTY_NEWLINE); @@ -4465,7 +4482,8 @@ DEFUN (no_bgp_network, "Specify a network to announce via BGP\n" "IP prefix /, e.g., 35.0.0.0/8\n") { - return bgp_static_unset (vty, vty->index, argv[2]->arg, AFI_IP, + int idx_ipv4_prefixlen = 2; + return bgp_static_unset (vty, vty->index, argv[idx_ipv4_prefixlen]->arg, AFI_IP, bgp_node_safi (vty)); } @@ -4500,10 +4518,12 @@ DEFUN (no_bgp_network_mask, "Network mask\n" "Network mask\n") { + int idx_ipv4 = 2; + int idx_ipv4_2 = 4; int ret; char prefix_str[BUFSIZ]; - ret = netmask_str2prefix_str (argv[2]->arg, argv[4]->arg, prefix_str); + ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, prefix_str); if (! ret) { vty_out (vty, "%% Inconsistent address and mask%s", VTY_NEWLINE); @@ -4539,10 +4559,11 @@ DEFUN (no_bgp_network_mask_natural, "Specify a network to announce via BGP\n" "Network number\n") { + int idx_ipv4 = 2; int ret; char prefix_str[BUFSIZ]; - ret = netmask_str2prefix_str (argv[2]->arg, NULL, prefix_str); + ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, NULL, prefix_str); if (! ret) { vty_out (vty, "%% Inconsistent address and mask%s", VTY_NEWLINE); @@ -4571,7 +4592,8 @@ DEFUN (ipv6_bgp_network, "Specify a network to announce via BGP\n" "IPv6 prefix /\n") { - return bgp_static_set (vty, vty->index, argv[1]->arg, AFI_IP6, bgp_node_safi(vty), + int idx_ipv6_prefixlen = 1; + return bgp_static_set (vty, vty->index, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, bgp_node_safi(vty), NULL, 0); } @@ -4583,8 +4605,10 @@ DEFUN (ipv6_bgp_network_route_map, "Route-map to modify the attributes\n" "Name of the route map\n") { - return bgp_static_set (vty, vty->index, argv[1]->arg, AFI_IP6, - bgp_node_safi (vty), argv[3]->arg, 0); + int idx_ipv6_prefixlen = 1; + int idx_word = 3; + return bgp_static_set (vty, vty->index, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, + bgp_node_safi (vty), argv[idx_word]->arg, 0); } /* @@ -4611,7 +4635,8 @@ DEFUN (no_ipv6_bgp_network, "Specify a network to announce via BGP\n" "IPv6 prefix /\n") { - return bgp_static_unset (vty, vty->index, argv[2]->arg, AFI_IP6, bgp_node_safi(vty)); + int idx_ipv6_prefixlen = 2; + return bgp_static_unset (vty, vty->index, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, bgp_node_safi(vty)); } @@ -5225,7 +5250,8 @@ DEFUN (aggregate_address, "Configure BGP aggregate entries\n" "Aggregate prefix\n") { - return bgp_aggregate_set (vty, argv[1]->arg, AFI_IP, bgp_node_safi (vty), 0, 0); + int idx_ipv4_prefixlen = 1; + return bgp_aggregate_set (vty, argv[idx_ipv4_prefixlen]->arg, AFI_IP, bgp_node_safi (vty), 0, 0); } DEFUN (aggregate_address_mask, @@ -5235,10 +5261,12 @@ DEFUN (aggregate_address_mask, "Aggregate address\n" "Aggregate mask\n") { + int idx_ipv4 = 1; + int idx_ipv4_2 = 2; int ret; char prefix_str[BUFSIZ]; - ret = netmask_str2prefix_str (argv[1]->arg, argv[2]->arg, prefix_str); + ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, prefix_str); if (! ret) { @@ -5257,7 +5285,8 @@ DEFUN (aggregate_address_summary_only, "Aggregate prefix\n" "Filter more specific routes from updates\n") { - return bgp_aggregate_set (vty, argv[1]->arg, AFI_IP, bgp_node_safi (vty), + int idx_ipv4_prefixlen = 1; + return bgp_aggregate_set (vty, argv[idx_ipv4_prefixlen]->arg, AFI_IP, bgp_node_safi (vty), AGGREGATE_SUMMARY_ONLY, 0); } @@ -5269,10 +5298,12 @@ DEFUN (aggregate_address_mask_summary_only, "Aggregate mask\n" "Filter more specific routes from updates\n") { + int idx_ipv4 = 1; + int idx_ipv4_2 = 2; int ret; char prefix_str[BUFSIZ]; - ret = netmask_str2prefix_str (argv[1]->arg, argv[2]->arg, prefix_str); + ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, prefix_str); if (! ret) { @@ -5291,7 +5322,8 @@ DEFUN (aggregate_address_as_set, "Aggregate prefix\n" "Generate AS set path information\n") { - return bgp_aggregate_set (vty, argv[1]->arg, AFI_IP, bgp_node_safi (vty), + int idx_ipv4_prefixlen = 1; + return bgp_aggregate_set (vty, argv[idx_ipv4_prefixlen]->arg, AFI_IP, bgp_node_safi (vty), 0, AGGREGATE_AS_SET); } @@ -5303,10 +5335,12 @@ DEFUN (aggregate_address_mask_as_set, "Aggregate mask\n" "Generate AS set path information\n") { + int idx_ipv4 = 1; + int idx_ipv4_2 = 2; int ret; char prefix_str[BUFSIZ]; - ret = netmask_str2prefix_str (argv[1]->arg, argv[2]->arg, prefix_str); + ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, prefix_str); if (! ret) { @@ -5336,7 +5370,8 @@ DEFUN (aggregate_address_as_set_summary, "Generate AS set path information\n" "Filter more specific routes from updates\n") { - return bgp_aggregate_set (vty, argv[1]->arg, AFI_IP, bgp_node_safi (vty), + int idx_ipv4_prefixlen = 1; + return bgp_aggregate_set (vty, argv[idx_ipv4_prefixlen]->arg, AFI_IP, bgp_node_safi (vty), AGGREGATE_SUMMARY_ONLY, AGGREGATE_AS_SET); } @@ -5360,10 +5395,12 @@ DEFUN (aggregate_address_mask_as_set_summary, "Generate AS set path information\n" "Filter more specific routes from updates\n") { + int idx_ipv4 = 1; + int idx_ipv4_2 = 2; int ret; char prefix_str[BUFSIZ]; - ret = netmask_str2prefix_str (argv[1]->arg, argv[2]->arg, prefix_str); + ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, prefix_str); if (! ret) { @@ -5412,7 +5449,8 @@ DEFUN (no_aggregate_address, "Configure BGP aggregate entries\n" "Aggregate prefix\n") { - return bgp_aggregate_unset (vty, argv[2]->arg, AFI_IP, bgp_node_safi (vty)); + int idx_ipv4_prefixlen = 2; + return bgp_aggregate_unset (vty, argv[idx_ipv4_prefixlen]->arg, AFI_IP, bgp_node_safi (vty)); } @@ -5460,10 +5498,12 @@ DEFUN (no_aggregate_address_mask, "Aggregate address\n" "Aggregate mask\n") { + int idx_ipv4 = 2; + int idx_ipv4_2 = 3; int ret; char prefix_str[BUFSIZ]; - ret = netmask_str2prefix_str (argv[2]->arg, argv[3]->arg, prefix_str); + ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, prefix_str); if (! ret) { @@ -5494,7 +5534,8 @@ DEFUN (ipv6_aggregate_address, "Configure BGP aggregate entries\n" "Aggregate prefix\n") { - return bgp_aggregate_set (vty, argv[1]->arg, AFI_IP6, SAFI_UNICAST, 0, 0); + int idx_ipv6_prefixlen = 1; + return bgp_aggregate_set (vty, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, 0, 0); } /* @@ -5514,7 +5555,8 @@ DEFUN (ipv6_aggregate_address_summary_only, "Aggregate prefix\n" "Filter more specific routes from updates\n") { - return bgp_aggregate_set (vty, argv[1]->arg, AFI_IP6, SAFI_UNICAST, + int idx_ipv6_prefixlen = 1; + return bgp_aggregate_set (vty, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, AGGREGATE_SUMMARY_ONLY, 0); } @@ -5535,7 +5577,8 @@ DEFUN (no_ipv6_aggregate_address, "Configure BGP aggregate entries\n" "Aggregate prefix\n") { - return bgp_aggregate_unset (vty, argv[2]->arg, AFI_IP6, SAFI_UNICAST); + int idx_ipv6_prefixlen = 2; + return bgp_aggregate_unset (vty, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST); } /* @@ -5557,7 +5600,8 @@ DEFUN (no_ipv6_aggregate_address_summary_only, "Aggregate prefix\n" "Filter more specific routes from updates\n") { - return bgp_aggregate_unset (vty, argv[2]->arg, AFI_IP6, SAFI_UNICAST); + int idx_ipv6_prefixlen = 2; + return bgp_aggregate_unset (vty, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST); } @@ -7972,9 +8016,10 @@ DEFUN (show_ip_bgp_ipv4, "Address Family modifier\n" "JavaScript Object Notation\n") { + int idx_safi = 4; u_char uj = use_json(argc, argv); - if (strncmp (argv[4]->arg, "m", 1) == 0) + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_show (vty, NULL, AFI_IP, SAFI_MULTICAST, bgp_show_type_normal, NULL, uj); @@ -7991,7 +8036,8 @@ DEFUN (show_ip_bgp_route, "Network in the BGP routing table to display\n" "JavaScript Object Notation\n") { - return bgp_show_route (vty, NULL, argv[3]->arg, AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json(argc, argv)); + int idx_ipv4 = 3; + return bgp_show_route (vty, NULL, argv[idx_ipv4]->arg, AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json(argc, argv)); } DEFUN (show_ip_bgp_route_pathtype, @@ -8005,12 +8051,14 @@ DEFUN (show_ip_bgp_route_pathtype, "Display only multipaths\n" "JavaScript Object Notation\n") { + int idx_ipv4 = 3; + int idx_bestpath = 4; u_char uj = use_json(argc, argv); - if (strncmp (argv[4]->arg, "b", 1) == 0) - return bgp_show_route (vty, NULL, argv[3]->arg, AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, uj); + if (strncmp (argv[idx_bestpath]->arg, "b", 1) == 0) + return bgp_show_route (vty, NULL, argv[idx_ipv4]->arg, AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, uj); else - return bgp_show_route (vty, NULL, argv[3]->arg, AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, uj); + return bgp_show_route (vty, NULL, argv[idx_ipv4]->arg, AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, uj); } DEFUN (show_bgp_ipv4_safi_route_pathtype, @@ -8026,18 +8074,21 @@ DEFUN (show_bgp_ipv4_safi_route_pathtype, "Display only multipaths\n" "JavaScript Object Notation\n") { + int idx_safi = 3; + int idx_ipv4 = 4; + int idx_bestpath = 5; u_char uj = use_json(argc, argv); - if (strncmp (argv[3]->arg, "m", 1) == 0) - if (strncmp (argv[5]->arg, "b", 1) == 0) - return bgp_show_route (vty, NULL, argv[4]->arg, AFI_IP, SAFI_MULTICAST, NULL, 0, BGP_PATH_BESTPATH, uj); + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + if (strncmp (argv[idx_bestpath]->arg, "b", 1) == 0) + return bgp_show_route (vty, NULL, argv[idx_ipv4]->arg, AFI_IP, SAFI_MULTICAST, NULL, 0, BGP_PATH_BESTPATH, uj); else - return bgp_show_route (vty, NULL, argv[4]->arg, AFI_IP, SAFI_MULTICAST, NULL, 0, BGP_PATH_MULTIPATH, uj); + return bgp_show_route (vty, NULL, argv[idx_ipv4]->arg, AFI_IP, SAFI_MULTICAST, NULL, 0, BGP_PATH_MULTIPATH, uj); else - if (strncmp (argv[5]->arg, "b", 1) == 0) - return bgp_show_route (vty, NULL, argv[4]->arg, AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, uj); + if (strncmp (argv[idx_bestpath]->arg, "b", 1) == 0) + return bgp_show_route (vty, NULL, argv[idx_ipv4]->arg, AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, uj); else - return bgp_show_route (vty, NULL, argv[4]->arg, AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, uj); + return bgp_show_route (vty, NULL, argv[idx_ipv4]->arg, AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, uj); } DEFUN (show_bgp_ipv4_prefix, @@ -8049,7 +8100,8 @@ DEFUN (show_bgp_ipv4_prefix, "IP prefix /, e.g., 35.0.0.0/8\n" JSON_STR) { - return bgp_show_route (vty, NULL, argv[3]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json (argc, argv)); + int idx_ipv4_prefixlen = 3; + return bgp_show_route (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json (argc, argv)); } DEFUN (show_bgp_ipv6_route, @@ -8061,7 +8113,8 @@ DEFUN (show_bgp_ipv6_route, "Network in the BGP routing table to display\n" JSON_STR) { - return bgp_show_route (vty, NULL, argv[3]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json (argc, argv)); + int idx_ipv6 = 3; + return bgp_show_route (vty, NULL, argv[idx_ipv6]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json (argc, argv)); } DEFUN (show_bgp_ipv6_prefix, @@ -8073,7 +8126,8 @@ DEFUN (show_bgp_ipv6_prefix, "IPv6 prefix /\n" JSON_STR) { - return bgp_show_route (vty, NULL, argv[3]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json (argc,argv)); + int idx_ipv6_prefixlen = 3; + return bgp_show_route (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json (argc,argv)); } /* @@ -8100,12 +8154,14 @@ DEFUN (show_ip_bgp_ipv4_route, "Network in the BGP routing table to display\n" "JavaScript Object Notation\n") { + int idx_safi = 4; + int idx_ipv4 = 5; u_char uj = use_json(argc, argv); - if (strncmp (argv[4]->arg, "m", 1) == 0) - return bgp_show_route (vty, NULL, argv[5]->arg, AFI_IP, SAFI_MULTICAST, NULL, 0, BGP_PATH_ALL, uj); + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_show_route (vty, NULL, argv[idx_ipv4]->arg, AFI_IP, SAFI_MULTICAST, NULL, 0, BGP_PATH_ALL, uj); - return bgp_show_route (vty, NULL, argv[5]->arg, AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, uj); + return bgp_show_route (vty, NULL, argv[idx_ipv4]->arg, AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, uj); } @@ -8120,7 +8176,8 @@ DEFUN (show_ip_bgp_vpnv4_all_route, "Network in the BGP routing table to display\n" "JavaScript Object Notation\n") { - return bgp_show_route (vty, NULL, argv[5]->arg, AFI_IP, SAFI_MPLS_VPN, NULL, 0, BGP_PATH_ALL, use_json(argc, argv)); + int idx_ipv4 = 5; + return bgp_show_route (vty, NULL, argv[idx_ipv4]->arg, AFI_IP, SAFI_MPLS_VPN, NULL, 0, BGP_PATH_ALL, use_json(argc, argv)); } DEFUN (show_bgp_ipv4_vpn_route, @@ -8133,7 +8190,8 @@ DEFUN (show_bgp_ipv4_vpn_route, "Network in the BGP routing table to display\n" JSON_STR) { - return bgp_show_route (vty, NULL, argv[4]->arg, AFI_IP, SAFI_MPLS_VPN, NULL, 0, BGP_PATH_ALL, use_json (argc, argv)); + int idx_ipv4 = 4; + return bgp_show_route (vty, NULL, argv[idx_ipv4]->arg, AFI_IP, SAFI_MPLS_VPN, NULL, 0, BGP_PATH_ALL, use_json (argc, argv)); } DEFUN (show_bgp_ipv6_vpn_route, @@ -8146,7 +8204,8 @@ DEFUN (show_bgp_ipv6_vpn_route, "Network in the BGP routing table to display\n" JSON_STR) { - return bgp_show_route (vty, NULL, argv[4]->arg, AFI_IP6, SAFI_MPLS_VPN, NULL, 0, BGP_PATH_ALL, use_json (argc, argv)); + int idx_ipv6 = 4; + return bgp_show_route (vty, NULL, argv[idx_ipv6]->arg, AFI_IP6, SAFI_MPLS_VPN, NULL, 0, BGP_PATH_ALL, use_json (argc, argv)); } DEFUN (show_bgp_ipv4_vpn_rd_route, @@ -8161,16 +8220,18 @@ DEFUN (show_bgp_ipv4_vpn_rd_route, "Network in the BGP routing table to display\n" JSON_STR) { + int idx_ext_community = 5; + int idx_ipv4 = 6; int ret; struct prefix_rd prd; - ret = str2prefix_rd (argv[5]->arg, &prd); + ret = str2prefix_rd (argv[idx_ext_community]->arg, &prd); if (! ret) { vty_out (vty, "%% Malformed Route Distinguisher%s", VTY_NEWLINE); return CMD_WARNING; } - return bgp_show_route (vty, NULL, argv[6]->arg, AFI_IP, SAFI_MPLS_VPN, &prd, 0, BGP_PATH_ALL, use_json (argc, argv)); + return bgp_show_route (vty, NULL, argv[idx_ipv4]->arg, AFI_IP, SAFI_MPLS_VPN, &prd, 0, BGP_PATH_ALL, use_json (argc, argv)); } DEFUN (show_bgp_ipv6_vpn_rd_route, @@ -8185,16 +8246,18 @@ DEFUN (show_bgp_ipv6_vpn_rd_route, "Network in the BGP routing table to display\n" JSON_STR) { + int idx_ext_community = 5; + int idx_ipv6 = 6; int ret; struct prefix_rd prd; - ret = str2prefix_rd (argv[5]->arg, &prd); + ret = str2prefix_rd (argv[idx_ext_community]->arg, &prd); if (! ret) { vty_out (vty, "%% Malformed Route Distinguisher%s", VTY_NEWLINE); return CMD_WARNING; } - return bgp_show_route (vty, NULL, argv[6]->arg, AFI_IP6, SAFI_MPLS_VPN, &prd, 0, BGP_PATH_ALL, use_json (argc, argv)); + return bgp_show_route (vty, NULL, argv[idx_ipv6]->arg, AFI_IP6, SAFI_MPLS_VPN, &prd, 0, BGP_PATH_ALL, use_json (argc, argv)); } DEFUN (show_ip_bgp_vpnv4_rd_route, @@ -8209,17 +8272,19 @@ DEFUN (show_ip_bgp_vpnv4_rd_route, "Network in the BGP routing table to display\n" "JavaScript Object Notation\n") { + int idx_ext_community = 5; + int idx_ipv4 = 6; int ret; struct prefix_rd prd; u_char uj= use_json(argc, argv); - ret = str2prefix_rd (argv[5]->arg, &prd); + ret = str2prefix_rd (argv[idx_ext_community]->arg, &prd); if (! ret) { vty_out (vty, "%% Malformed Route Distinguisher%s", VTY_NEWLINE); return CMD_WARNING; } - return bgp_show_route (vty, NULL, argv[6]->arg, AFI_IP, SAFI_MPLS_VPN, &prd, 0, BGP_PATH_ALL, uj); + return bgp_show_route (vty, NULL, argv[idx_ipv4]->arg, AFI_IP, SAFI_MPLS_VPN, &prd, 0, BGP_PATH_ALL, uj); } DEFUN (show_ip_bgp_prefix, @@ -8231,7 +8296,8 @@ DEFUN (show_ip_bgp_prefix, "IP prefix /, e.g., 35.0.0.0/8\n" "JavaScript Object Notation\n") { - return bgp_show_route (vty, NULL, argv[3]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json(argc, argv)); + int idx_ipv4_prefixlen = 3; + return bgp_show_route (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json(argc, argv)); } DEFUN (show_ip_bgp_prefix_pathtype, @@ -8245,11 +8311,13 @@ DEFUN (show_ip_bgp_prefix_pathtype, "Display only multipaths\n" "JavaScript Object Notation\n") { + int idx_ipv4_prefixlen = 3; + int idx_bestpath = 4; u_char uj = use_json(argc, argv); - if (strncmp (argv[4]->arg, "b", 1) == 0) - return bgp_show_route (vty, NULL, argv[3]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, uj); + if (strncmp (argv[idx_bestpath]->arg, "b", 1) == 0) + return bgp_show_route (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, uj); else - return bgp_show_route (vty, NULL, argv[3]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, uj); + return bgp_show_route (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, uj); } /* @@ -8276,12 +8344,14 @@ DEFUN (show_ip_bgp_ipv4_prefix, "IP prefix /, e.g., 35.0.0.0/8\n" "JavaScript Object Notation\n") { + int idx_safi = 4; + int idx_ipv4_prefixlen = 5; u_char uj = use_json(argc, argv); - if (strncmp (argv[4]->arg, "m", 1) == 0) - return bgp_show_route (vty, NULL, argv[5]->arg, AFI_IP, SAFI_MULTICAST, NULL, 1, BGP_PATH_ALL, uj); + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_show_route (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_MULTICAST, NULL, 1, BGP_PATH_ALL, uj); - return bgp_show_route (vty, NULL, argv[5]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, uj); + return bgp_show_route (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, uj); } @@ -8313,18 +8383,21 @@ DEFUN (show_ip_bgp_ipv4_prefix_pathtype, "Display only multipaths\n" "JavaScript Object Notation\n") { + int idx_safi = 4; + int idx_ipv4_prefixlen = 5; + int idx_bestpath = 6; u_char uj = use_json(argc, argv); - if (strncmp (argv[4]->arg, "m", 1) == 0) - if (strncmp (argv[6]->arg, "b", 1) == 0) - return bgp_show_route (vty, NULL, argv[5]->arg, AFI_IP, SAFI_MULTICAST, NULL, 1, BGP_PATH_BESTPATH, uj); + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + if (strncmp (argv[idx_bestpath]->arg, "b", 1) == 0) + return bgp_show_route (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_MULTICAST, NULL, 1, BGP_PATH_BESTPATH, uj); else - return bgp_show_route (vty, NULL, argv[5]->arg, AFI_IP, SAFI_MULTICAST, NULL, 1, BGP_PATH_MULTIPATH, uj); + return bgp_show_route (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_MULTICAST, NULL, 1, BGP_PATH_MULTIPATH, uj); else - if (strncmp (argv[6]->arg, "b", 1) == 0) - return bgp_show_route (vty, NULL, argv[5]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, uj); + if (strncmp (argv[idx_bestpath]->arg, "b", 1) == 0) + return bgp_show_route (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, uj); else - return bgp_show_route (vty, NULL, argv[5]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, uj); + return bgp_show_route (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, uj); } @@ -8339,7 +8412,8 @@ DEFUN (show_ip_bgp_vpnv4_all_prefix, "IP prefix /, e.g., 35.0.0.0/8\n" "JavaScript Object Notation\n") { - return bgp_show_route (vty, NULL, argv[5]->arg, AFI_IP, SAFI_MPLS_VPN, NULL, 1, BGP_PATH_ALL, use_json(argc, argv)); + int idx_ipv4_prefixlen = 5; + return bgp_show_route (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_MPLS_VPN, NULL, 1, BGP_PATH_ALL, use_json(argc, argv)); } DEFUN (show_ip_bgp_vpnv4_rd_prefix, @@ -8354,16 +8428,18 @@ DEFUN (show_ip_bgp_vpnv4_rd_prefix, "IP prefix /, e.g., 35.0.0.0/8\n" "JavaScript Object Notation\n") { + int idx_ext_community = 5; + int idx_ipv4_prefixlen = 6; int ret; struct prefix_rd prd; - ret = str2prefix_rd (argv[5]->arg, &prd); + ret = str2prefix_rd (argv[idx_ext_community]->arg, &prd); if (! ret) { vty_out (vty, "%% Malformed Route Distinguisher%s", VTY_NEWLINE); return CMD_WARNING; } - return bgp_show_route (vty, NULL, argv[6]->arg, AFI_IP, SAFI_MPLS_VPN, &prd, 0, BGP_PATH_ALL, use_json(argc, argv)); + return bgp_show_route (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_MPLS_VPN, &prd, 0, BGP_PATH_ALL, use_json(argc, argv)); } DEFUN (show_ip_bgp_view, @@ -8375,13 +8451,14 @@ DEFUN (show_ip_bgp_view, BGP_INSTANCE_HELP_STR "JavaScript Object Notation\n") { + int idx_word = 4; struct bgp *bgp; /* BGP structure lookup. */ - bgp = bgp_lookup_by_name (argv[4]->arg); + bgp = bgp_lookup_by_name (argv[idx_word]->arg); if (bgp == NULL) { - vty_out (vty, "Can't find BGP instance %s%s", argv[4]->arg, VTY_NEWLINE); + vty_out (vty, "Can't find BGP instance %s%s", argv[idx_word]->arg, VTY_NEWLINE); return CMD_WARNING; } @@ -8413,7 +8490,9 @@ DEFUN (show_ip_bgp_instance_route, "Network in the BGP routing table to display\n" "JavaScript Object Notation\n") { - return bgp_show_route (vty, argv[4]->arg, argv[5]->arg, AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json(argc, argv)); + int idx_word = 4; + int idx_ipv4 = 5; + return bgp_show_route (vty, argv[idx_word]->arg, argv[idx_ipv4]->arg, AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json(argc, argv)); } DEFUN (show_ip_bgp_instance_route_pathtype, @@ -8428,12 +8507,15 @@ DEFUN (show_ip_bgp_instance_route_pathtype, "Display only multipaths\n" "JavaScript Object Notation\n") { + int idx_word = 4; + int idx_ipv4 = 5; + int idx_bestpath = 6; u_char uj = use_json(argc, argv); - if (strncmp (argv[6]->arg, "b", 1) == 0) - return bgp_show_route (vty, argv[4]->arg, argv[5]->arg, AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, uj); + if (strncmp (argv[idx_bestpath]->arg, "b", 1) == 0) + return bgp_show_route (vty, argv[idx_word]->arg, argv[idx_ipv4]->arg, AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, uj); else - return bgp_show_route (vty, argv[4]->arg, argv[5]->arg, AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, uj); + return bgp_show_route (vty, argv[idx_word]->arg, argv[idx_ipv4]->arg, AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, uj); } DEFUN (show_ip_bgp_instance_prefix, @@ -8446,7 +8528,9 @@ DEFUN (show_ip_bgp_instance_prefix, "IP prefix /, e.g., 35.0.0.0/8\n" "JavaScript Object Notation\n") { - return bgp_show_route (vty, argv[4]->arg, argv[5]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json(argc, argv)); + int idx_word = 4; + int idx_ipv4_prefixlen = 5; + return bgp_show_route (vty, argv[idx_word]->arg, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json(argc, argv)); } DEFUN (show_ip_bgp_instance_prefix_pathtype, @@ -8461,11 +8545,14 @@ DEFUN (show_ip_bgp_instance_prefix_pathtype, "Display only multipaths\n" "JavaScript Object Notation\n") { + int idx_word = 4; + int idx_ipv4_prefixlen = 5; + int idx_bestpath = 6; u_char uj = use_json(argc, argv); - if (strncmp (argv[6]->arg, "b", 1) == 0) - return bgp_show_route (vty, argv[4]->arg, argv[5]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, uj); + if (strncmp (argv[idx_bestpath]->arg, "b", 1) == 0) + return bgp_show_route (vty, argv[idx_word]->arg, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, uj); else - return bgp_show_route (vty, argv[4]->arg, argv[5]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, uj); + return bgp_show_route (vty, argv[idx_word]->arg, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, uj); } #ifdef HAVE_IPV6 @@ -8500,8 +8587,9 @@ DEFUN (show_bgp_ipv6_safi, "Address Family modifier\n" "JavaScript Object Notation\n") { + int idx_safi = 3; u_char uj = use_json(argc, argv); - if (strncmp (argv[3]->arg, "m", 1) == 0) + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_show (vty, NULL, AFI_IP6, SAFI_MULTICAST, bgp_show_type_normal, NULL, uj); @@ -8538,7 +8626,8 @@ DEFUN (show_bgp_route, "Network in the BGP routing table to display\n" "JavaScript Object Notation\n") { - return bgp_show_route (vty, NULL, argv[2]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json(argc, argv)); + int idx_ipv6 = 2; + return bgp_show_route (vty, NULL, argv[idx_ipv6]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json(argc, argv)); } DEFUN (show_bgp_ipv6_safi_route, @@ -8552,11 +8641,13 @@ DEFUN (show_bgp_ipv6_safi_route, "Network in the BGP routing table to display\n" "JavaScript Object Notation\n") { + int idx_safi = 3; + int idx_ipv6 = 4; u_char uj = use_json(argc, argv); - if (strncmp (argv[3]->arg, "m", 1) == 0) - return bgp_show_route (vty, NULL, argv[4]->arg, AFI_IP6, SAFI_MULTICAST, NULL, 0, BGP_PATH_ALL, uj); + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_show_route (vty, NULL, argv[idx_ipv6]->arg, AFI_IP6, SAFI_MULTICAST, NULL, 0, BGP_PATH_ALL, uj); - return bgp_show_route (vty, NULL, argv[4]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, uj); + return bgp_show_route (vty, NULL, argv[idx_ipv6]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, uj); } /* @@ -8581,11 +8672,13 @@ DEFUN (show_bgp_route_pathtype, "Display only multipaths\n" "JavaScript Object Notation\n") { + int idx_ipv6 = 2; + int idx_bestpath = 3; u_char uj = use_json(argc, argv); - if (strncmp (argv[3]->arg, "b", 1) == 0) - return bgp_show_route (vty, NULL, argv[2]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, uj); + if (strncmp (argv[idx_bestpath]->arg, "b", 1) == 0) + return bgp_show_route (vty, NULL, argv[idx_ipv6]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, uj); else - return bgp_show_route (vty, NULL, argv[2]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, uj); + return bgp_show_route (vty, NULL, argv[idx_ipv6]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, uj); } @@ -8602,17 +8695,20 @@ DEFUN (show_bgp_ipv6_safi_route_pathtype, "Display only multipaths\n" "JavaScript Object Notation\n") { + int idx_safi = 3; + int idx_ipv6 = 4; + int idx_bestpath = 5; u_char uj = use_json(argc, argv); - if (strncmp (argv[3]->arg, "m", 1) == 0) - if (strncmp (argv[5]->arg, "b", 1) == 0) - return bgp_show_route (vty, NULL, argv[4]->arg, AFI_IP6, SAFI_MULTICAST, NULL, 0, BGP_PATH_BESTPATH, uj); + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + if (strncmp (argv[idx_bestpath]->arg, "b", 1) == 0) + return bgp_show_route (vty, NULL, argv[idx_ipv6]->arg, AFI_IP6, SAFI_MULTICAST, NULL, 0, BGP_PATH_BESTPATH, uj); else - return bgp_show_route (vty, NULL, argv[4]->arg, AFI_IP6, SAFI_MULTICAST, NULL, 0, BGP_PATH_MULTIPATH, uj); + return bgp_show_route (vty, NULL, argv[idx_ipv6]->arg, AFI_IP6, SAFI_MULTICAST, NULL, 0, BGP_PATH_MULTIPATH, uj); else - if (strncmp (argv[5]->arg, "b", 1) == 0) - return bgp_show_route (vty, NULL, argv[4]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, uj); + if (strncmp (argv[idx_bestpath]->arg, "b", 1) == 0) + return bgp_show_route (vty, NULL, argv[idx_ipv6]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, uj); else - return bgp_show_route (vty, NULL, argv[4]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, uj); + return bgp_show_route (vty, NULL, argv[idx_ipv6]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, uj); } /* old command */ @@ -8625,8 +8721,9 @@ DEFUN (show_ipv6_bgp_route, "Network in the BGP routing table to display\n" "JavaScript Object Notation\n") { + int idx_ipv6 = 3; bgp_show_ipv6_bgp_deprecate_warning(vty); - return bgp_show_route (vty, NULL, argv[3]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json(argc, argv)); + return bgp_show_route (vty, NULL, argv[idx_ipv6]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json(argc, argv)); } DEFUN (show_bgp_prefix, @@ -8637,7 +8734,8 @@ DEFUN (show_bgp_prefix, "IPv6 prefix /\n" "JavaScript Object Notation\n") { - return bgp_show_route (vty, NULL, argv[2]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json(argc, argv)); + int idx_ipv6_prefixlen = 2; + return bgp_show_route (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json(argc, argv)); } DEFUN (show_bgp_ipv6_safi_prefix, @@ -8651,11 +8749,13 @@ DEFUN (show_bgp_ipv6_safi_prefix, "IPv6 prefix /, e.g., 3ffe::/16\n" "JavaScript Object Notation\n") { + int idx_safi = 3; + int idx_ipv6_prefixlen = 4; u_char uj = use_json(argc, argv); - if (strncmp (argv[3]->arg, "m", 1) == 0) - return bgp_show_route (vty, NULL, argv[4]->arg, AFI_IP6, SAFI_MULTICAST, NULL, 1, BGP_PATH_ALL, uj); + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_show_route (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_MULTICAST, NULL, 1, BGP_PATH_ALL, uj); - return bgp_show_route (vty, NULL, argv[4]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, uj); + return bgp_show_route (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, uj); } /* @@ -8680,11 +8780,13 @@ DEFUN (show_bgp_prefix_pathtype, "Display only multipaths\n" "JavaScript Object Notation\n") { + int idx_ipv6_prefixlen = 2; + int idx_bestpath = 3; u_char uj = use_json(argc, argv); - if (strncmp (argv[3]->arg, "b", 1) == 0) - return bgp_show_route (vty, NULL, argv[2]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, uj); + if (strncmp (argv[idx_bestpath]->arg, "b", 1) == 0) + return bgp_show_route (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, uj); else - return bgp_show_route (vty, NULL, argv[2]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, uj); + return bgp_show_route (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, uj); } @@ -8701,17 +8803,20 @@ DEFUN (show_bgp_ipv6_safi_prefix_pathtype, "Display only multipaths\n" "JavaScript Object Notation\n") { + int idx_safi = 3; + int idx_ipv6_prefixlen = 4; + int idx_bestpath = 5; u_char uj = use_json(argc, argv); - if (strncmp (argv[3]->arg, "m", 1) == 0) - if (strncmp (argv[5]->arg, "b", 1) == 0) - return bgp_show_route (vty, NULL, argv[4]->arg, AFI_IP6, SAFI_MULTICAST, NULL, 1, BGP_PATH_BESTPATH, uj); + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + if (strncmp (argv[idx_bestpath]->arg, "b", 1) == 0) + return bgp_show_route (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_MULTICAST, NULL, 1, BGP_PATH_BESTPATH, uj); else - return bgp_show_route (vty, NULL, argv[4]->arg, AFI_IP6, SAFI_MULTICAST, NULL, 1, BGP_PATH_MULTIPATH, uj); + return bgp_show_route (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_MULTICAST, NULL, 1, BGP_PATH_MULTIPATH, uj); else - if (strncmp (argv[5]->arg, "b", 1) == 0) - return bgp_show_route (vty, NULL, argv[4]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, uj); + if (strncmp (argv[idx_bestpath]->arg, "b", 1) == 0) + return bgp_show_route (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, uj); else - return bgp_show_route (vty, NULL, argv[4]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, uj); + return bgp_show_route (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, uj); } /* old command */ @@ -8724,8 +8829,9 @@ DEFUN (show_ipv6_bgp_prefix, "IPv6 prefix /, e.g., 3ffe::/16\n" "JavaScript Object Notation\n") { + int idx_ipv6_prefixlen = 3; bgp_show_ipv6_bgp_deprecate_warning(vty); - return bgp_show_route (vty, NULL, argv[3]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json(argc, argv)); + return bgp_show_route (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json(argc, argv)); } /* @@ -8746,13 +8852,14 @@ DEFUN (show_bgp_view, BGP_INSTANCE_HELP_STR "JavaScript Object Notation\n") { + int idx_word = 3; struct bgp *bgp; /* BGP structure lookup. */ - bgp = bgp_lookup_by_name (argv[3]->arg); + bgp = bgp_lookup_by_name (argv[idx_word]->arg); if (bgp == NULL) { - vty_out (vty, "Can't find BGP instance %s%s", argv[3]->arg, VTY_NEWLINE); + vty_out (vty, "Can't find BGP instance %s%s", argv[idx_word]->arg, VTY_NEWLINE); return CMD_WARNING; } @@ -8794,7 +8901,9 @@ DEFUN (show_bgp_instance_route, "Network in the BGP routing table to display\n" "JavaScript Object Notation\n") { - return bgp_show_route (vty, argv[3]->arg, argv[4]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json(argc, argv)); + int idx_word = 3; + int idx_ipv6 = 4; + return bgp_show_route (vty, argv[idx_word]->arg, argv[idx_ipv6]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json(argc, argv)); } @@ -8822,11 +8931,14 @@ DEFUN (show_bgp_instance_route_pathtype, "Display only multipaths\n" "JavaScript Object Notation\n") { + int idx_word = 3; + int idx_ipv6 = 4; + int idx_bestpath = 5; u_char uj = use_json(argc, argv); - if (strncmp (argv[5]->arg, "b", 1) == 0) - return bgp_show_route (vty, argv[3]->arg, argv[4]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, uj); + if (strncmp (argv[idx_bestpath]->arg, "b", 1) == 0) + return bgp_show_route (vty, argv[idx_word]->arg, argv[idx_ipv6]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, uj); else - return bgp_show_route (vty, argv[3]->arg, argv[4]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, uj); + return bgp_show_route (vty, argv[idx_word]->arg, argv[idx_ipv6]->arg, AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, uj); } @@ -8850,7 +8962,9 @@ DEFUN (show_bgp_instance_prefix, "IPv6 prefix /\n" "JavaScript Object Notation\n") { - return bgp_show_route (vty, argv[3]->arg, argv[4]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json(argc, argv)); + int idx_word = 3; + int idx_ipv6_prefixlen = 4; + return bgp_show_route (vty, argv[idx_word]->arg, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json(argc, argv)); } @@ -8878,11 +8992,14 @@ DEFUN (show_bgp_instance_prefix_pathtype, "Display only multipaths\n" "JavaScript Object Notation\n") { + int idx_word = 3; + int idx_ipv6_prefixlen = 4; + int idx_bestpath = 5; u_char uj = use_json(argc, argv); - if (strncmp (argv[5]->arg, "b", 1) == 0) - return bgp_show_route (vty, argv[3]->arg, argv[4]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, uj); + if (strncmp (argv[idx_bestpath]->arg, "b", 1) == 0) + return bgp_show_route (vty, argv[idx_word]->arg, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, uj); else - return bgp_show_route (vty, argv[3]->arg, argv[4]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, uj); + return bgp_show_route (vty, argv[idx_word]->arg, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, uj); } @@ -8906,7 +9023,9 @@ DEFUN (show_bgp_instance_prefix_list, "Display routes conforming to the prefix-list\n" "IPv6 prefix-list name\n") { - return bgp_show_prefix_list (vty, argv[3]->arg, argv[5]->arg, AFI_IP6, SAFI_UNICAST, + int idx_word = 3; + int idx_word_2 = 5; + return bgp_show_prefix_list (vty, argv[idx_word]->arg, argv[idx_word_2]->arg, AFI_IP6, SAFI_UNICAST, bgp_show_type_prefix_list); } @@ -8931,7 +9050,9 @@ DEFUN (show_bgp_instance_filter_list, "Display routes conforming to the filter-list\n" "Regular expression access list name\n") { - return bgp_show_filter_list (vty, argv[3]->arg, argv[5]->arg, AFI_IP6, SAFI_UNICAST, + int idx_word = 3; + int idx_word_2 = 5; + return bgp_show_filter_list (vty, argv[idx_word]->arg, argv[idx_word_2]->arg, AFI_IP6, SAFI_UNICAST, bgp_show_type_filter_list); } @@ -8956,7 +9077,9 @@ DEFUN (show_bgp_instance_route_map, "Display routes matching the route-map\n" "A route-map to match on\n") { - return bgp_show_route_map (vty, argv[3]->arg, argv[5]->arg, AFI_IP6, SAFI_UNICAST, + int idx_word = 3; + int idx_word_2 = 5; + return bgp_show_route_map (vty, argv[idx_word]->arg, argv[idx_word_2]->arg, AFI_IP6, SAFI_UNICAST, bgp_show_type_route_map); } @@ -8983,7 +9106,9 @@ DEFUN (show_bgp_instance_community_list, "community-list number\n" "community-list name\n") { - return bgp_show_community_list (vty, argv[3]->arg, argv[5]->arg, 0, AFI_IP6, SAFI_UNICAST); + int idx_word = 3; + int idx_comm_list = 5; + return bgp_show_community_list (vty, argv[idx_word]->arg, argv[idx_comm_list]->arg, 0, AFI_IP6, SAFI_UNICAST); } @@ -9007,7 +9132,9 @@ DEFUN (show_bgp_instance_prefix_longer, "IPv6 prefix /\n" "Display route and more specific routes\n") { - return bgp_show_prefix_longer (vty, argv[3]->arg, argv[4]->arg, AFI_IP6, SAFI_UNICAST, + int idx_word = 3; + int idx_ipv6_prefixlen = 4; + return bgp_show_prefix_longer (vty, argv[idx_word]->arg, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, bgp_show_type_prefix_longer); } @@ -9036,8 +9163,9 @@ DEFUN (show_ipv6_mbgp_route, "Network in the MBGP routing table to display\n" "JavaScript Object Notation\n") { + int idx_ipv6 = 3; bgp_show_ipv6_bgp_deprecate_warning(vty); - return bgp_show_route (vty, NULL, argv[3]->arg, AFI_IP6, SAFI_MULTICAST, NULL, 0, BGP_PATH_ALL, use_json(argc, argv)); + return bgp_show_route (vty, NULL, argv[idx_ipv6]->arg, AFI_IP6, SAFI_MULTICAST, NULL, 0, BGP_PATH_ALL, use_json(argc, argv)); } /* old command */ @@ -9050,8 +9178,9 @@ DEFUN (show_ipv6_mbgp_prefix, "IPv6 prefix /, e.g., 3ffe::/16\n" "JavaScript Object Notation\n") { + int idx_ipv6_prefixlen = 3; bgp_show_ipv6_bgp_deprecate_warning(vty); - return bgp_show_route (vty, NULL, argv[3]->arg, AFI_IP6, SAFI_MULTICAST, NULL, 1, BGP_PATH_ALL, use_json(argc, argv)); + return bgp_show_route (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_MULTICAST, NULL, 1, BGP_PATH_ALL, use_json(argc, argv)); } #endif @@ -9153,7 +9282,8 @@ DEFUN (show_ip_bgp_ipv4_regexp, "Display routes matching the AS path regular expression\n" "A regular-expression to match the BGP AS paths\n") { - if (strncmp (argv[4]->arg, "m", 1) == 0) + int idx_safi = 4; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_show_regexp (vty, argc, argv, AFI_IP, SAFI_MULTICAST, bgp_show_type_regexp); @@ -9250,7 +9380,8 @@ DEFUN (show_ip_bgp_prefix_list, "Display routes conforming to the prefix-list\n" "IP prefix-list name\n") { - return bgp_show_prefix_list (vty, NULL, argv[4]->arg, AFI_IP, SAFI_UNICAST, + int idx_word = 4; + return bgp_show_prefix_list (vty, NULL, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, bgp_show_type_prefix_list); } @@ -9264,7 +9395,9 @@ DEFUN (show_ip_bgp_instance_prefix_list, "Display routes conforming to the prefix-list\n" "IP prefix-list name\n") { - return bgp_show_prefix_list (vty, argv[4]->arg, argv[6]->arg, AFI_IP, SAFI_UNICAST, + int idx_word = 4; + int idx_word_2 = 6; + return bgp_show_prefix_list (vty, argv[idx_word]->arg, argv[idx_word_2]->arg, AFI_IP, SAFI_UNICAST, bgp_show_type_prefix_list); } @@ -9290,7 +9423,8 @@ DEFUN (show_ip_bgp_flap_prefix_list, "Display routes conforming to the prefix-list\n" "IP prefix-list name\n") { - return bgp_show_prefix_list (vty, NULL, argv[5]->arg, AFI_IP, SAFI_UNICAST, + int idx_word = 5; + return bgp_show_prefix_list (vty, NULL, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, bgp_show_type_flap_prefix_list); } @@ -9307,11 +9441,13 @@ DEFUN (show_ip_bgp_ipv4_prefix_list, "Display routes conforming to the prefix-list\n" "IP prefix-list name\n") { - if (strncmp (argv[4]->arg, "m", 1) == 0) - return bgp_show_prefix_list (vty, NULL, argv[6]->arg, AFI_IP, SAFI_MULTICAST, + int idx_safi = 4; + int idx_word = 6; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_show_prefix_list (vty, NULL, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, bgp_show_type_prefix_list); - return bgp_show_prefix_list (vty, NULL, argv[6]->arg, AFI_IP, SAFI_UNICAST, + return bgp_show_prefix_list (vty, NULL, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, bgp_show_type_prefix_list); } @@ -9334,7 +9470,8 @@ DEFUN (show_bgp_prefix_list, "Display routes conforming to the prefix-list\n" "IPv6 prefix-list name\n") { - return bgp_show_prefix_list (vty, NULL, argv[3]->arg, AFI_IP6, SAFI_UNICAST, + int idx_word = 3; + return bgp_show_prefix_list (vty, NULL, argv[idx_word]->arg, AFI_IP6, SAFI_UNICAST, bgp_show_type_prefix_list); } @@ -9349,8 +9486,9 @@ DEFUN (show_ipv6_bgp_prefix_list, "Display routes matching the prefix-list\n" "IPv6 prefix-list name\n") { + int idx_word = 4; bgp_show_ipv6_bgp_deprecate_warning(vty); - return bgp_show_prefix_list (vty, NULL, argv[4]->arg, AFI_IP6, SAFI_UNICAST, + return bgp_show_prefix_list (vty, NULL, argv[idx_word]->arg, AFI_IP6, SAFI_UNICAST, bgp_show_type_prefix_list); } @@ -9364,8 +9502,9 @@ DEFUN (show_ipv6_mbgp_prefix_list, "Display routes matching the prefix-list\n" "IPv6 prefix-list name\n") { + int idx_word = 4; bgp_show_ipv6_bgp_deprecate_warning(vty); - return bgp_show_prefix_list (vty, NULL, argv[4]->arg, AFI_IP6, SAFI_MULTICAST, + return bgp_show_prefix_list (vty, NULL, argv[idx_word]->arg, AFI_IP6, SAFI_MULTICAST, bgp_show_type_prefix_list); } #endif /* HAVE_IPV6 */ @@ -9403,7 +9542,8 @@ DEFUN (show_ip_bgp_filter_list, "Display routes conforming to the filter-list\n" "Regular expression access list name\n") { - return bgp_show_filter_list (vty, NULL, argv[4]->arg, AFI_IP, SAFI_UNICAST, + int idx_word = 4; + return bgp_show_filter_list (vty, NULL, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, bgp_show_type_filter_list); } @@ -9417,7 +9557,9 @@ DEFUN (show_ip_bgp_instance_filter_list, "Display routes conforming to the filter-list\n" "Regular expression access list name\n") { - return bgp_show_filter_list (vty, argv[4]->arg, argv[6]->arg, AFI_IP, SAFI_UNICAST, + int idx_word = 4; + int idx_word_2 = 6; + return bgp_show_filter_list (vty, argv[idx_word]->arg, argv[idx_word_2]->arg, AFI_IP, SAFI_UNICAST, bgp_show_type_filter_list); } @@ -9443,7 +9585,8 @@ DEFUN (show_ip_bgp_flap_filter_list, "Display routes conforming to the filter-list\n" "Regular expression access list name\n") { - return bgp_show_filter_list (vty, NULL, argv[5]->arg, AFI_IP, SAFI_UNICAST, + int idx_word = 5; + return bgp_show_filter_list (vty, NULL, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, bgp_show_type_flap_filter_list); } @@ -9460,11 +9603,13 @@ DEFUN (show_ip_bgp_ipv4_filter_list, "Display routes conforming to the filter-list\n" "Regular expression access list name\n") { - if (strncmp (argv[4]->arg, "m", 1) == 0) - return bgp_show_filter_list (vty, NULL, argv[6]->arg, AFI_IP, SAFI_MULTICAST, + int idx_safi = 4; + int idx_word = 6; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_show_filter_list (vty, NULL, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, bgp_show_type_filter_list); - return bgp_show_filter_list (vty, NULL, argv[6]->arg, AFI_IP, SAFI_UNICAST, + return bgp_show_filter_list (vty, NULL, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, bgp_show_type_filter_list); } @@ -9487,7 +9632,8 @@ DEFUN (show_bgp_filter_list, "Display routes conforming to the filter-list\n" "Regular expression access list name\n") { - return bgp_show_filter_list (vty, NULL, argv[3]->arg, AFI_IP6, SAFI_UNICAST, + int idx_word = 3; + return bgp_show_filter_list (vty, NULL, argv[idx_word]->arg, AFI_IP6, SAFI_UNICAST, bgp_show_type_filter_list); } @@ -9502,8 +9648,9 @@ DEFUN (show_ipv6_bgp_filter_list, "Display routes conforming to the filter-list\n" "Regular expression access list name\n") { + int idx_word = 4; bgp_show_ipv6_bgp_deprecate_warning(vty); - return bgp_show_filter_list (vty, NULL, argv[4]->arg, AFI_IP6, SAFI_UNICAST, + return bgp_show_filter_list (vty, NULL, argv[idx_word]->arg, AFI_IP6, SAFI_UNICAST, bgp_show_type_filter_list); } @@ -9517,8 +9664,9 @@ DEFUN (show_ipv6_mbgp_filter_list, "Display routes conforming to the filter-list\n" "Regular expression access list name\n") { + int idx_word = 4; bgp_show_ipv6_bgp_deprecate_warning(vty); - return bgp_show_filter_list (vty, NULL, argv[4]->arg, AFI_IP6, SAFI_MULTICAST, + return bgp_show_filter_list (vty, NULL, argv[idx_word]->arg, AFI_IP6, SAFI_MULTICAST, bgp_show_type_filter_list); } #endif /* HAVE_IPV6 */ @@ -9548,7 +9696,8 @@ DEFUN (show_ip_bgp_ipv4_dampening_parameters, "Display detailed information about dampening\n" "Display detail of configured dampening parameters\n") { - if (strncmp(argv[4]->arg, "m", 1) == 0) + int idx_safi = 4; + if (strncmp(argv[idx_safi]->arg, "m", 1) == 0) return bgp_show_dampening_parameters (vty, AFI_IP, SAFI_MULTICAST); return bgp_show_dampening_parameters (vty, AFI_IP, SAFI_UNICAST); @@ -9567,7 +9716,8 @@ DEFUN (show_ip_bgp_ipv4_dampening_flap_stats, "Display detailed information about dampening\n" "Display flap statistics of routes\n") { - if (strncmp(argv[4]->arg, "m", 1) == 0) + int idx_safi = 4; + if (strncmp(argv[idx_safi]->arg, "m", 1) == 0) return bgp_show (vty, NULL, AFI_IP, SAFI_MULTICAST, bgp_show_type_flap_statistics, NULL, 0); @@ -9587,7 +9737,8 @@ DEFUN (show_ip_bgp_ipv4_dampening_dampd_paths, "Display detailed information about dampening\n" "Display paths suppressed due to dampening\n") { - if (strncmp(argv[4]->arg, "m", 1) == 0) + int idx_safi = 4; + if (strncmp(argv[idx_safi]->arg, "m", 1) == 0) return bgp_show (vty, NULL, AFI_IP, SAFI_MULTICAST, bgp_show_type_dampend_paths, NULL, 0); @@ -9629,7 +9780,8 @@ DEFUN (show_ip_bgp_route_map, "Display routes matching the route-map\n" "A route-map to match on\n") { - return bgp_show_route_map (vty, NULL, argv[4]->arg, AFI_IP, SAFI_UNICAST, + int idx_word = 4; + return bgp_show_route_map (vty, NULL, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, bgp_show_type_route_map); } @@ -9643,7 +9795,9 @@ DEFUN (show_ip_bgp_instance_route_map, "Display routes matching the route-map\n" "A route-map to match on\n") { - return bgp_show_route_map (vty, argv[4]->arg, argv[6]->arg, AFI_IP, SAFI_UNICAST, + int idx_word = 4; + int idx_word_2 = 6; + return bgp_show_route_map (vty, argv[idx_word]->arg, argv[idx_word_2]->arg, AFI_IP, SAFI_UNICAST, bgp_show_type_route_map); } @@ -9669,7 +9823,8 @@ DEFUN (show_ip_bgp_flap_route_map, "Display routes matching the route-map\n" "A route-map to match on\n") { - return bgp_show_route_map (vty, NULL, argv[5]->arg, AFI_IP, SAFI_UNICAST, + int idx_word = 5; + return bgp_show_route_map (vty, NULL, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, bgp_show_type_flap_route_map); } @@ -9686,11 +9841,13 @@ DEFUN (show_ip_bgp_ipv4_route_map, "Display routes matching the route-map\n" "A route-map to match on\n") { - if (strncmp (argv[4]->arg, "m", 1) == 0) - return bgp_show_route_map (vty, NULL, argv[6]->arg, AFI_IP, SAFI_MULTICAST, + int idx_safi = 4; + int idx_word = 6; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_show_route_map (vty, NULL, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, bgp_show_type_route_map); - return bgp_show_route_map (vty, NULL, argv[6]->arg, AFI_IP, SAFI_UNICAST, + return bgp_show_route_map (vty, NULL, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, bgp_show_type_route_map); } @@ -9712,7 +9869,8 @@ DEFUN (show_bgp_route_map, "Display routes matching the route-map\n" "A route-map to match on\n") { - return bgp_show_route_map (vty, NULL, argv[3]->arg, AFI_IP6, SAFI_UNICAST, + int idx_word = 3; + return bgp_show_route_map (vty, NULL, argv[idx_word]->arg, AFI_IP6, SAFI_UNICAST, bgp_show_type_route_map); } @@ -9765,7 +9923,8 @@ DEFUN (show_ip_bgp_ipv4_cidr_only, "Address Family modifier\n" "Display only routes with non-natural netmasks\n") { - if (strncmp (argv[4]->arg, "m", 1) == 0) + int idx_safi = 4; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_show (vty, NULL, AFI_IP, SAFI_MULTICAST, bgp_show_type_cidr_only, NULL, 0); @@ -9796,7 +9955,8 @@ DEFUN (show_ip_bgp_ipv4_community_all, "Address Family modifier\n" "Display routes matching the communities\n") { - if (strncmp (argv[4]->arg, "m", 1) == 0) + int idx_safi = 4; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_show (vty, NULL, AFI_IP, SAFI_MULTICAST, bgp_show_type_community_all, NULL, 0); @@ -10074,7 +10234,8 @@ DEFUN (show_ip_bgp_ipv4_community, "Do not advertise to any peer (well-known community)\n" "Do not export to next AS (well-known community)\n") { - if (strncmp (argv[4]->arg, "m", 1) == 0) + int idx_safi = 4; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_show_community (vty, NULL, argc, argv, 0, AFI_IP, SAFI_MULTICAST); return bgp_show_community (vty, NULL, argc, argv, 0, AFI_IP, SAFI_UNICAST); @@ -10095,20 +10256,23 @@ DEFUN (show_bgp_instance_afi_safi_community_all, "Address Family modifier\n" "Display routes matching the communities\n") { + int idx_word = 3; + int idx_afi = 4; + int idx_safi = 5; int afi; int safi; struct bgp *bgp; /* BGP structure lookup. */ - bgp = bgp_lookup_by_name (argv[3]->arg); + bgp = bgp_lookup_by_name (argv[idx_word]->arg); if (bgp == NULL) { - vty_out (vty, "Can't find BGP instance %s%s", argv[3]->arg, VTY_NEWLINE); + vty_out (vty, "Can't find BGP instance %s%s", argv[idx_word]->arg, VTY_NEWLINE); return CMD_WARNING; } - afi = (strncmp (argv[4]->arg, "ipv6", 4) == 0) ? AFI_IP6 : AFI_IP; - safi = (strncmp (argv[5]->arg, "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST; + afi = (strncmp (argv[idx_afi]->arg, "ipv6", 4) == 0) ? AFI_IP6 : AFI_IP; + safi = (strncmp (argv[idx_safi]->arg, "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST; return bgp_show (vty, bgp, afi, safi, bgp_show_type_community_all, NULL, 0); } @@ -10197,12 +10361,15 @@ DEFUN (show_bgp_instance_afi_safi_community, "Do not advertise to any peer (well-known community)\n" "Do not export to next AS (well-known community)\n") { + int idx_word = 3; + int idx_afi = 4; + int idx_safi = 5; int afi; int safi; - afi = (strncmp (argv[4]->arg, "ipv6", 4) == 0) ? AFI_IP6 : AFI_IP; - safi = (strncmp (argv[5]->arg, "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST; - return bgp_show_community (vty, argv[3]->arg, argc, argv, 0, afi, safi); + afi = (strncmp (argv[idx_afi]->arg, "ipv6", 4) == 0) ? AFI_IP6 : AFI_IP; + safi = (strncmp (argv[idx_safi]->arg, "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST; + return bgp_show_community (vty, argv[idx_word]->arg, argc, argv, 0, afi, safi); } @@ -10372,7 +10539,8 @@ DEFUN (show_ip_bgp_ipv4_community_exact, "Do not export to next AS (well-known community)\n" "Exact match of the communities") { - if (strncmp (argv[4]->arg, "m", 1) == 0) + int idx_safi = 4; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_show_community (vty, NULL, argc, argv, 1, AFI_IP, SAFI_MULTICAST); return bgp_show_community (vty, NULL, argc, argv, 1, AFI_IP, SAFI_UNICAST); @@ -11034,7 +11202,8 @@ DEFUN (show_ip_bgp_community_list, "community-list number\n" "community-list name\n") { - return bgp_show_community_list (vty, NULL, argv[4]->arg, 0, AFI_IP, SAFI_UNICAST); + int idx_comm_list = 4; + return bgp_show_community_list (vty, NULL, argv[idx_comm_list]->arg, 0, AFI_IP, SAFI_UNICAST); } DEFUN (show_ip_bgp_instance_community_list, @@ -11048,7 +11217,9 @@ DEFUN (show_ip_bgp_instance_community_list, "community-list number\n" "community-list name\n") { - return bgp_show_community_list (vty, argv[4]->arg, argv[6]->arg, 0, AFI_IP, SAFI_UNICAST); + int idx_word = 4; + int idx_comm_list = 6; + return bgp_show_community_list (vty, argv[idx_word]->arg, argv[idx_comm_list]->arg, 0, AFI_IP, SAFI_UNICAST); } DEFUN (show_ip_bgp_ipv4_community_list, @@ -11064,10 +11235,12 @@ DEFUN (show_ip_bgp_ipv4_community_list, "community-list number\n" "community-list name\n") { - if (strncmp (argv[4]->arg, "m", 1) == 0) - return bgp_show_community_list (vty, NULL, argv[6]->arg, 0, AFI_IP, SAFI_MULTICAST); + int idx_safi = 4; + int idx_comm_list = 6; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_show_community_list (vty, NULL, argv[idx_comm_list]->arg, 0, AFI_IP, SAFI_MULTICAST); - return bgp_show_community_list (vty, NULL, argv[6]->arg, 0, AFI_IP, SAFI_UNICAST); + return bgp_show_community_list (vty, NULL, argv[idx_comm_list]->arg, 0, AFI_IP, SAFI_UNICAST); } DEFUN (show_ip_bgp_community_list_exact, @@ -11081,7 +11254,8 @@ DEFUN (show_ip_bgp_community_list_exact, "community-list name\n" "Exact match of the communities\n") { - return bgp_show_community_list (vty, NULL, argv[4]->arg, 1, AFI_IP, SAFI_UNICAST); + int idx_comm_list = 4; + return bgp_show_community_list (vty, NULL, argv[idx_comm_list]->arg, 1, AFI_IP, SAFI_UNICAST); } DEFUN (show_ip_bgp_ipv4_community_list_exact, @@ -11098,10 +11272,12 @@ DEFUN (show_ip_bgp_ipv4_community_list_exact, "community-list name\n" "Exact match of the communities\n") { - if (strncmp (argv[4]->arg, "m", 1) == 0) - return bgp_show_community_list (vty, NULL, argv[6]->arg, 1, AFI_IP, SAFI_MULTICAST); + int idx_safi = 4; + int idx_comm_list = 6; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_show_community_list (vty, NULL, argv[idx_comm_list]->arg, 1, AFI_IP, SAFI_MULTICAST); - return bgp_show_community_list (vty, NULL, argv[6]->arg, 1, AFI_IP, SAFI_UNICAST); + return bgp_show_community_list (vty, NULL, argv[idx_comm_list]->arg, 1, AFI_IP, SAFI_UNICAST); } #ifdef HAVE_IPV6 @@ -11125,7 +11301,8 @@ DEFUN (show_bgp_community_list, "community-list number\n" "community-list name\n") { - return bgp_show_community_list (vty, NULL, argv[3]->arg, 0, AFI_IP6, SAFI_UNICAST); + int idx_comm_list = 3; + return bgp_show_community_list (vty, NULL, argv[idx_comm_list]->arg, 0, AFI_IP6, SAFI_UNICAST); } @@ -11139,8 +11316,9 @@ DEFUN (show_ipv6_bgp_community_list, "Display routes matching the community-list\n" "community-list name\n") { + int idx_word = 4; bgp_show_ipv6_bgp_deprecate_warning(vty); - return bgp_show_community_list (vty, NULL, argv[4]->arg, 0, AFI_IP6, SAFI_UNICAST); + return bgp_show_community_list (vty, NULL, argv[idx_word]->arg, 0, AFI_IP6, SAFI_UNICAST); } /* old command */ @@ -11153,8 +11331,9 @@ DEFUN (show_ipv6_mbgp_community_list, "Display routes matching the community-list\n" "community-list name\n") { + int idx_word = 4; bgp_show_ipv6_bgp_deprecate_warning(vty); - return bgp_show_community_list (vty, NULL, argv[4]->arg, 0, AFI_IP6, SAFI_MULTICAST); + return bgp_show_community_list (vty, NULL, argv[idx_word]->arg, 0, AFI_IP6, SAFI_MULTICAST); } /* @@ -11179,7 +11358,8 @@ DEFUN (show_bgp_community_list_exact, "community-list name\n" "Exact match of the communities\n") { - return bgp_show_community_list (vty, NULL, argv[3]->arg, 1, AFI_IP6, SAFI_UNICAST); + int idx_comm_list = 3; + return bgp_show_community_list (vty, NULL, argv[idx_comm_list]->arg, 1, AFI_IP6, SAFI_UNICAST); } @@ -11194,8 +11374,9 @@ DEFUN (show_ipv6_bgp_community_list_exact, "community-list name\n" "Exact match of the communities\n") { + int idx_word = 4; bgp_show_ipv6_bgp_deprecate_warning(vty); - return bgp_show_community_list (vty, NULL, argv[4]->arg, 1, AFI_IP6, SAFI_UNICAST); + return bgp_show_community_list (vty, NULL, argv[idx_word]->arg, 1, AFI_IP6, SAFI_UNICAST); } /* old command */ @@ -11209,8 +11390,9 @@ DEFUN (show_ipv6_mbgp_community_list_exact, "community-list name\n" "Exact match of the communities\n") { + int idx_word = 4; bgp_show_ipv6_bgp_deprecate_warning(vty); - return bgp_show_community_list (vty, NULL, argv[4]->arg, 1, AFI_IP6, SAFI_MULTICAST); + return bgp_show_community_list (vty, NULL, argv[idx_word]->arg, 1, AFI_IP6, SAFI_MULTICAST); } #endif /* HAVE_IPV6 */ @@ -11252,7 +11434,8 @@ DEFUN (show_ip_bgp_prefix_longer, "IP prefix /, e.g., 35.0.0.0/8\n" "Display route and more specific routes\n") { - return bgp_show_prefix_longer (vty, NULL, argv[3]->arg, AFI_IP, SAFI_UNICAST, + int idx_ipv4_prefixlen = 3; + return bgp_show_prefix_longer (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_UNICAST, bgp_show_type_prefix_longer); } @@ -11266,7 +11449,9 @@ DEFUN (show_ip_bgp_instance_prefix_longer, "IP prefix /, e.g., 35.0.0.0/8\n" "Display route and more specific routes\n") { - return bgp_show_prefix_longer (vty, argv[4]->arg, argv[5]->arg, AFI_IP, SAFI_UNICAST, + int idx_word = 4; + int idx_ipv4_prefixlen = 5; + return bgp_show_prefix_longer (vty, argv[idx_word]->arg, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_UNICAST, bgp_show_type_prefix_longer); } @@ -11292,7 +11477,8 @@ DEFUN (show_ip_bgp_flap_prefix_longer, "IP prefix /, e.g., 35.0.0.0/8\n" "Display route and more specific routes\n") { - return bgp_show_prefix_longer (vty, NULL, argv[4]->arg, AFI_IP, SAFI_UNICAST, + int idx_ipv4_prefixlen = 4; + return bgp_show_prefix_longer (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_UNICAST, bgp_show_type_flap_prefix_longer); } @@ -11309,11 +11495,13 @@ DEFUN (show_ip_bgp_ipv4_prefix_longer, "IP prefix /, e.g., 35.0.0.0/8\n" "Display route and more specific routes\n") { - if (strncmp (argv[4]->arg, "m", 1) == 0) - return bgp_show_prefix_longer (vty, NULL, argv[5]->arg, AFI_IP, SAFI_MULTICAST, + int idx_safi = 4; + int idx_ipv4_prefixlen = 5; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_show_prefix_longer (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_MULTICAST, bgp_show_type_prefix_longer); - return bgp_show_prefix_longer (vty, NULL, argv[5]->arg, AFI_IP, SAFI_UNICAST, + return bgp_show_prefix_longer (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_UNICAST, bgp_show_type_prefix_longer); } @@ -11337,7 +11525,8 @@ DEFUN (show_ip_bgp_flap_address, "Display flap statistics of routes\n" "Network in the BGP routing table to display\n") { - return bgp_show_prefix_longer (vty, NULL, argv[4]->arg, AFI_IP, SAFI_UNICAST, + int idx_ipv4 = 4; + return bgp_show_prefix_longer (vty, NULL, argv[idx_ipv4]->arg, AFI_IP, SAFI_UNICAST, bgp_show_type_flap_address); } @@ -11362,7 +11551,8 @@ DEFUN (show_ip_bgp_flap_prefix, "Display flap statistics of routes\n" "IP prefix /, e.g., 35.0.0.0/8\n") { - return bgp_show_prefix_longer (vty, NULL, argv[4]->arg, AFI_IP, SAFI_UNICAST, + int idx_ipv4_prefixlen = 4; + return bgp_show_prefix_longer (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_UNICAST, bgp_show_type_flap_prefix); } @@ -11386,7 +11576,8 @@ DEFUN (show_bgp_prefix_longer, "IPv6 prefix /\n" "Display route and more specific routes\n") { - return bgp_show_prefix_longer (vty, NULL, argv[2]->arg, AFI_IP6, SAFI_UNICAST, + int idx_ipv6_prefixlen = 2; + return bgp_show_prefix_longer (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, bgp_show_type_prefix_longer); } @@ -11401,8 +11592,9 @@ DEFUN (show_ipv6_bgp_prefix_longer, "IPv6 prefix /, e.g., 3ffe::/16\n" "Display route and more specific routes\n") { + int idx_ipv6_prefixlen = 3; bgp_show_ipv6_bgp_deprecate_warning(vty); - return bgp_show_prefix_longer (vty, NULL, argv[3]->arg, AFI_IP6, SAFI_UNICAST, + return bgp_show_prefix_longer (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, bgp_show_type_prefix_longer); } @@ -11416,8 +11608,9 @@ DEFUN (show_ipv6_mbgp_prefix_longer, "IPv6 prefix /, e.g., 3ffe::/16\n" "Display route and more specific routes\n") { + int idx_ipv6_prefixlen = 3; bgp_show_ipv6_bgp_deprecate_warning(vty); - return bgp_show_prefix_longer (vty, NULL, argv[3]->arg, AFI_IP6, SAFI_MULTICAST, + return bgp_show_prefix_longer (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_MULTICAST, bgp_show_type_prefix_longer); } #endif /* HAVE_IPV6 */ @@ -11832,7 +12025,9 @@ DEFUN (show_bgp_statistics, "Address Family modifier\n" "BGP RIB advertisement statistics\n") { - return bgp_table_stats_vty (vty, NULL, argv[2]->arg, argv[3]->arg); + int idx_afi = 2; + int idx_safi = 3; + return bgp_table_stats_vty (vty, NULL, argv[idx_afi]->arg, argv[idx_safi]->arg); } DEFUN (show_bgp_statistics_view, @@ -11849,7 +12044,9 @@ DEFUN (show_bgp_statistics_view, "Address Family modifier\n" "BGP RIB advertisement statistics\n") { - return bgp_table_stats_vty (vty, NULL, argv[3]->arg, argv[4]->arg); + int idx_word = 3; + int idx_afi = 4; + return bgp_table_stats_vty (vty, NULL, argv[idx_word]->arg, argv[idx_afi]->arg); } enum bgp_pcounts @@ -12056,10 +12253,11 @@ DEFUN (show_ip_bgp_neighbor_prefix_counts, "Display detailed prefix count information\n" "JavaScript Object Notation\n") { + int idx_peer = 4; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, NULL, argv[4]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; @@ -12080,10 +12278,12 @@ DEFUN (show_ip_bgp_instance_neighbor_prefix_counts, "Display detailed prefix count information\n" "JavaScript Object Notation\n") { + int idx_word = 4; + int idx_peer = 6; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, argv[4]->arg, argv[6]->arg, uj); + peer = peer_lookup_in_view (vty, argv[idx_word]->arg, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; @@ -12103,10 +12303,11 @@ DEFUN (show_bgp_ipv6_neighbor_prefix_counts, "Display detailed prefix count information\n" "JavaScript Object Notation\n") { + int idx_peer = 4; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, NULL, argv[4]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; @@ -12127,10 +12328,12 @@ DEFUN (show_bgp_instance_ipv6_neighbor_prefix_counts, "Display detailed prefix count information\n" "JavaScript Object Notation\n") { + int idx_word = 3; + int idx_peer = 6; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, argv[3]->arg, argv[6]->arg, uj); + peer = peer_lookup_in_view (vty, argv[idx_word]->arg, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; @@ -12153,14 +12356,16 @@ DEFUN (show_ip_bgp_ipv4_neighbor_prefix_counts, "Display detailed prefix count information\n" "JavaScript Object Notation\n") { + int idx_safi = 4; + int idx_peer = 6; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, NULL, argv[6]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; - if (strncmp (argv[4]->arg, "m", 1) == 0) + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_peer_counts (vty, peer, AFI_IP, SAFI_MULTICAST, uj); return bgp_peer_counts (vty, peer, AFI_IP, SAFI_UNICAST, uj); @@ -12182,10 +12387,11 @@ DEFUN (show_ip_bgp_vpnv4_neighbor_prefix_counts, "Display detailed prefix count information\n" "JavaScript Object Notation\n") { + int idx_peer = 6; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, NULL, argv[6]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; @@ -12460,13 +12666,15 @@ DEFUN (show_ip_bgp_instance_neighbor_advertised_route, "Display the routes advertised to a BGP neighbor\n" "JavaScript Object Notation\n") { + int idx_word = 4; + int idx_peer = 6; struct peer *peer; u_char uj = use_json(argc, argv); - if (argc == 4 || (argc == 3 && argv[6]->arg && strcmp(argv[6]->arg, "json") != 0)) - peer = peer_lookup_in_view (vty, argv[4]->arg, argv[6]->arg, uj); + if (argc == 4 || (argc == 3 && argv[idx_peer]->arg && strcmp(argv[idx_peer]->arg, "json") != 0)) + peer = peer_lookup_in_view (vty, argv[idx_word]->arg, argv[idx_peer]->arg, uj); else - peer = peer_lookup_in_view (vty, NULL, argv[4]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_word]->arg, uj); if (! peer) return CMD_WARNING; @@ -12502,18 +12710,20 @@ DEFUN (show_ip_bgp_neighbor_advertised_route, "JavaScript Object Notation\n") { + int idx_peer = 4; + int idx_json = 6; struct peer *peer; const char *rmap_name = NULL; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, NULL, argv[4]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; - if ((argc == 2 && argv[6]->arg && strcmp(argv[6]->arg, "json") != 0) + if ((argc == 2 && argv[idx_json]->arg && strcmp(argv[idx_json]->arg, "json") != 0) || (argc == 3)) - rmap_name = argv[6]->arg; + rmap_name = argv[idx_json]->arg; return peer_adj_routes (vty, peer, AFI_IP, SAFI_UNICAST, 0, rmap_name, uj); } @@ -12553,18 +12763,21 @@ DEFUN (show_ip_bgp_ipv4_neighbor_advertised_route, "Display the routes advertised to a BGP neighbor\n" "JavaScript Object Notation\n") { + int idx_safi = 4; + int idx_peer = 6; + int idx_json = 8; struct peer *peer; const char *rmap_name = NULL; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, NULL, argv[6]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; - if ((argc == 4) || (argc == 3 && argv[8]->arg && strcmp(argv[8]->arg, "json") != 0)) - rmap_name = argv[8]->arg; + if ((argc == 4) || (argc == 3 && argv[idx_json]->arg && strcmp(argv[idx_json]->arg, "json") != 0)) + rmap_name = argv[idx_json]->arg; - if (strncmp (argv[4]->arg, "m", 1) == 0) + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return peer_adj_routes (vty, peer, AFI_IP, SAFI_MULTICAST, 0, rmap_name, uj); else return peer_adj_routes (vty, peer, AFI_IP, SAFI_UNICAST, 0, rmap_name, uj); @@ -12600,13 +12813,15 @@ DEFUN (show_bgp_instance_neighbor_advertised_route, "Display the routes advertised to a BGP neighbor\n" "JavaScript Object Notation\n") { + int idx_word = 3; + int idx_peer = 5; struct peer *peer; u_char uj = use_json(argc, argv); - if (argc == 4 || (argc == 3 && argv[5]->arg && strcmp(argv[5]->arg, "json") != 0)) - peer = peer_lookup_in_view (vty, argv[3]->arg, argv[5]->arg, uj); + if (argc == 4 || (argc == 3 && argv[idx_peer]->arg && strcmp(argv[idx_peer]->arg, "json") != 0)) + peer = peer_lookup_in_view (vty, argv[idx_word]->arg, argv[idx_peer]->arg, uj); else - peer = peer_lookup_in_view (vty, NULL, argv[3]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_word]->arg, uj); if (! peer) return CMD_WARNING; @@ -12653,17 +12868,19 @@ DEFUN (show_bgp_neighbor_advertised_route, "JavaScript Object Notation\n") { + int idx_peer = 3; + int idx_json = 5; struct peer *peer; const char *rmap_name = NULL; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, NULL, argv[3]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_peer]->arg, uj); if (!peer) return CMD_WARNING; - if (argc == 3 || (argc == 2 && argv[5]->arg && strcmp(argv[5]->arg, "json") != 0)) - rmap_name = argv[5]->arg; + if (argc == 3 || (argc == 2 && argv[idx_json]->arg && strcmp(argv[idx_json]->arg, "json") != 0)) + rmap_name = argv[idx_json]->arg; return peer_adj_routes (vty, peer, AFI_IP6, SAFI_UNICAST, 0, rmap_name, uj); } @@ -12686,10 +12903,11 @@ DEFUN (ipv6_mbgp_neighbor_advertised_route, "Display the routes advertised to a BGP neighbor\n" "JavaScript Object Notation\n") { + int idx_peer = 4; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, NULL, argv[4]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; @@ -12726,10 +12944,12 @@ DEFUN (show_bgp_instance_neighbor_received_routes, "Display the received routes from neighbor\n" "JavaScript Object Notation\n") { + int idx_word = 3; + int idx_peer = 5; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, argv[3]->arg, argv[5]->arg, uj); + peer = peer_lookup_in_view (vty, argv[idx_word]->arg, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; @@ -12765,10 +12985,12 @@ DEFUN (show_ip_bgp_instance_neighbor_received_routes, "Display the received routes from neighbor\n" "JavaScript Object Notation\n") { + int idx_word = 4; + int idx_peer = 6; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, argv[4]->arg, argv[6]->arg, uj); + peer = peer_lookup_in_view (vty, argv[idx_word]->arg, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; @@ -12804,17 +13026,19 @@ DEFUN (show_ip_bgp_neighbor_received_routes, "JavaScript Object Notation\n") { + int idx_peer = 4; + int idx_json = 6; struct peer *peer; const char *rmap_name = NULL; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, NULL, argv[4]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; - if (argc == 3 || (argc == 2 && argv[6]->arg && strcmp(argv[6]->arg, "json") != 0)) - rmap_name = argv[6]->arg; + if (argc == 3 || (argc == 2 && argv[idx_json]->arg && strcmp(argv[idx_json]->arg, "json") != 0)) + rmap_name = argv[idx_json]->arg; return peer_adj_routes (vty, peer, AFI_IP, SAFI_UNICAST, 1, rmap_name, uj); } @@ -12854,18 +13078,21 @@ DEFUN (show_ip_bgp_ipv4_neighbor_received_routes, "Display the received routes from neighbor\n" "JavaScript Object Notation\n") { + int idx_safi = 4; + int idx_peer = 6; + int idx_json = 8; struct peer *peer; const char *rmap_name = NULL; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, NULL, argv[6]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; - if (argc == 4 || (argc == 3 && argv[8]->arg && strcmp(argv[8]->arg, "json") != 0)) - rmap_name = argv[8]->arg; + if (argc == 4 || (argc == 3 && argv[idx_json]->arg && strcmp(argv[idx_json]->arg, "json") != 0)) + rmap_name = argv[idx_json]->arg; - if (strncmp (argv[4]->arg, "m", 1) == 0) + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return peer_adj_routes (vty, peer, AFI_IP, SAFI_MULTICAST, 1, rmap_name, uj); else return peer_adj_routes (vty, peer, AFI_IP, SAFI_UNICAST, 1, rmap_name, uj); @@ -12890,20 +13117,25 @@ DEFUN (show_bgp_instance_afi_safi_neighbor_adv_recd_routes, "Display the received routes from neighbor\n" "JavaScript Object Notation\n") { + int idx_word = 3; + int idx_afi = 4; + int idx_safi = 5; + int idx_peer = 7; + int idx_adv_rcvd_routes = 8; int afi; int safi; int in; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, argv[3]->arg, argv[7]->arg, uj); + peer = peer_lookup_in_view (vty, argv[idx_word]->arg, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; - afi = (strncmp (argv[4]->arg, "ipv6", 4) == 0) ? AFI_IP6 : AFI_IP; - safi = (strncmp (argv[5]->arg, "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST; - in = (strncmp (argv[8]->arg, "r", 1) == 0) ? 1 : 0; + afi = (strncmp (argv[idx_afi]->arg, "ipv6", 4) == 0) ? AFI_IP6 : AFI_IP; + safi = (strncmp (argv[idx_safi]->arg, "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST; + in = (strncmp (argv[idx_adv_rcvd_routes]->arg, "r", 1) == 0) ? 1 : 0; return peer_adj_routes (vty, peer, afi, safi, in, NULL, uj); } @@ -12922,16 +13154,17 @@ DEFUN (show_ip_bgp_neighbor_received_prefix_filter, "Display the prefixlist filter\n" "JavaScript Object Notation\n") { + int idx_peer = 4; char name[BUFSIZ]; union sockunion su; struct peer *peer; int count, ret; u_char uj = use_json(argc, argv); - ret = str2sockunion (argv[4]->arg, &su); + ret = str2sockunion (argv[idx_peer]->arg, &su); if (ret < 0) { - peer = peer_lookup_by_conf_if (NULL, argv[4]->arg); + peer = peer_lookup_by_conf_if (NULL, argv[idx_peer]->arg); if (! peer) { if (uj) @@ -12941,13 +13174,13 @@ DEFUN (show_ip_bgp_neighbor_received_prefix_filter, json_no = json_object_new_object(); json_sub = json_object_new_object(); json_object_string_add(json_no, "warning", "Malformed address or name"); - json_object_string_add(json_sub, "warningCause", argv[4]->arg); + json_object_string_add(json_sub, "warningCause", argv[idx_peer]->arg); json_object_object_add(json_no, "detail", json_sub); vty_out (vty, "%s%s", json_object_to_json_string(json_no), VTY_NEWLINE); json_object_free(json_no); } else - vty_out (vty, "%% Malformed address or name: %s%s", argv[4]->arg, VTY_NEWLINE); + vty_out (vty, "%% Malformed address or name: %s%s", argv[idx_peer]->arg, VTY_NEWLINE); return CMD_WARNING; } } @@ -13012,16 +13245,18 @@ DEFUN (show_ip_bgp_ipv4_neighbor_received_prefix_filter, "Display the prefixlist filter\n" "JavaScript Object Notation\n") { + int idx_safi = 4; + int idx_peer = 6; char name[BUFSIZ]; union sockunion su; struct peer *peer; int count, ret; u_char uj = use_json(argc, argv); - ret = str2sockunion (argv[6]->arg, &su); + ret = str2sockunion (argv[idx_peer]->arg, &su); if (ret < 0) { - peer = peer_lookup_by_conf_if (NULL, argv[6]->arg); + peer = peer_lookup_by_conf_if (NULL, argv[idx_peer]->arg); if (! peer) { if (uj) @@ -13031,13 +13266,13 @@ DEFUN (show_ip_bgp_ipv4_neighbor_received_prefix_filter, json_no = json_object_new_object(); json_sub = json_object_new_object(); json_object_string_add(json_no, "warning", "Malformed address or name"); - json_object_string_add(json_sub, "warningCause", argv[6]->arg); + json_object_string_add(json_sub, "warningCause", argv[idx_peer]->arg); json_object_object_add(json_no, "detail", json_sub); vty_out (vty, "%s%s", json_object_to_json_string(json_no), VTY_NEWLINE); json_object_free(json_no); } else - vty_out (vty, "%% Malformed address or name: %s%s", argv[6]->arg, VTY_NEWLINE); + vty_out (vty, "%% Malformed address or name: %s%s", argv[idx_peer]->arg, VTY_NEWLINE); return CMD_WARNING; } } @@ -13060,7 +13295,7 @@ DEFUN (show_ip_bgp_ipv4_neighbor_received_prefix_filter, } } - if (strncmp (argv[4]->arg, "m", 1) == 0) + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) { sprintf (name, "%s.%d.%d", peer->host, AFI_IP, SAFI_MULTICAST); count = prefix_bgp_show_prefix_list (NULL, AFI_IP, name, uj); @@ -13149,17 +13384,19 @@ DEFUN (show_bgp_neighbor_received_routes, "Display the received routes from neighbor\n" "JavaScript Object Notation\n") { + int idx_peer = 3; + int idx_json = 5; struct peer *peer; const char *rmap_name = NULL; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, NULL, argv[3]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; - if (argc == 3 || (argc == 2 && argv[5]->arg && strcmp(argv[5]->arg, "json") != 0)) - rmap_name = argv[5]->arg; + if (argc == 3 || (argc == 2 && argv[idx_json]->arg && strcmp(argv[idx_json]->arg, "json") != 0)) + rmap_name = argv[idx_json]->arg; return peer_adj_routes (vty, peer, AFI_IP6, SAFI_UNICAST, 1, rmap_name, uj); } @@ -13193,16 +13430,17 @@ DEFUN (show_bgp_neighbor_received_prefix_filter, "Display the prefixlist filter\n" "JavaScript Object Notation\n") { + int idx_peer = 3; char name[BUFSIZ]; union sockunion su; struct peer *peer; int count, ret; u_char uj = use_json(argc, argv); - ret = str2sockunion (argv[3]->arg, &su); + ret = str2sockunion (argv[idx_peer]->arg, &su); if (ret < 0) { - peer = peer_lookup_by_conf_if (NULL, argv[3]->arg); + peer = peer_lookup_by_conf_if (NULL, argv[idx_peer]->arg); if (! peer) { if (uj) @@ -13212,13 +13450,13 @@ DEFUN (show_bgp_neighbor_received_prefix_filter, json_no = json_object_new_object(); json_sub = json_object_new_object(); json_object_string_add(json_no, "warning", "Malformed address or name"); - json_object_string_add(json_sub, "warningCause", argv[3]->arg); + json_object_string_add(json_sub, "warningCause", argv[idx_peer]->arg); json_object_object_add(json_no, "detail", json_sub); vty_out (vty, "%s%s", json_object_to_json_string(json_no), VTY_NEWLINE); json_object_free(json_no); } else - vty_out (vty, "%% Malformed address or name: %s%s", argv[3]->arg, VTY_NEWLINE); + vty_out (vty, "%% Malformed address or name: %s%s", argv[idx_peer]->arg, VTY_NEWLINE); return CMD_WARNING; } } @@ -13283,10 +13521,11 @@ DEFUN (ipv6_mbgp_neighbor_received_routes, "Display the received routes from neighbor\n" "JavaScript Object Notation\n") { + int idx_peer = 4; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, NULL, argv[4]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; @@ -13324,6 +13563,8 @@ DEFUN (show_bgp_instance_neighbor_received_prefix_filter, "Display the prefixlist filter\n" "JavaScript Object Notation\n") { + int idx_word = 3; + int idx_peer = 5; char name[BUFSIZ]; union sockunion su; struct peer *peer; @@ -13332,7 +13573,7 @@ DEFUN (show_bgp_instance_neighbor_received_prefix_filter, u_char uj = use_json(argc, argv); /* BGP structure lookup. */ - bgp = bgp_lookup_by_name (argv[3]->arg); + bgp = bgp_lookup_by_name (argv[idx_word]->arg); if (bgp == NULL) { if (uj) @@ -13344,14 +13585,14 @@ DEFUN (show_bgp_instance_neighbor_received_prefix_filter, json_object_free(json_no); } else - vty_out (vty, "Can't find BGP instance %s%s", argv[3]->arg, VTY_NEWLINE); + vty_out (vty, "Can't find BGP instance %s%s", argv[idx_word]->arg, VTY_NEWLINE); return CMD_WARNING; } - ret = str2sockunion (argv[5]->arg, &su); + ret = str2sockunion (argv[idx_peer]->arg, &su); if (ret < 0) { - peer = peer_lookup_by_conf_if (bgp, argv[5]->arg); + peer = peer_lookup_by_conf_if (bgp, argv[idx_peer]->arg); if (! peer) { if (uj) @@ -13361,13 +13602,13 @@ DEFUN (show_bgp_instance_neighbor_received_prefix_filter, json_no = json_object_new_object(); json_sub = json_object_new_object(); json_object_string_add(json_no, "warning", "Malformed address or name"); - json_object_string_add(json_sub, "warningCause", argv[5]->arg); + json_object_string_add(json_sub, "warningCause", argv[idx_peer]->arg); json_object_object_add(json_no, "detail", json_sub); vty_out (vty, "%s%s", json_object_to_json_string(json_no), VTY_NEWLINE); json_object_free(json_no); } else - vty_out (vty, "%% Malformed address or name: %s%s", argv[5]->arg, VTY_NEWLINE); + vty_out (vty, "%% Malformed address or name: %s%s", argv[idx_peer]->arg, VTY_NEWLINE); return CMD_WARNING; } } @@ -13439,10 +13680,11 @@ DEFUN (show_ip_bgp_neighbor_routes, "Display routes learned from neighbor\n" "JavaScript Object Notation\n") { + int idx_peer = 4; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, NULL, argv[4]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; @@ -13464,10 +13706,12 @@ DEFUN (show_ip_bgp_instance_neighbor_routes, "Display routes learned from neighbor\n" "JavaScript Object Notation\n") { + int idx_word = 4; + int idx_peer = 6; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, argv[4]->arg, argv[6]->arg, uj); + peer = peer_lookup_in_view (vty, argv[idx_word]->arg, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; @@ -13488,10 +13732,11 @@ DEFUN (show_ip_bgp_neighbor_flap, "Display flap statistics of the routes learned from neighbor\n" "JavaScript Object Notation\n") { + int idx_peer = 4; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, NULL, argv[4]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; @@ -13512,10 +13757,11 @@ DEFUN (show_ip_bgp_neighbor_damp, "Display the dampened routes received from neighbor\n" "JavaScript Object Notation\n") { + int idx_peer = 4; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, NULL, argv[4]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; @@ -13539,14 +13785,16 @@ DEFUN (show_ip_bgp_ipv4_neighbor_routes, "Display routes learned from neighbor\n" "JavaScript Object Notation\n") { + int idx_safi = 4; + int idx_peer = 6; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, NULL, argv[6]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; - if (strncmp (argv[4]->arg, "m", 1) == 0) + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_show_neighbor_route (vty, peer, AFI_IP, SAFI_MULTICAST, bgp_show_type_neighbor, uj); @@ -13583,10 +13831,12 @@ DEFUN (show_bgp_instance_neighbor_routes, "Display routes learned from neighbor\n" "JavaScript Object Notation\n") { + int idx_word = 3; + int idx_peer = 5; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, argv[3]->arg, argv[5]->arg, uj); + peer = peer_lookup_in_view (vty, argv[idx_word]->arg, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; @@ -13644,14 +13894,17 @@ DEFUN (show_bgp_instance_neighbor_damp, "Display the dampened routes received from neighbor\n" "JavaScript Object Notation\n") { + int idx_word = 3; + int idx_peer = 5; + int idx_json = 7; struct peer *peer; u_char uj = use_json(argc, argv); - if ((argc == 4 && argv[7]->arg && strcmp(argv[7]->arg, "json") == 0) - || (argc == 3 && argv[5]->arg && strcmp(argv[5]->arg, "json") != 0)) - peer = peer_lookup_in_view (vty, argv[3]->arg, argv[5]->arg, uj); + if ((argc == 4 && argv[idx_json]->arg && strcmp(argv[idx_json]->arg, "json") == 0) + || (argc == 3 && argv[idx_peer]->arg && strcmp(argv[idx_peer]->arg, "json") != 0)) + peer = peer_lookup_in_view (vty, argv[idx_word]->arg, argv[idx_peer]->arg, uj); else - peer = peer_lookup_in_view (vty, NULL, argv[3]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_word]->arg, uj); if (! peer) return CMD_WARNING; @@ -13710,14 +13963,17 @@ DEFUN (show_bgp_instance_neighbor_flap, "Display flap statistics of the routes learned from neighbor\n" "JavaScript Object Notation\n") { + int idx_word = 3; + int idx_peer = 5; + int idx_json = 7; struct peer *peer; u_char uj = use_json(argc, argv); - if ((argc == 4 && argv[7]->arg && strcmp(argv[7]->arg, "json") == 0) - || (argc == 3 && argv[5]->arg && strcmp(argv[5]->arg, "json") != 0)) - peer = peer_lookup_in_view (vty, argv[3]->arg, argv[5]->arg, uj); + if ((argc == 4 && argv[idx_json]->arg && strcmp(argv[idx_json]->arg, "json") == 0) + || (argc == 3 && argv[idx_peer]->arg && strcmp(argv[idx_peer]->arg, "json") != 0)) + peer = peer_lookup_in_view (vty, argv[idx_word]->arg, argv[idx_peer]->arg, uj); else - peer = peer_lookup_in_view (vty, NULL, argv[3]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_word]->arg, uj); if (! peer) return CMD_WARNING; @@ -13764,10 +14020,11 @@ DEFUN (show_bgp_neighbor_routes, "Display routes learned from neighbor\n" "JavaScript Object Notation\n") { + int idx_peer = 3; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, NULL, argv[3]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; @@ -13793,10 +14050,11 @@ DEFUN (ipv6_mbgp_neighbor_routes, "Display routes learned from neighbor\n" "JavaScript Object Notation\n") { + int idx_peer = 4; struct peer *peer; u_char uj = use_json(argc, argv); - peer = peer_lookup_in_view (vty, NULL, argv[4]->arg, uj); + peer = peer_lookup_in_view (vty, NULL, argv[idx_peer]->arg, uj); if (! peer) return CMD_WARNING; @@ -14008,13 +14266,16 @@ DEFUN (bgp_distance, "Distance for routes internal to the AS\n" "Distance for local routes\n") { + int idx_number = 2; + int idx_number_2 = 3; + int idx_number_3 = 4; struct bgp *bgp; bgp = vty->index; - bgp->distance_ebgp = atoi (argv[2]->arg); - bgp->distance_ibgp = atoi (argv[3]->arg); - bgp->distance_local = atoi (argv[4]->arg); + bgp->distance_ebgp = atoi (argv[idx_number]->arg); + bgp->distance_ibgp = atoi (argv[idx_number_2]->arg); + bgp->distance_local = atoi (argv[idx_number_3]->arg); return CMD_SUCCESS; } @@ -14054,7 +14315,9 @@ DEFUN (bgp_distance_source, "Administrative distance\n" "IP source prefix\n") { - bgp_distance_set (vty, argv[1]->arg, argv[2]->arg, NULL); + int idx_number = 1; + int idx_ipv4_prefixlen = 2; + bgp_distance_set (vty, argv[idx_number]->arg, argv[idx_ipv4_prefixlen]->arg, NULL); return CMD_SUCCESS; } @@ -14066,7 +14329,9 @@ DEFUN (no_bgp_distance_source, "Administrative distance\n" "IP source prefix\n") { - bgp_distance_unset (vty, argv[2]->arg, argv[3]->arg, NULL); + int idx_number = 2; + int idx_ipv4_prefixlen = 3; + bgp_distance_unset (vty, argv[idx_number]->arg, argv[idx_ipv4_prefixlen]->arg, NULL); return CMD_SUCCESS; } @@ -14078,7 +14343,10 @@ DEFUN (bgp_distance_source_access_list, "IP source prefix\n" "Access list name\n") { - bgp_distance_set (vty, argv[1]->arg, argv[2]->arg, argv[3]->arg); + int idx_number = 1; + int idx_ipv4_prefixlen = 2; + int idx_word = 3; + bgp_distance_set (vty, argv[idx_number]->arg, argv[idx_ipv4_prefixlen]->arg, argv[idx_word]->arg); return CMD_SUCCESS; } @@ -14091,7 +14359,10 @@ DEFUN (no_bgp_distance_source_access_list, "IP source prefix\n" "Access list name\n") { - bgp_distance_unset (vty, argv[2]->arg, argv[3]->arg, argv[4]->arg); + int idx_number = 2; + int idx_ipv4_prefixlen = 3; + int idx_word = 4; + bgp_distance_unset (vty, argv[idx_number]->arg, argv[idx_ipv4_prefixlen]->arg, argv[idx_word]->arg); return CMD_SUCCESS; } @@ -14117,6 +14388,10 @@ DEFUN (bgp_damp_set, "Value to start suppressing a route\n" "Maximum duration to suppress a stable route\n") { + int idx_number = 2; + int idx_number_2 = 3; + int idx_number_3 = 4; + int idx_number_4 = 5; struct bgp *bgp; int half = DEFAULT_HALF_LIFE * 60; int reuse = DEFAULT_REUSE; @@ -14125,14 +14400,14 @@ DEFUN (bgp_damp_set, if (argc == 4) { - half = atoi (argv[2]->arg) * 60; - reuse = atoi (argv[3]->arg); - suppress = atoi (argv[4]->arg); - max = atoi (argv[5]->arg) * 60; + half = atoi (argv[idx_number]->arg) * 60; + reuse = atoi (argv[idx_number_2]->arg); + suppress = atoi (argv[idx_number_3]->arg); + max = atoi (argv[idx_number_4]->arg) * 60; } else if (argc == 1) { - half = atoi (argv[2]->arg) * 60; + half = atoi (argv[idx_number]->arg) * 60; max = 4 * half; } @@ -14353,7 +14628,8 @@ DEFUN (clear_ip_bgp_dampening_prefix, "Clear route flap dampening information\n" "IP prefix /, e.g., 35.0.0.0/8\n") { - return bgp_clear_damp_route (vty, NULL, argv[4]->arg, AFI_IP, + int idx_ipv4_prefixlen = 4; + return bgp_clear_damp_route (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_UNICAST, NULL, 1); } @@ -14366,7 +14642,8 @@ DEFUN (clear_ip_bgp_dampening_address, "Clear route flap dampening information\n" "Network to clear damping information\n") { - return bgp_clear_damp_route (vty, NULL, argv[4]->arg, AFI_IP, + int idx_ipv4 = 4; + return bgp_clear_damp_route (vty, NULL, argv[idx_ipv4]->arg, AFI_IP, SAFI_UNICAST, NULL, 0); } @@ -14380,10 +14657,12 @@ DEFUN (clear_ip_bgp_dampening_address_mask, "Network to clear damping information\n" "Network mask\n") { + int idx_ipv4 = 4; + int idx_ipv4_2 = 5; int ret; char prefix_str[BUFSIZ]; - ret = netmask_str2prefix_str (argv[4]->arg, argv[5]->arg, prefix_str); + ret = netmask_str2prefix_str (argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, prefix_str); if (! ret) { vty_out (vty, "%% Inconsistent address and mask%s", VTY_NEWLINE); diff --git a/bgpd/bgp_routemap.c b/bgpd/bgp_routemap.c index dc342b110f..0b43b14e68 100644 --- a/bgpd/bgp_routemap.c +++ b/bgpd/bgp_routemap.c @@ -3000,7 +3000,8 @@ DEFUN (match_peer, "IP address of peer\n" "IPv6 address of peer\n") { - return bgp_route_match_add (vty, vty->index, "peer", argv[2]->arg, + int idx_ip = 2; + return bgp_route_match_add (vty, vty->index, "peer", argv[idx_ip]->arg, RMAP_EVENT_MATCH_ADDED); } @@ -3054,7 +3055,8 @@ DEFUN (match_ip_address, "IP access-list number (expanded range)\n" "IP Access-list name\n") { - return bgp_route_match_add (vty, vty->index, "ip address", argv[3]->arg, + int idx_acl = 3; + return bgp_route_match_add (vty, vty->index, "ip address", argv[idx_acl]->arg, RMAP_EVENT_FILTER_ADDED); } @@ -3093,7 +3095,8 @@ DEFUN (match_ip_next_hop, "IP access-list number (expanded range)\n" "IP Access-list name\n") { - return bgp_route_match_add (vty, vty->index, "ip next-hop", argv[3]->arg, + int idx_acl = 3; + return bgp_route_match_add (vty, vty->index, "ip next-hop", argv[idx_acl]->arg, RMAP_EVENT_FILTER_ADDED); } @@ -3131,7 +3134,8 @@ DEFUN (match_probability, "Match portion of routes defined by percentage value\n" "Percentage of routes\n") { - return bgp_route_match_add (vty, vty->index, "probability", argv[2]->arg, + int idx_number = 2; + return bgp_route_match_add (vty, vty->index, "probability", argv[idx_number]->arg, RMAP_EVENT_MATCH_ADDED); } @@ -3168,7 +3172,8 @@ DEFUN (match_ip_route_source, "IP access-list number (expanded range)\n" "IP standard access-list name\n") { - return bgp_route_match_add (vty, vty->index, "ip route-source", argv[3]->arg, + int idx_acl = 3; + return bgp_route_match_add (vty, vty->index, "ip route-source", argv[idx_acl]->arg, RMAP_EVENT_FILTER_ADDED); } @@ -3206,8 +3211,9 @@ DEFUN (match_ip_address_prefix_list, "Match entries of prefix-lists\n" "IP prefix-list name\n") { + int idx_word = 4; return bgp_route_match_add (vty, vty->index, "ip address prefix-list", - argv[4]->arg, RMAP_EVENT_PLIST_ADDED); + argv[idx_word]->arg, RMAP_EVENT_PLIST_ADDED); } /* @@ -3244,8 +3250,9 @@ DEFUN (match_ip_next_hop_prefix_list, "Match entries of prefix-lists\n" "IP prefix-list name\n") { + int idx_word = 4; return bgp_route_match_add (vty, vty->index, "ip next-hop prefix-list", - argv[4]->arg, RMAP_EVENT_PLIST_ADDED); + argv[idx_word]->arg, RMAP_EVENT_PLIST_ADDED); } /* @@ -3282,8 +3289,9 @@ DEFUN (match_ip_route_source_prefix_list, "Match entries of prefix-lists\n" "IP prefix-list name\n") { + int idx_word = 4; return bgp_route_match_add (vty, vty->index, "ip route-source prefix-list", - argv[4]->arg, RMAP_EVENT_PLIST_ADDED); + argv[idx_word]->arg, RMAP_EVENT_PLIST_ADDED); } /* @@ -3318,7 +3326,8 @@ DEFUN (match_metric, "Match metric of route\n" "Metric value\n") { - return bgp_route_match_add (vty, vty->index, "metric", argv[2]->arg, + int idx_number = 2; + return bgp_route_match_add (vty, vty->index, "metric", argv[idx_number]->arg, RMAP_EVENT_MATCH_ADDED); } @@ -3351,7 +3360,8 @@ DEFUN (match_local_pref, "Match local-preference of route\n" "Metric value\n") { - return bgp_route_match_add (vty, vty->index, "local-preference", argv[2]->arg, + int idx_number = 2; + return bgp_route_match_add (vty, vty->index, "local-preference", argv[idx_number]->arg, RMAP_EVENT_MATCH_ADDED); } @@ -3386,7 +3396,8 @@ DEFUN (match_community, "Community-list number (expanded)\n" "Community-list name\n") { - return bgp_route_match_add (vty, vty->index, "community", argv[2]->arg, + int idx_comm_list = 2; + return bgp_route_match_add (vty, vty->index, "community", argv[idx_comm_list]->arg, RMAP_EVENT_CLIST_ADDED); } @@ -3400,13 +3411,14 @@ DEFUN (match_community_exact, "Community-list name\n" "Do exact matching of communities\n") { + int idx_comm_list = 2; int ret; char *argstr; argstr = XMALLOC (MTYPE_ROUTE_MAP_COMPILED, - strlen (argv[2]->arg) + strlen ("exact-match") + 2); + strlen (argv[idx_comm_list]->arg) + strlen ("exact-match") + 2); - sprintf (argstr, "%s exact-match", argv[2]->arg); + sprintf (argstr, "%s exact-match", argv[idx_comm_list]->arg); ret = bgp_route_match_add (vty, vty->index, "community", argstr, RMAP_EVENT_CLIST_ADDED); @@ -3458,7 +3470,8 @@ DEFUN (match_ecommunity, "Extended community-list number (expanded)\n" "Extended community-list name\n") { - return bgp_route_match_add (vty, vty->index, "extcommunity", argv[2]->arg, + int idx_comm_list = 2; + return bgp_route_match_add (vty, vty->index, "extcommunity", argv[idx_comm_list]->arg, RMAP_EVENT_ECLIST_ADDED); } @@ -3492,7 +3505,8 @@ DEFUN (match_aspath, "Match BGP AS path list\n" "AS path access-list name\n") { - return bgp_route_match_add (vty, vty->index, "as-path", argv[2]->arg, + int idx_word = 2; + return bgp_route_match_add (vty, vty->index, "as-path", argv[idx_word]->arg, RMAP_EVENT_ASLIST_ADDED); } @@ -3526,13 +3540,14 @@ DEFUN (match_origin, "local IGP\n" "unknown heritage\n") { - if (strncmp (argv[2]->arg, "igp", 2) == 0) + int idx_origin = 2; + if (strncmp (argv[idx_origin]->arg, "igp", 2) == 0) return bgp_route_match_add (vty, vty->index, "origin", "igp", RMAP_EVENT_MATCH_ADDED); - if (strncmp (argv[2]->arg, "egp", 1) == 0) + if (strncmp (argv[idx_origin]->arg, "egp", 1) == 0) return bgp_route_match_add (vty, vty->index, "origin", "egp", RMAP_EVENT_MATCH_ADDED); - if (strncmp (argv[2]->arg, "incomplete", 2) == 0) + if (strncmp (argv[idx_origin]->arg, "incomplete", 2) == 0) return bgp_route_match_add (vty, vty->index, "origin", "incomplete", RMAP_EVENT_MATCH_ADDED); @@ -3569,7 +3584,8 @@ DEFUN (match_interface, "Match first hop interface of route\n" "Interface name\n") { - return bgp_route_match_add (vty, vty->index, "interface", argv[2]->arg, + int idx_word = 2; + return bgp_route_match_add (vty, vty->index, "interface", argv[idx_word]->arg, RMAP_EVENT_MATCH_ADDED); } @@ -3601,7 +3617,8 @@ DEFUN (match_tag, "Match tag of route\n" "Tag value\n") { - return bgp_route_match_add (vty, vty->index, "tag", argv[2]->arg, + int idx_number = 2; + return bgp_route_match_add (vty, vty->index, "tag", argv[idx_number]->arg, RMAP_EVENT_MATCH_ADDED); } @@ -3635,10 +3652,11 @@ DEFUN (set_ip_nexthop, "Next hop address\n" "IP address of next hop\n") { + int idx_ipv4 = 3; union sockunion su; int ret; - ret = str2sockunion (argv[3]->arg, &su); + ret = str2sockunion (argv[idx_ipv4]->arg, &su); if (ret < 0) { vty_out (vty, "%% Malformed nexthop address%s", VTY_NEWLINE); @@ -3652,7 +3670,7 @@ DEFUN (set_ip_nexthop, return CMD_WARNING; } - return bgp_route_set_add (vty, vty->index, "ip next-hop", argv[3]->arg); + return bgp_route_set_add (vty, vty->index, "ip next-hop", argv[idx_ipv4]->arg); } DEFUN (set_ip_nexthop_peer, @@ -3728,7 +3746,8 @@ DEFUN (set_metric, "Metric value for destination routing protocol\n" "Metric value\n") { - return bgp_route_set_add (vty, vty->index, "metric", argv[2]->arg); + int idx_number = 2; + return bgp_route_set_add (vty, vty->index, "metric", argv[idx_number]->arg); } @@ -3760,7 +3779,8 @@ DEFUN (set_local_pref, "BGP local preference path attribute\n" "Preference value\n") { - return bgp_route_set_add (vty, vty->index, "local-preference", argv[2]->arg); + int idx_number = 2; + return bgp_route_set_add (vty, vty->index, "local-preference", argv[idx_number]->arg); } /* @@ -3790,7 +3810,8 @@ DEFUN (set_weight, "BGP weight for routing table\n" "Weight value\n") { - return bgp_route_set_add (vty, vty->index, "weight", argv[2]->arg); + int idx_number = 2; + return bgp_route_set_add (vty, vty->index, "weight", argv[idx_number]->arg); } /* @@ -4055,11 +4076,12 @@ DEFUN (set_community_delete, "Community-list name\n" "Delete matching communities\n") { + int idx_comm_list = 2; char *str; - str = XCALLOC (MTYPE_TMP, strlen (argv[2]->arg) + strlen (" delete") + 1); - strcpy (str, argv[2]->arg); - strcpy (str + strlen (argv[2]->arg), " delete"); + str = XCALLOC (MTYPE_TMP, strlen (argv[idx_comm_list]->arg) + strlen (" delete") + 1); + strcpy (str, argv[idx_comm_list]->arg); + strcpy (str + strlen (argv[idx_comm_list]->arg), " delete"); bgp_route_set_add (vty, vty->index, "comm-list", str); @@ -4178,11 +4200,12 @@ DEFUN (set_origin, "local IGP\n" "unknown heritage\n") { - if (strncmp (argv[2]->arg, "igp", 2) == 0) + int idx_origin = 2; + if (strncmp (argv[idx_origin]->arg, "igp", 2) == 0) return bgp_route_set_add (vty, vty->index, "origin", "igp"); - if (strncmp (argv[2]->arg, "egp", 1) == 0) + if (strncmp (argv[idx_origin]->arg, "egp", 1) == 0) return bgp_route_set_add (vty, vty->index, "origin", "egp"); - if (strncmp (argv[2]->arg, "incomplete", 2) == 0) + if (strncmp (argv[idx_origin]->arg, "incomplete", 2) == 0) return bgp_route_set_add (vty, vty->index, "origin", "incomplete"); return CMD_WARNING; @@ -4238,11 +4261,13 @@ DEFUN (set_aggregator_as, "AS number\n" "IP address of aggregator\n") { + int idx_number = 3; + int idx_ipv4 = 4; int ret; struct in_addr address; char *argstr; - ret = inet_aton (argv[4]->arg, &address); + ret = inet_aton (argv[idx_ipv4]->arg, &address); if (ret == 0) { vty_out (vty, "Aggregator IP address is invalid%s", VTY_NEWLINE); @@ -4250,9 +4275,9 @@ DEFUN (set_aggregator_as, } argstr = XMALLOC (MTYPE_ROUTE_MAP_COMPILED, - strlen (argv[3]->arg) + strlen (argv[4]->arg) + 2); + strlen (argv[idx_number]->arg) + strlen (argv[idx_ipv4]->arg) + 2); - sprintf (argstr, "%s %s", argv[3]->arg, argv[4]->arg); + sprintf (argstr, "%s %s", argv[idx_number]->arg, argv[idx_ipv4]->arg); ret = bgp_route_set_add (vty, vty->index, "aggregator as", argstr); @@ -4314,7 +4339,8 @@ DEFUN (set_tag, "Tag value for routing protocol\n" "Tag value\n") { - return bgp_route_set_add (vty, vty->index, "tag", argv[2]->arg); + int idx_number = 2; + return bgp_route_set_add (vty, vty->index, "tag", argv[idx_number]->arg); } /* @@ -4347,7 +4373,8 @@ DEFUN (match_ipv6_address, "Match IPv6 address of route\n" "IPv6 access-list name\n") { - return bgp_route_match_add (vty, vty->index, "ipv6 address", argv[3]->arg, + int idx_word = 3; + return bgp_route_match_add (vty, vty->index, "ipv6 address", argv[idx_word]->arg, RMAP_EVENT_FILTER_ADDED); } @@ -4360,7 +4387,8 @@ DEFUN (no_match_ipv6_address, "Match IPv6 address of route\n" "IPv6 access-list name\n") { - return bgp_route_match_delete (vty, vty->index, "ipv6 address", argv[4]->arg, + int idx_word = 4; + return bgp_route_match_delete (vty, vty->index, "ipv6 address", argv[idx_word]->arg, RMAP_EVENT_FILTER_DELETED); } @@ -4372,7 +4400,8 @@ DEFUN (match_ipv6_next_hop, "Match IPv6 next-hop address of route\n" "IPv6 address of next hop\n") { - return bgp_route_match_add (vty, vty->index, "ipv6 next-hop", argv[3]->arg, + int idx_ipv6 = 3; + return bgp_route_match_add (vty, vty->index, "ipv6 next-hop", argv[idx_ipv6]->arg, RMAP_EVENT_MATCH_ADDED); } @@ -4385,7 +4414,8 @@ DEFUN (no_match_ipv6_next_hop, "Match IPv6 next-hop address of route\n" "IPv6 address of next hop\n") { - return bgp_route_match_delete (vty, vty->index, "ipv6 next-hop", argv[4]->arg, + int idx_ipv6 = 4; + return bgp_route_match_delete (vty, vty->index, "ipv6 next-hop", argv[idx_ipv6]->arg, RMAP_EVENT_MATCH_DELETED); } @@ -4398,8 +4428,9 @@ DEFUN (match_ipv6_address_prefix_list, "Match entries of prefix-lists\n" "IP prefix-list name\n") { + int idx_word = 4; return bgp_route_match_add (vty, vty->index, "ipv6 address prefix-list", - argv[4]->arg, RMAP_EVENT_PLIST_ADDED); + argv[idx_word]->arg, RMAP_EVENT_PLIST_ADDED); } DEFUN (no_match_ipv6_address_prefix_list, @@ -4412,8 +4443,9 @@ DEFUN (no_match_ipv6_address_prefix_list, "Match entries of prefix-lists\n" "IP prefix-list name\n") { + int idx_word = 5; return bgp_route_match_delete (vty, vty->index, "ipv6 address prefix-list", - argv[5]->arg, RMAP_EVENT_PLIST_DELETED); + argv[idx_word]->arg, RMAP_EVENT_PLIST_DELETED); } DEFUN (set_ipv6_nexthop_peer, @@ -4471,10 +4503,11 @@ DEFUN (set_ipv6_nexthop_global, "IPv6 global address\n" "IPv6 address of next hop\n") { + int idx_ipv6 = 4; struct in6_addr addr; int ret; - ret = inet_pton (AF_INET6, argv[4]->arg, &addr); + ret = inet_pton (AF_INET6, argv[idx_ipv6]->arg, &addr); if (!ret) { vty_out (vty, "%% Malformed nexthop address%s", VTY_NEWLINE); @@ -4489,7 +4522,7 @@ DEFUN (set_ipv6_nexthop_global, return CMD_WARNING; } - return bgp_route_set_add (vty, vty->index, "ipv6 next-hop global", argv[4]->arg); + return bgp_route_set_add (vty, vty->index, "ipv6 next-hop global", argv[idx_ipv6]->arg); } /* @@ -4525,10 +4558,11 @@ DEFUN (set_ipv6_nexthop_local, "IPv6 local address\n" "IPv6 address of next hop\n") { + int idx_ipv6 = 4; struct in6_addr addr; int ret; - ret = inet_pton (AF_INET6, argv[4]->arg, &addr); + ret = inet_pton (AF_INET6, argv[idx_ipv6]->arg, &addr); if (!ret) { vty_out (vty, "%% Malformed nexthop address%s", VTY_NEWLINE); @@ -4540,7 +4574,7 @@ DEFUN (set_ipv6_nexthop_local, return CMD_WARNING; } - return bgp_route_set_add (vty, vty->index, "ipv6 next-hop local", argv[4]->arg); + return bgp_route_set_add (vty, vty->index, "ipv6 next-hop local", argv[idx_ipv6]->arg); } /* @@ -4576,7 +4610,8 @@ DEFUN (set_vpnv4_nexthop, "VPNv4 next-hop address\n" "IP address of next hop\n") { - return bgp_route_set_add (vty, vty->index, "vpnv4 next-hop", argv[3]->arg); + int idx_ipv4 = 3; + return bgp_route_set_add (vty, vty->index, "vpnv4 next-hop", argv[idx_ipv4]->arg); } /* @@ -4608,7 +4643,8 @@ DEFUN (set_originator_id, "BGP originator ID attribute\n" "IP address of originator\n") { - return bgp_route_set_add (vty, vty->index, "originator-id", argv[2]->arg); + int idx_ipv4 = 2; + return bgp_route_set_add (vty, vty->index, "originator-id", argv[idx_ipv4]->arg); } /* diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c index 1c015eb66f..8f1db7624d 100644 --- a/bgpd/bgp_vty.c +++ b/bgpd/bgp_vty.c @@ -614,7 +614,8 @@ DEFUN (bgp_config_type, "cisco\n" "zebra\n") { - if (strncmp (argv[2]->arg, "c", 1) == 0) + int idx_vendor = 2; + if (strncmp (argv[idx_vendor]->arg, "c", 1) == 0) bgp_option_set (BGP_OPT_CONFIG_CISCO); else bgp_option_unset (BGP_OPT_CONFIG_CISCO); @@ -684,6 +685,7 @@ DEFUN (router_bgp, BGP_STR AS_STR) { + int idx_number = 2; int ret; as_t as; struct bgp *bgp; @@ -712,7 +714,7 @@ DEFUN (router_bgp, // "router bgp X" else { - VTY_GET_INTEGER_RANGE ("AS", as, argv[2]->arg, 1, BGP_AS4_MAX); + VTY_GET_INTEGER_RANGE ("AS", as, argv[idx_number]->arg, 1, BGP_AS4_MAX); inst_type = BGP_INSTANCE_TYPE_DEFAULT; if (argc == 3) @@ -777,6 +779,7 @@ DEFUN (no_router_bgp, BGP_STR AS_STR) { + int idx_number = 3; as_t as; struct bgp *bgp; const char *name = NULL; @@ -802,7 +805,7 @@ DEFUN (no_router_bgp, } else { - VTY_GET_INTEGER_RANGE ("AS", as, argv[3]->arg, 1, BGP_AS4_MAX); + VTY_GET_INTEGER_RANGE ("AS", as, argv[idx_number]->arg, 1, BGP_AS4_MAX); if (argc == 3) name = argv[5]->arg; @@ -832,13 +835,14 @@ DEFUN (bgp_router_id, "Override configured router identifier\n" "Manually configured router identifier\n") { + int idx_ipv4 = 2; int ret; struct in_addr id; struct bgp *bgp; bgp = vty->index; - ret = inet_aton (argv[2]->arg, &id); + ret = inet_aton (argv[idx_ipv4]->arg, &id); if (! ret) { vty_out (vty, "%% Malformed bgp router identifier%s", VTY_NEWLINE); @@ -912,13 +916,14 @@ DEFUN (bgp_cluster_id, "Configure Route-Reflector Cluster-id\n" "Route-Reflector Cluster-id in IP address format\n") { + int idx_ipv4 = 2; int ret; struct bgp *bgp; struct in_addr cluster; bgp = vty->index; - ret = inet_aton (argv[2]->arg, &cluster); + ret = inet_aton (argv[idx_ipv4]->arg, &cluster); if (! ret) { vty_out (vty, "%% Malformed bgp cluster identifier%s", VTY_NEWLINE); @@ -986,12 +991,13 @@ DEFUN (bgp_confederation_identifier, "AS number\n" "Set routing domain confederation AS\n") { + int idx_number = 3; struct bgp *bgp; as_t as; bgp = vty->index; - VTY_GET_INTEGER_RANGE ("AS", as, argv[3]->arg, 1, BGP_AS4_MAX); + VTY_GET_INTEGER_RANGE ("AS", as, argv[idx_number]->arg, 1, BGP_AS4_MAX); bgp_confederation_id_set (bgp, as); @@ -1151,12 +1157,13 @@ DEFUN (bgp_maxmed_admin_medv, "Administratively applied, for an indefinite period\n" "Max MED value to be used\n") { + int idx_number = 3; struct bgp *bgp; bgp = vty->index; bgp->v_maxmed_admin = 1; - VTY_GET_INTEGER ("max-med admin med-value", bgp->maxmed_admin_value, argv[3]->arg); + VTY_GET_INTEGER ("max-med admin med-value", bgp->maxmed_admin_value, argv[idx_number]->arg); bgp_maxmed_update(bgp); @@ -1203,6 +1210,7 @@ DEFUN (bgp_maxmed_onstartup, "Effective on a startup\n" "Time (seconds) period for max-med\n") { + int idx_number = 3; struct bgp *bgp; bgp = vty->index; @@ -1213,7 +1221,7 @@ DEFUN (bgp_maxmed_onstartup, return CMD_WARNING; } - VTY_GET_INTEGER ("max-med on-startup period", bgp->v_maxmed_onstartup, argv[3]->arg); + VTY_GET_INTEGER ("max-med on-startup period", bgp->v_maxmed_onstartup, argv[idx_number]->arg); bgp->maxmed_onstartup_value = BGP_MAXMED_VALUE_DEFAULT; bgp_maxmed_update(bgp); @@ -1230,6 +1238,8 @@ DEFUN (bgp_maxmed_onstartup_medv, "Time (seconds) period for max-med\n" "Max MED value to be used\n") { + int idx_number = 3; + int idx_number_2 = 4; struct bgp *bgp; bgp = vty->index; @@ -1240,8 +1250,8 @@ DEFUN (bgp_maxmed_onstartup_medv, return CMD_WARNING; } - VTY_GET_INTEGER ("max-med on-startup period", bgp->v_maxmed_onstartup, argv[3]->arg); - VTY_GET_INTEGER ("max-med on-startup med-value", bgp->maxmed_onstartup_value, argv[4]->arg); + VTY_GET_INTEGER ("max-med on-startup period", bgp->v_maxmed_onstartup, argv[idx_number]->arg); + VTY_GET_INTEGER ("max-med on-startup med-value", bgp->maxmed_onstartup_value, argv[idx_number_2]->arg); bgp_maxmed_update(bgp); @@ -1366,7 +1376,8 @@ DEFUN (bgp_update_delay, "Force initial delay for best-path and updates\n" "Seconds\n") { - return bgp_update_delay_config_vty(vty, argv[1]->arg, NULL); + int idx_number = 1; + return bgp_update_delay_config_vty(vty, argv[idx_number]->arg, NULL); } DEFUN (bgp_update_delay_establish_wait, @@ -1377,7 +1388,9 @@ DEFUN (bgp_update_delay_establish_wait, "Wait for peers to be established\n" "Seconds\n") { - return bgp_update_delay_config_vty(vty, argv[1]->arg, argv[2]->arg); + int idx_number = 1; + int idx_number_2 = 2; + return bgp_update_delay_config_vty(vty, argv[idx_number]->arg, argv[idx_number_2]->arg); } /* Update-delay deconfiguration */ @@ -1434,7 +1447,8 @@ DEFUN (bgp_wpkt_quanta, "How many packets to write to peer socket per run\n" "Number of packets\n") { - return bgp_wpkt_quanta_config_vty(vty, argv[1]->arg, 1); + int idx_number = 1; + return bgp_wpkt_quanta_config_vty(vty, argv[idx_number]->arg, 1); } /* Update-delay deconfiguration */ @@ -1444,7 +1458,8 @@ DEFUN (no_bgp_wpkt_quanta, "How many packets to write to peer socket per run\n" "Number of packets\n") { - return bgp_wpkt_quanta_config_vty(vty, argv[2]->arg, 0); + int idx_number = 2; + return bgp_wpkt_quanta_config_vty(vty, argv[idx_number]->arg, 0); } static int @@ -1480,7 +1495,8 @@ DEFUN (bgp_coalesce_time, "Subgroup coalesce timer\n" "Subgroup coalesce timer value (in ms)\n") { - return bgp_coalesce_config_vty(vty, argv[1]->arg, 1); + int idx_number = 1; + return bgp_coalesce_config_vty(vty, argv[idx_number]->arg, 1); } DEFUN (no_bgp_coalesce_time, @@ -1489,7 +1505,8 @@ DEFUN (no_bgp_coalesce_time, "Subgroup coalesce timer\n" "Subgroup coalesce timer value (in ms)\n") { - return bgp_coalesce_config_vty(vty, argv[2]->arg, 0); + int idx_number = 2; + return bgp_coalesce_config_vty(vty, argv[idx_number]->arg, 0); } /* Maximum-paths configuration */ @@ -1499,7 +1516,8 @@ DEFUN (bgp_maxpaths, "Forward packets over multiple paths\n" "Number of paths\n") { - return bgp_maxpaths_config_vty(vty, BGP_PEER_EBGP, argv[1]->arg, 0, 1); + int idx_number = 1; + return bgp_maxpaths_config_vty(vty, BGP_PEER_EBGP, argv[idx_number]->arg, 0, 1); } DEFUN (bgp_maxpaths_ibgp, @@ -1509,7 +1527,8 @@ DEFUN (bgp_maxpaths_ibgp, "iBGP-multipath\n" "Number of paths\n") { - return bgp_maxpaths_config_vty(vty, BGP_PEER_IBGP, argv[2]->arg, 0, 1); + int idx_number = 2; + return bgp_maxpaths_config_vty(vty, BGP_PEER_IBGP, argv[idx_number]->arg, 0, 1); } DEFUN (bgp_maxpaths_ibgp_cluster, @@ -1520,7 +1539,8 @@ DEFUN (bgp_maxpaths_ibgp_cluster, "Number of paths\n" "Match the cluster length\n") { - return bgp_maxpaths_config_vty(vty, BGP_PEER_IBGP, argv[2]->arg, + int idx_number = 2; + return bgp_maxpaths_config_vty(vty, BGP_PEER_IBGP, argv[idx_number]->arg, BGP_FLAG_IBGP_MULTIPATH_SAME_CLUSTERLEN, 1); } @@ -1607,14 +1627,16 @@ DEFUN (bgp_timers, "Keepalive interval\n" "Holdtime\n") { + int idx_number = 2; + int idx_number_2 = 3; struct bgp *bgp; unsigned long keepalive = 0; unsigned long holdtime = 0; bgp = vty->index; - VTY_GET_INTEGER ("keepalive", keepalive, argv[2]->arg); - VTY_GET_INTEGER ("holdtime", holdtime, argv[3]->arg); + VTY_GET_INTEGER ("keepalive", keepalive, argv[idx_number]->arg); + VTY_GET_INTEGER ("holdtime", holdtime, argv[idx_number_2]->arg); /* Holdtime value check. */ if (holdtime < 3 && holdtime != 0) @@ -1826,6 +1848,7 @@ DEFUN (bgp_graceful_restart_stalepath_time, "Set the max time to hold onto restarting peer's stale paths\n" "Delay value (seconds)\n") { + int idx_number = 3; struct bgp *bgp; u_int32_t stalepath; @@ -1833,7 +1856,7 @@ DEFUN (bgp_graceful_restart_stalepath_time, if (! bgp) return CMD_WARNING; - VTY_GET_INTEGER_RANGE ("stalepath-time", stalepath, argv[3]->arg, 1, 3600); + VTY_GET_INTEGER_RANGE ("stalepath-time", stalepath, argv[idx_number]->arg, 1, 3600); bgp->stalepath_time = stalepath; return CMD_SUCCESS; } @@ -1846,6 +1869,7 @@ DEFUN (bgp_graceful_restart_restart_time, "Set the time to wait to delete stale routes before a BGP open message is received\n" "Delay value (seconds)\n") { + int idx_number = 3; struct bgp *bgp; u_int32_t restart; @@ -1853,7 +1877,7 @@ DEFUN (bgp_graceful_restart_restart_time, if (! bgp) return CMD_WARNING; - VTY_GET_INTEGER_RANGE ("restart-time", restart, argv[3]->arg, 1, 3600); + VTY_GET_INTEGER_RANGE ("restart-time", restart, argv[idx_number]->arg, 1, 3600); bgp->restart_time = restart; return CMD_SUCCESS; } @@ -2093,6 +2117,7 @@ DEFUN (bgp_bestpath_aspath_multipath_relax, "Generate an AS_SET\n" "Do not generate an AS_SET\n") { + int idx_as_set = 4; struct bgp *bgp; bgp = vty->index; @@ -2100,7 +2125,7 @@ DEFUN (bgp_bestpath_aspath_multipath_relax, /* no-as-set is now the default behavior so we can silently * ignore it */ - if (argv[4]->arg != NULL && strncmp (argv[4]->arg, "a", 1) == 0) + if (argv[idx_as_set]->arg != NULL && strncmp (argv[idx_as_set]->arg, "a", 1) == 0) bgp_flag_set (bgp, BGP_FLAG_MULTIPATH_RELAX_AS_SET); else bgp_flag_unset (bgp, BGP_FLAG_MULTIPATH_RELAX_AS_SET) ; @@ -2169,11 +2194,12 @@ DEFUN (bgp_bestpath_med, "Compare MED among confederation paths\n" "Treat missing MED as the least preferred one\n") { + int idx_med_knob = 3; struct bgp *bgp; bgp = vty->index; - if (strncmp (argv[3]->arg, "confed", 1) == 0) + if (strncmp (argv[idx_med_knob]->arg, "confed", 1) == 0) bgp_flag_set (bgp, BGP_FLAG_MED_CONFED); else bgp_flag_set (bgp, BGP_FLAG_MED_MISSING_AS_WORST); @@ -2223,11 +2249,12 @@ DEFUN (no_bgp_bestpath_med, "Compare MED among confederation paths\n" "Treat missing MED as the least preferred one\n") { + int idx_med_knob = 4; struct bgp *bgp; bgp = vty->index; - if (strncmp (argv[4]->arg, "confed", 1) == 0) + if (strncmp (argv[idx_med_knob]->arg, "confed", 1) == 0) bgp_flag_unset (bgp, BGP_FLAG_MED_CONFED); else bgp_flag_unset (bgp, BGP_FLAG_MED_MISSING_AS_WORST); @@ -2385,12 +2412,13 @@ DEFUN (bgp_default_local_preference, "local preference (higher=more preferred)\n" "Configure default local preference value\n") { + int idx_number = 3; struct bgp *bgp; u_int32_t local_pref; bgp = vty->index; - VTY_GET_INTEGER ("local preference", local_pref, argv[3]->arg); + VTY_GET_INTEGER ("local preference", local_pref, argv[idx_number]->arg); bgp_default_local_preference_set (bgp, local_pref); bgp_clear_star_soft_in (vty, bgp->name); @@ -2434,12 +2462,13 @@ DEFUN (bgp_default_subgroup_pkt_queue_max, "subgroup-pkt-queue-max\n" "Configure subgroup packet queue max\n") { + int idx_number = 3; struct bgp *bgp; u_int32_t max_size; bgp = vty->index; - VTY_GET_INTEGER ("subgroup packet queue max", max_size, argv[3]->arg); + VTY_GET_INTEGER ("subgroup packet queue max", max_size, argv[idx_number]->arg); bgp_default_subgroup_pkt_queue_max_set (bgp, max_size); @@ -2523,12 +2552,13 @@ DEFUN (bgp_listen_limit, "maximum number of BGP Dynamic Neighbors that can be created\n" "Configure Dynamic Neighbors listen limit value\n") { + int idx_number = 3; struct bgp *bgp; int listen_limit; bgp = vty->index; - VTY_GET_INTEGER_RANGE ("listen limit", listen_limit, argv[3]->arg, + VTY_GET_INTEGER_RANGE ("listen limit", listen_limit, argv[idx_number]->arg, BGP_DYNAMIC_NEIGHBORS_LIMIT_MIN, BGP_DYNAMIC_NEIGHBORS_LIMIT_MAX); @@ -2603,6 +2633,8 @@ DEFUN (bgp_listen_range, "add a listening range for Dynamic Neighbors\n" LISTEN_RANGE_ADDR_STR) { + int idx_ipv4_ipv6_prefixlen = 3; + int idx_word = 5; struct bgp *bgp; struct prefix range; struct peer_group *group, *existing_group; @@ -2611,10 +2643,10 @@ DEFUN (bgp_listen_range, bgp = vty->index; - //VTY_GET_IPV4_PREFIX ("listen range", range, argv[3]->arg); + //VTY_GET_IPV4_PREFIX ("listen range", range, argv[idx_ipv4_ipv6_prefixlen]->arg); /* Convert IP prefix string to struct prefix. */ - ret = str2prefix (argv[3]->arg, &range); + ret = str2prefix (argv[idx_ipv4_ipv6_prefixlen]->arg, &range); if (! ret) { vty_out (vty, "%% Malformed listen range%s", VTY_NEWLINE); @@ -2638,7 +2670,7 @@ DEFUN (bgp_listen_range, existing_group = listen_range_exists (bgp, &range, 1); if (existing_group) { - if (strcmp (existing_group->name, argv[5]->arg) == 0) + if (strcmp (existing_group->name, argv[idx_word]->arg) == 0) return CMD_SUCCESS; else { @@ -2656,7 +2688,7 @@ DEFUN (bgp_listen_range, return CMD_WARNING; } - group = peer_group_lookup (bgp, argv[5]->arg); + group = peer_group_lookup (bgp, argv[idx_word]->arg); if (! group) { vty_out (vty, "%% Configure the peer-group first%s", VTY_NEWLINE); @@ -2675,6 +2707,8 @@ DEFUN (no_bgp_listen_range, "delete a listening range for Dynamic Neighbors\n" "Remove Dynamic Neighbors listening range\n") { + int idx_ipv4_prefixlen = 4; + int idx_word = 6; struct bgp *bgp; struct prefix range; struct peer_group *group; @@ -2683,10 +2717,10 @@ DEFUN (no_bgp_listen_range, bgp = vty->index; - // VTY_GET_IPV4_PREFIX ("listen range", range, argv[4]->arg); + // VTY_GET_IPV4_PREFIX ("listen range", range, argv[idx_ipv4_prefixlen]->arg); /* Convert IP prefix string to struct prefix. */ - ret = str2prefix (argv[4]->arg, &range); + ret = str2prefix (argv[idx_ipv4_prefixlen]->arg, &range); if (! ret) { vty_out (vty, "%% Malformed listen range%s", VTY_NEWLINE); @@ -2707,7 +2741,7 @@ DEFUN (no_bgp_listen_range, apply_mask (&range); - group = peer_group_lookup (bgp, argv[6]->arg); + group = peer_group_lookup (bgp, argv[idx_word]->arg); if (! group) { vty_out (vty, "%% Peer-group does not exist%s", VTY_NEWLINE); @@ -2858,7 +2892,9 @@ DEFUN (neighbor_remote_as, "Specify a BGP neighbor\n" AS_STR) { - return peer_remote_as_vty (vty, argv[1]->arg, argv[3]->arg, AFI_IP, SAFI_UNICAST); + int idx_peer = 1; + int idx_remote_as = 3; + return peer_remote_as_vty (vty, argv[idx_peer]->arg, argv[idx_remote_as]->arg, AFI_IP, SAFI_UNICAST); } static int @@ -2980,11 +3016,12 @@ DEFUN (neighbor_interface_config, "Interface name or neighbor tag\n" "Enable BGP on interface\n") { + int idx_word = 1; if (argc == 2) - return peer_conf_interface_get (vty, argv[1]->arg, AFI_IP, SAFI_UNICAST, 0, + return peer_conf_interface_get (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, 0, argv[3]->arg, NULL); else - return peer_conf_interface_get (vty, argv[1]->arg, AFI_IP, SAFI_UNICAST, 0, + return peer_conf_interface_get (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, 0, NULL, NULL); } @@ -3008,7 +3045,8 @@ DEFUN (neighbor_interface_config_v6only, "Enable BGP on interface\n" "Enable BGP with v6 link-local only\n") { - return peer_conf_interface_get (vty, argv[1]->arg, AFI_IP, SAFI_UNICAST, 1, + int idx_word = 1; + return peer_conf_interface_get (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, 1, argv[5]->arg, NULL); } @@ -3021,8 +3059,10 @@ DEFUN (neighbor_interface_config_remote_as, "Enable BGP on interface\n" AS_STR) { - return peer_conf_interface_get (vty, argv[1]->arg, AFI_IP, SAFI_UNICAST, 0, - NULL, argv[4]->arg); + int idx_word = 1; + int idx_remote_as = 4; + return peer_conf_interface_get (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, 0, + NULL, argv[idx_remote_as]->arg); } DEFUN (neighbor_interface_v6only_config_remote_as, @@ -3033,8 +3073,10 @@ DEFUN (neighbor_interface_v6only_config_remote_as, "Enable BGP on interface\n" AS_STR) { - return peer_conf_interface_get (vty, argv[1]->arg, AFI_IP, SAFI_UNICAST, 1, - NULL, argv[5]->arg); + int idx_word = 1; + int idx_remote_as = 5; + return peer_conf_interface_get (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, 1, + NULL, argv[idx_remote_as]->arg); } DEFUN (neighbor_peer_group, @@ -3044,19 +3086,20 @@ DEFUN (neighbor_peer_group, "Interface name or neighbor tag\n" "Configure peer-group\n") { + int idx_word = 1; struct bgp *bgp; struct peer *peer; struct peer_group *group; bgp = vty->index; - peer = peer_lookup_by_conf_if (bgp, argv[1]->arg); + peer = peer_lookup_by_conf_if (bgp, argv[idx_word]->arg); if (peer) { vty_out (vty, "%% Name conflict with interface: %s", VTY_NEWLINE); return CMD_WARNING; } - group = peer_group_get (bgp, argv[1]->arg); + group = peer_group_get (bgp, argv[idx_word]->arg); if (! group) return CMD_WARNING; @@ -3080,17 +3123,18 @@ DEFUN (no_neighbor, NEIGHBOR_STR NEIGHBOR_ADDR_STR2) { + int idx_peer = 2; int ret; union sockunion su; struct peer_group *group; struct peer *peer; struct peer *other; - ret = str2sockunion (argv[2]->arg, &su); + ret = str2sockunion (argv[idx_peer]->arg, &su); if (ret < 0) { /* look up for neighbor by interface name config. */ - peer = peer_lookup_by_conf_if (vty->index, argv[2]->arg); + peer = peer_lookup_by_conf_if (vty->index, argv[idx_peer]->arg); if (peer) { /* Request zebra to terminate IPv6 RAs on this interface. */ @@ -3100,7 +3144,7 @@ DEFUN (no_neighbor, return CMD_SUCCESS; } - group = peer_group_lookup (vty->index, argv[2]->arg); + group = peer_group_lookup (vty->index, argv[idx_peer]->arg); if (group) peer_group_delete (group); else @@ -3182,10 +3226,11 @@ DEFUN (no_neighbor_interface_config, "Interface name\n" "Configure BGP on interface\n") { + int idx_word = 2; struct peer *peer; /* look up for neighbor by interface name config. */ - peer = peer_lookup_by_conf_if (vty->index, argv[2]->arg); + peer = peer_lookup_by_conf_if (vty->index, argv[idx_word]->arg); if (peer) { /* Request zebra to terminate IPv6 RAs on this interface. */ @@ -3214,9 +3259,10 @@ DEFUN (no_neighbor_peer_group, "Neighbor tag\n" "Configure peer-group\n") { + int idx_word = 2; struct peer_group *group; - group = peer_group_lookup (vty->index, argv[2]->arg); + group = peer_group_lookup (vty->index, argv[idx_word]->arg); if (group) peer_group_delete (group); else @@ -3236,18 +3282,19 @@ DEFUN (no_neighbor_interface_peer_group_remote_as, "Specify a BGP neighbor\n" AS_STR) { + int idx_word = 2; struct peer_group *group; struct peer *peer; /* look up for neighbor by interface name config. */ - peer = peer_lookup_by_conf_if (vty->index, argv[2]->arg); + peer = peer_lookup_by_conf_if (vty->index, argv[idx_word]->arg); if (peer) { peer_as_change (peer, 0, AS_SPECIFIED); return CMD_SUCCESS; } - group = peer_group_lookup (vty->index, argv[2]->arg); + group = peer_group_lookup (vty->index, argv[idx_word]->arg); if (group) peer_group_remote_as_delete (group); else @@ -3266,14 +3313,16 @@ DEFUN (neighbor_local_as, "Specify a local-as number\n" "AS number used as local AS\n") { + int idx_peer = 1; + int idx_number = 3; struct peer *peer; int ret; - peer = peer_and_group_lookup_vty (vty, argv[1]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; - ret = peer_local_as_set (peer, atoi (argv[3]->arg), 0, 0); + ret = peer_local_as_set (peer, atoi (argv[idx_number]->arg), 0, 0); return bgp_vty_return (vty, ret); } @@ -3286,14 +3335,16 @@ DEFUN (neighbor_local_as_no_prepend, "AS number used as local AS\n" "Do not prepend local-as to updates from ebgp peers\n") { + int idx_peer = 1; + int idx_number = 3; struct peer *peer; int ret; - peer = peer_and_group_lookup_vty (vty, argv[1]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; - ret = peer_local_as_set (peer, atoi (argv[3]->arg), 1, 0); + ret = peer_local_as_set (peer, atoi (argv[idx_number]->arg), 1, 0); return bgp_vty_return (vty, ret); } @@ -3307,14 +3358,16 @@ DEFUN (neighbor_local_as_no_prepend_replace_as, "Do not prepend local-as to updates from ebgp peers\n" "Do not prepend local-as to updates from ibgp peers\n") { + int idx_peer = 1; + int idx_number = 3; struct peer *peer; int ret; - peer = peer_and_group_lookup_vty (vty, argv[1]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; - ret = peer_local_as_set (peer, atoi (argv[3]->arg), 1, 1); + ret = peer_local_as_set (peer, atoi (argv[idx_number]->arg), 1, 1); return bgp_vty_return (vty, ret); } @@ -3354,10 +3407,11 @@ DEFUN (no_neighbor_local_as, NEIGHBOR_ADDR_STR2 "Specify a local-as number\n") { + int idx_peer = 2; struct peer *peer; int ret; - peer = peer_and_group_lookup_vty (vty, argv[2]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; @@ -3375,10 +3429,11 @@ DEFUN (neighbor_solo, NEIGHBOR_ADDR_STR2 "Solo peer - part of its own update group\n") { + int idx_peer = 1; struct peer *peer; int ret; - peer = peer_and_group_lookup_vty (vty, argv[1]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; @@ -3394,10 +3449,11 @@ DEFUN (no_neighbor_solo, NEIGHBOR_ADDR_STR2 "Solo peer - part of its own update group\n") { + int idx_peer = 2; struct peer *peer; int ret; - peer = peer_and_group_lookup_vty (vty, argv[2]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; @@ -3413,14 +3469,16 @@ DEFUN (neighbor_password, "Set a password\n" "The password\n") { + int idx_peer = 1; + int idx_line = 3; struct peer *peer; int ret; - peer = peer_and_group_lookup_vty (vty, argv[1]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; - ret = peer_password_set (peer, argv[3]->arg); + ret = peer_password_set (peer, argv[idx_line]->arg); return bgp_vty_return (vty, ret); } @@ -3442,10 +3500,11 @@ DEFUN (no_neighbor_password, NEIGHBOR_ADDR_STR2 "Set a password\n") { + int idx_peer = 2; struct peer *peer; int ret; - peer = peer_and_group_lookup_vty (vty, argv[2]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; @@ -3461,10 +3520,11 @@ DEFUN (neighbor_activate, NEIGHBOR_ADDR_STR2 "Enable the Address Family for this Neighbor\n") { + int idx_peer = 1; int ret; struct peer *peer; - peer = peer_and_group_lookup_vty (vty, argv[1]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; @@ -3483,11 +3543,12 @@ DEFUN (no_neighbor_activate, NEIGHBOR_ADDR_STR2 "Enable the Address Family for this Neighbor\n") { + int idx_peer = 2; int ret; struct peer *peer; /* Lookup peer. */ - peer = peer_and_group_lookup_vty (vty, argv[2]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; @@ -3506,6 +3567,8 @@ DEFUN (neighbor_set_peer_group, "Member of the peer-group\n" "peer-group name\n") { + int idx_peer = 1; + int idx_word = 3; int ret; as_t as; union sockunion su; @@ -3516,13 +3579,13 @@ DEFUN (neighbor_set_peer_group, bgp = vty->index; peer = NULL; - ret = str2sockunion (argv[1]->arg, &su); + ret = str2sockunion (argv[idx_peer]->arg, &su); if (ret < 0) { - peer = peer_lookup_by_conf_if (bgp, argv[1]->arg); + peer = peer_lookup_by_conf_if (bgp, argv[idx_peer]->arg); if (!peer) { - vty_out (vty, "%% Malformed address or name: %s%s", argv[1]->arg, VTY_NEWLINE); + vty_out (vty, "%% Malformed address or name: %s%s", argv[idx_peer]->arg, VTY_NEWLINE); return CMD_WARNING; } } @@ -3545,7 +3608,7 @@ DEFUN (neighbor_set_peer_group, } } - group = peer_group_lookup (bgp, argv[3]->arg); + group = peer_group_lookup (bgp, argv[idx_word]->arg); if (! group) { vty_out (vty, "%% Configure the peer-group first%s", VTY_NEWLINE); @@ -3572,6 +3635,8 @@ DEFUN (no_neighbor_set_peer_group, "Member of the peer-group\n" "peer-group name\n") { + int idx_peer = 2; + int idx_word = 4; int ret; struct bgp *bgp; struct peer *peer; @@ -3579,11 +3644,11 @@ DEFUN (no_neighbor_set_peer_group, bgp = vty->index; - peer = peer_lookup_vty (vty, argv[2]->arg); + peer = peer_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; - group = peer_group_lookup (bgp, argv[4]->arg); + group = peer_group_lookup (bgp, argv[idx_word]->arg); if (! group) { vty_out (vty, "%% Configure the peer-group first%s", VTY_NEWLINE); @@ -3644,7 +3709,8 @@ DEFUN (neighbor_passive, NEIGHBOR_ADDR_STR2 "Don't send open messages to this neighbor\n") { - return peer_flag_set_vty (vty, argv[1]->arg, PEER_FLAG_PASSIVE); + int idx_peer = 1; + return peer_flag_set_vty (vty, argv[idx_peer]->arg, PEER_FLAG_PASSIVE); } DEFUN (no_neighbor_passive, @@ -3655,7 +3721,8 @@ DEFUN (no_neighbor_passive, NEIGHBOR_ADDR_STR2 "Don't send open messages to this neighbor\n") { - return peer_flag_unset_vty (vty, argv[2]->arg, PEER_FLAG_PASSIVE); + int idx_peer = 2; + return peer_flag_unset_vty (vty, argv[idx_peer]->arg, PEER_FLAG_PASSIVE); } /* neighbor shutdown. */ @@ -3666,7 +3733,8 @@ DEFUN (neighbor_shutdown, NEIGHBOR_ADDR_STR2 "Administratively shut down this neighbor\n") { - return peer_flag_set_vty (vty, argv[1]->arg, PEER_FLAG_SHUTDOWN); + int idx_peer = 1; + return peer_flag_set_vty (vty, argv[idx_peer]->arg, PEER_FLAG_SHUTDOWN); } DEFUN (no_neighbor_shutdown, @@ -3677,7 +3745,8 @@ DEFUN (no_neighbor_shutdown, NEIGHBOR_ADDR_STR2 "Administratively shut down this neighbor\n") { - return peer_flag_unset_vty (vty, argv[2]->arg, PEER_FLAG_SHUTDOWN); + int idx_peer = 2; + return peer_flag_unset_vty (vty, argv[idx_peer]->arg, PEER_FLAG_SHUTDOWN); } /* neighbor capability dynamic. */ @@ -3689,7 +3758,8 @@ DEFUN (neighbor_capability_dynamic, "Advertise capability to the peer\n" "Advertise dynamic capability to this neighbor\n") { - return peer_flag_set_vty (vty, argv[1]->arg, PEER_FLAG_DYNAMIC_CAPABILITY); + int idx_peer = 1; + return peer_flag_set_vty (vty, argv[idx_peer]->arg, PEER_FLAG_DYNAMIC_CAPABILITY); } DEFUN (no_neighbor_capability_dynamic, @@ -3701,7 +3771,8 @@ DEFUN (no_neighbor_capability_dynamic, "Advertise capability to the peer\n" "Advertise dynamic capability to this neighbor\n") { - return peer_flag_unset_vty (vty, argv[2]->arg, PEER_FLAG_DYNAMIC_CAPABILITY); + int idx_peer = 2; + return peer_flag_unset_vty (vty, argv[idx_peer]->arg, PEER_FLAG_DYNAMIC_CAPABILITY); } /* neighbor dont-capability-negotiate */ @@ -3712,7 +3783,8 @@ DEFUN (neighbor_dont_capability_negotiate, NEIGHBOR_ADDR_STR2 "Do not perform capability negotiation\n") { - return peer_flag_set_vty (vty, argv[1]->arg, PEER_FLAG_DONT_CAPABILITY); + int idx_peer = 1; + return peer_flag_set_vty (vty, argv[idx_peer]->arg, PEER_FLAG_DONT_CAPABILITY); } DEFUN (no_neighbor_dont_capability_negotiate, @@ -3723,7 +3795,8 @@ DEFUN (no_neighbor_dont_capability_negotiate, NEIGHBOR_ADDR_STR2 "Do not perform capability negotiation\n") { - return peer_flag_unset_vty (vty, argv[2]->arg, PEER_FLAG_DONT_CAPABILITY); + int idx_peer = 2; + return peer_flag_unset_vty (vty, argv[idx_peer]->arg, PEER_FLAG_DONT_CAPABILITY); } /* neighbor capability extended next hop encoding */ @@ -3735,7 +3808,8 @@ DEFUN (neighbor_capability_enhe, "Advertise capability to the peer\n" "Advertise extended next-hop capability to the peer\n") { - return peer_flag_set_vty (vty, argv[1]->arg, PEER_FLAG_CAPABILITY_ENHE); + int idx_peer = 1; + return peer_flag_set_vty (vty, argv[idx_peer]->arg, PEER_FLAG_CAPABILITY_ENHE); } DEFUN (no_neighbor_capability_enhe, @@ -3747,7 +3821,8 @@ DEFUN (no_neighbor_capability_enhe, "Advertise capability to the peer\n" "Advertise extended next-hop capability to the peer\n") { - return peer_flag_unset_vty (vty, argv[2]->arg, PEER_FLAG_CAPABILITY_ENHE); + int idx_peer = 2; + return peer_flag_unset_vty (vty, argv[idx_peer]->arg, PEER_FLAG_CAPABILITY_ENHE); } static int @@ -3796,18 +3871,20 @@ DEFUN (neighbor_capability_orf_prefix, "Capability to RECEIVE the ORF from this neighbor\n" "Capability to SEND the ORF to this neighbor\n") { + int idx_peer = 1; + int idx_send_recv = 5; u_int16_t flag = 0; - if (strncmp (argv[5]->arg, "s", 1) == 0) + if (strncmp (argv[idx_send_recv]->arg, "s", 1) == 0) flag = PEER_FLAG_ORF_PREFIX_SM; - else if (strncmp (argv[5]->arg, "r", 1) == 0) + else if (strncmp (argv[idx_send_recv]->arg, "r", 1) == 0) flag = PEER_FLAG_ORF_PREFIX_RM; - else if (strncmp (argv[5]->arg, "b", 1) == 0) + else if (strncmp (argv[idx_send_recv]->arg, "b", 1) == 0) flag = PEER_FLAG_ORF_PREFIX_SM|PEER_FLAG_ORF_PREFIX_RM; else return CMD_WARNING; - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), flag); } @@ -3824,18 +3901,20 @@ DEFUN (no_neighbor_capability_orf_prefix, "Capability to RECEIVE the ORF from this neighbor\n" "Capability to SEND the ORF to this neighbor\n") { + int idx_peer = 2; + int idx_send_recv = 6; u_int16_t flag = 0; - if (strncmp (argv[6]->arg, "s", 1) == 0) + if (strncmp (argv[idx_send_recv]->arg, "s", 1) == 0) flag = PEER_FLAG_ORF_PREFIX_SM; - else if (strncmp (argv[6]->arg, "r", 1) == 0) + else if (strncmp (argv[idx_send_recv]->arg, "r", 1) == 0) flag = PEER_FLAG_ORF_PREFIX_RM; - else if (strncmp (argv[6]->arg, "b", 1) == 0) + else if (strncmp (argv[idx_send_recv]->arg, "b", 1) == 0) flag = PEER_FLAG_ORF_PREFIX_SM|PEER_FLAG_ORF_PREFIX_RM; else return CMD_WARNING; - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), flag); } @@ -3847,7 +3926,8 @@ DEFUN (neighbor_nexthop_self, NEIGHBOR_ADDR_STR2 "Disable the next hop calculation for this neighbor\n") { - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + int idx_peer = 1; + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_NEXTHOP_SELF); } @@ -3860,7 +3940,8 @@ DEFUN (neighbor_nexthop_self_force, "Disable the next hop calculation for this neighbor\n" "Set the next hop to self for reflected routes\n") { - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + int idx_peer = 1; + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_FORCE_NEXTHOP_SELF); } @@ -3873,7 +3954,8 @@ DEFUN (no_neighbor_nexthop_self, NEIGHBOR_ADDR_STR2 "Disable the next hop calculation for this neighbor\n") { - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + int idx_peer = 2; + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_NEXTHOP_SELF); } @@ -3887,7 +3969,8 @@ DEFUN (no_neighbor_nexthop_self_force, "Disable the next hop calculation for this neighbor\n" "Set the next hop to self for reflected routes\n") { - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + int idx_peer = 2; + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_FORCE_NEXTHOP_SELF); } @@ -3900,7 +3983,8 @@ DEFUN (neighbor_as_override, NEIGHBOR_ADDR_STR2 "Override ASNs in outbound updates if aspath equals remote-as\n") { - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + int idx_peer = 1; + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_AS_OVERRIDE); } @@ -3913,7 +3997,8 @@ DEFUN (no_neighbor_as_override, NEIGHBOR_ADDR_STR2 "Override ASNs in outbound updates if aspath equals remote-as\n") { - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + int idx_peer = 2; + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_AS_OVERRIDE); } @@ -3926,7 +4011,8 @@ DEFUN (neighbor_remove_private_as, NEIGHBOR_ADDR_STR2 "Remove private ASNs in outbound updates\n") { - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + int idx_peer = 1; + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_REMOVE_PRIVATE_AS); } @@ -3939,7 +4025,8 @@ DEFUN (neighbor_remove_private_as_all, "Remove private ASNs in outbound updates\n" "Apply to all AS numbers") { - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + int idx_peer = 1; + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_REMOVE_PRIVATE_AS_ALL); } @@ -3952,7 +4039,8 @@ DEFUN (neighbor_remove_private_as_replace_as, "Remove private ASNs in outbound updates\n" "Replace private ASNs with our ASN in outbound updates\n") { - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + int idx_peer = 1; + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE); } @@ -3966,7 +4054,8 @@ DEFUN (neighbor_remove_private_as_all_replace_as, "Apply to all AS numbers" "Replace private ASNs with our ASN in outbound updates\n") { - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + int idx_peer = 1; + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE); } @@ -3979,7 +4068,8 @@ DEFUN (no_neighbor_remove_private_as, NEIGHBOR_ADDR_STR2 "Remove private ASNs in outbound updates\n") { - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + int idx_peer = 2; + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_REMOVE_PRIVATE_AS); } @@ -3993,7 +4083,8 @@ DEFUN (no_neighbor_remove_private_as_all, "Remove private ASNs in outbound updates\n" "Apply to all AS numbers") { - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + int idx_peer = 2; + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_REMOVE_PRIVATE_AS_ALL); } @@ -4007,7 +4098,8 @@ DEFUN (no_neighbor_remove_private_as_replace_as, "Remove private ASNs in outbound updates\n" "Replace private ASNs with our ASN in outbound updates\n") { - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + int idx_peer = 2; + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE); } @@ -4022,7 +4114,8 @@ DEFUN (no_neighbor_remove_private_as_all_replace_as, "Apply to all AS numbers" "Replace private ASNs with our ASN in outbound updates\n") { - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + int idx_peer = 2; + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE); } @@ -4036,7 +4129,8 @@ DEFUN (neighbor_send_community, NEIGHBOR_ADDR_STR2 "Send Community attribute to this neighbor\n") { - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + int idx_peer = 1; + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_SEND_COMMUNITY); } @@ -4049,7 +4143,8 @@ DEFUN (no_neighbor_send_community, NEIGHBOR_ADDR_STR2 "Send Community attribute to this neighbor\n") { - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + int idx_peer = 2; + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_SEND_COMMUNITY); } @@ -4065,16 +4160,18 @@ DEFUN (neighbor_send_community_type, "Send Extended Community attributes\n" "Send Standard Community attributes\n") { - if (strncmp (argv[3]->arg, "s", 1) == 0) - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + int idx_peer = 1; + int idx_type = 3; + if (strncmp (argv[idx_type]->arg, "s", 1) == 0) + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_SEND_COMMUNITY); - if (strncmp (argv[3]->arg, "e", 1) == 0) - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + if (strncmp (argv[idx_type]->arg, "e", 1) == 0) + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_SEND_EXT_COMMUNITY); - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), (PEER_FLAG_SEND_COMMUNITY| PEER_FLAG_SEND_EXT_COMMUNITY)); @@ -4091,16 +4188,18 @@ DEFUN (no_neighbor_send_community_type, "Send Extended Community attributes\n" "Send Standard Community attributes\n") { - if (strncmp (argv[4]->arg, "s", 1) == 0) - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + int idx_peer = 2; + int idx_type = 4; + if (strncmp (argv[idx_type]->arg, "s", 1) == 0) + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_SEND_COMMUNITY); - if (strncmp (argv[4]->arg, "e", 1) == 0) - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + if (strncmp (argv[idx_type]->arg, "e", 1) == 0) + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_SEND_EXT_COMMUNITY); - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), (PEER_FLAG_SEND_COMMUNITY | PEER_FLAG_SEND_EXT_COMMUNITY)); @@ -4115,7 +4214,8 @@ DEFUN (neighbor_soft_reconfiguration, "Per neighbor soft reconfiguration\n" "Allow inbound soft reconfiguration for this neighbor\n") { - return peer_af_flag_set_vty (vty, argv[1]->arg, + int idx_peer = 1; + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_SOFT_RECONFIG); } @@ -4129,7 +4229,8 @@ DEFUN (no_neighbor_soft_reconfiguration, "Per neighbor soft reconfiguration\n" "Allow inbound soft reconfiguration for this neighbor\n") { - return peer_af_flag_unset_vty (vty, argv[2]->arg, + int idx_peer = 2; + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_SOFT_RECONFIG); } @@ -4141,14 +4242,15 @@ DEFUN (neighbor_route_reflector_client, NEIGHBOR_ADDR_STR2 "Configure a neighbor as Route Reflector client\n") { + int idx_peer = 1; struct peer *peer; - peer = peer_and_group_lookup_vty (vty, argv[1]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_REFLECTOR_CLIENT); } @@ -4161,7 +4263,8 @@ DEFUN (no_neighbor_route_reflector_client, NEIGHBOR_ADDR_STR2 "Configure a neighbor as Route Reflector client\n") { - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + int idx_peer = 2; + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_REFLECTOR_CLIENT); } @@ -4174,12 +4277,13 @@ DEFUN (neighbor_route_server_client, NEIGHBOR_ADDR_STR2 "Configure a neighbor as Route Server client\n") { + int idx_peer = 1; struct peer *peer; - peer = peer_and_group_lookup_vty (vty, argv[1]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_RSERVER_CLIENT); } @@ -4192,7 +4296,8 @@ DEFUN (no_neighbor_route_server_client, NEIGHBOR_ADDR_STR2 "Configure a neighbor as Route Server client\n") { - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + int idx_peer = 2; + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_RSERVER_CLIENT); } @@ -4205,7 +4310,8 @@ DEFUN (neighbor_nexthop_local_unchanged, "Configure treatment of outgoing link-local nexthop attribute\n" "Leave link-local nexthop unchanged for this peer\n") { - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + int idx_peer = 1; + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_NEXTHOP_LOCAL_UNCHANGED ); } @@ -4219,7 +4325,8 @@ DEFUN (no_neighbor_nexthop_local_unchanged, "Configure treatment of outgoing link-local-nexthop attribute\n" "Leave link-local nexthop unchanged for this peer\n") { - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + int idx_peer = 2; + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_NEXTHOP_LOCAL_UNCHANGED ); } @@ -4282,7 +4389,8 @@ DEFUN (neighbor_attr_unchanged, NEIGHBOR_ADDR_STR2 "BGP attribute is propagated unchanged to this neighbor\n") { - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + int idx_peer = 1; + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), (PEER_FLAG_AS_PATH_UNCHANGED | PEER_FLAG_NEXTHOP_UNCHANGED | @@ -4299,16 +4407,18 @@ DEFUN (neighbor_attr_unchanged1, "Nexthop attribute\n" "Med attribute\n") { + int idx_peer = 1; + int idx_attribute = 3; u_int16_t flags = 0; - if (strncmp (argv[3]->arg, "as-path", 1) == 0) + if (strncmp (argv[idx_attribute]->arg, "as-path", 1) == 0) SET_FLAG (flags, PEER_FLAG_AS_PATH_UNCHANGED); - else if (strncmp (argv[3]->arg, "next-hop", 1) == 0) + else if (strncmp (argv[idx_attribute]->arg, "next-hop", 1) == 0) SET_FLAG (flags, PEER_FLAG_NEXTHOP_UNCHANGED); - else if (strncmp (argv[3]->arg, "med", 1) == 0) + else if (strncmp (argv[idx_attribute]->arg, "med", 1) == 0) SET_FLAG (flags, PEER_FLAG_MED_UNCHANGED); - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), flags); } @@ -4322,14 +4432,16 @@ DEFUN (neighbor_attr_unchanged2, "Nexthop attribute\n" "Med attribute\n") { + int idx_peer = 1; + int idx_attribute = 4; u_int16_t flags = PEER_FLAG_AS_PATH_UNCHANGED; - if (strncmp (argv[4]->arg, "next-hop", 1) == 0) + if (strncmp (argv[idx_attribute]->arg, "next-hop", 1) == 0) SET_FLAG (flags, PEER_FLAG_NEXTHOP_UNCHANGED); - else if (strncmp (argv[4]->arg, "med", 1) == 0) + else if (strncmp (argv[idx_attribute]->arg, "med", 1) == 0) SET_FLAG (flags, PEER_FLAG_MED_UNCHANGED); - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), flags); } @@ -4344,14 +4456,16 @@ DEFUN (neighbor_attr_unchanged3, "As-path attribute\n" "Med attribute\n") { + int idx_peer = 1; + int idx_attribute = 4; u_int16_t flags = PEER_FLAG_NEXTHOP_UNCHANGED; - if (strncmp (argv[4]->arg, "as-path", 1) == 0) + if (strncmp (argv[idx_attribute]->arg, "as-path", 1) == 0) SET_FLAG (flags, PEER_FLAG_AS_PATH_UNCHANGED); - else if (strncmp (argv[4]->arg, "med", 1) == 0) + else if (strncmp (argv[idx_attribute]->arg, "med", 1) == 0) SET_FLAG (flags, PEER_FLAG_MED_UNCHANGED); - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), flags); } @@ -4365,14 +4479,16 @@ DEFUN (neighbor_attr_unchanged4, "As-path attribute\n" "Nexthop attribute\n") { + int idx_peer = 1; + int idx_attribute = 4; u_int16_t flags = PEER_FLAG_MED_UNCHANGED; - if (strncmp (argv[4]->arg, "as-path", 1) == 0) + if (strncmp (argv[idx_attribute]->arg, "as-path", 1) == 0) SET_FLAG (flags, PEER_FLAG_AS_PATH_UNCHANGED); - else if (strncmp (argv[4]->arg, "next-hop", 1) == 0) + else if (strncmp (argv[idx_attribute]->arg, "next-hop", 1) == 0) SET_FLAG (flags, PEER_FLAG_NEXTHOP_UNCHANGED); - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), flags); } @@ -4447,7 +4563,8 @@ DEFUN (no_neighbor_attr_unchanged, NEIGHBOR_ADDR_STR2 "BGP attribute is propagated unchanged to this neighbor\n") { - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + int idx_peer = 2; + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), (PEER_FLAG_AS_PATH_UNCHANGED | PEER_FLAG_NEXTHOP_UNCHANGED | @@ -4465,16 +4582,18 @@ DEFUN (no_neighbor_attr_unchanged1, "Nexthop attribute\n" "Med attribute\n") { + int idx_peer = 2; + int idx_attribute = 4; u_int16_t flags = 0; - if (strncmp (argv[4]->arg, "as-path", 1) == 0) + if (strncmp (argv[idx_attribute]->arg, "as-path", 1) == 0) SET_FLAG (flags, PEER_FLAG_AS_PATH_UNCHANGED); - else if (strncmp (argv[4]->arg, "next-hop", 1) == 0) + else if (strncmp (argv[idx_attribute]->arg, "next-hop", 1) == 0) SET_FLAG (flags, PEER_FLAG_NEXTHOP_UNCHANGED); - else if (strncmp (argv[4]->arg, "med", 1) == 0) + else if (strncmp (argv[idx_attribute]->arg, "med", 1) == 0) SET_FLAG (flags, PEER_FLAG_MED_UNCHANGED); - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), flags); } @@ -4489,14 +4608,16 @@ DEFUN (no_neighbor_attr_unchanged2, "Nexthop attribute\n" "Med attribute\n") { + int idx_peer = 2; + int idx_attribute = 5; u_int16_t flags = PEER_FLAG_AS_PATH_UNCHANGED; - if (strncmp (argv[5]->arg, "next-hop", 1) == 0) + if (strncmp (argv[idx_attribute]->arg, "next-hop", 1) == 0) SET_FLAG (flags, PEER_FLAG_NEXTHOP_UNCHANGED); - else if (strncmp (argv[5]->arg, "med", 1) == 0) + else if (strncmp (argv[idx_attribute]->arg, "med", 1) == 0) SET_FLAG (flags, PEER_FLAG_MED_UNCHANGED); - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), flags); } @@ -4511,14 +4632,16 @@ DEFUN (no_neighbor_attr_unchanged3, "As-path attribute\n" "Med attribute\n") { + int idx_peer = 2; + int idx_attribute = 5; u_int16_t flags = PEER_FLAG_NEXTHOP_UNCHANGED; - if (strncmp (argv[5]->arg, "as-path", 1) == 0) + if (strncmp (argv[idx_attribute]->arg, "as-path", 1) == 0) SET_FLAG (flags, PEER_FLAG_AS_PATH_UNCHANGED); - else if (strncmp (argv[5]->arg, "med", 1) == 0) + else if (strncmp (argv[idx_attribute]->arg, "med", 1) == 0) SET_FLAG (flags, PEER_FLAG_MED_UNCHANGED); - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), flags); } @@ -4533,14 +4656,16 @@ DEFUN (no_neighbor_attr_unchanged4, "As-path attribute\n" "Nexthop attribute\n") { + int idx_peer = 2; + int idx_attribute = 5; u_int16_t flags = PEER_FLAG_MED_UNCHANGED; - if (strncmp (argv[5]->arg, "as-path", 1) == 0) + if (strncmp (argv[idx_attribute]->arg, "as-path", 1) == 0) SET_FLAG (flags, PEER_FLAG_AS_PATH_UNCHANGED); - else if (strncmp (argv[5]->arg, "next-hop", 1) == 0) + else if (strncmp (argv[idx_attribute]->arg, "next-hop", 1) == 0) SET_FLAG (flags, PEER_FLAG_NEXTHOP_UNCHANGED); - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), flags); } @@ -4593,7 +4718,8 @@ DEFUN (neighbor_ebgp_multihop, NEIGHBOR_ADDR_STR2 "Allow EBGP neighbors not on directly connected networks\n") { - return peer_ebgp_multihop_set_vty (vty, argv[1]->arg, NULL); + int idx_peer = 1; + return peer_ebgp_multihop_set_vty (vty, argv[idx_peer]->arg, NULL); } DEFUN (neighbor_ebgp_multihop_ttl, @@ -4604,7 +4730,9 @@ DEFUN (neighbor_ebgp_multihop_ttl, "Allow EBGP neighbors not on directly connected networks\n" "maximum hop count\n") { - return peer_ebgp_multihop_set_vty (vty, argv[1]->arg, argv[3]->arg); + int idx_peer = 1; + int idx_number = 3; + return peer_ebgp_multihop_set_vty (vty, argv[idx_peer]->arg, argv[idx_number]->arg); } /* @@ -4625,7 +4753,8 @@ DEFUN (no_neighbor_ebgp_multihop, NEIGHBOR_ADDR_STR2 "Allow EBGP neighbors not on directly connected networks\n") { - return peer_ebgp_multihop_unset_vty (vty, argv[2]->arg); + int idx_peer = 2; + return peer_ebgp_multihop_unset_vty (vty, argv[idx_peer]->arg); } @@ -4645,7 +4774,8 @@ DEFUN (neighbor_disable_connected_check, NEIGHBOR_ADDR_STR2 "one-hop away EBGP peer using loopback address\n") { - return peer_flag_set_vty (vty, argv[1]->arg, PEER_FLAG_DISABLE_CONNECTED_CHECK); + int idx_peer = 1; + return peer_flag_set_vty (vty, argv[idx_peer]->arg, PEER_FLAG_DISABLE_CONNECTED_CHECK); } /* @@ -4665,7 +4795,8 @@ DEFUN (no_neighbor_disable_connected_check, NEIGHBOR_ADDR_STR2 "one-hop away EBGP peer using loopback address\n") { - return peer_flag_unset_vty (vty, argv[2]->arg, PEER_FLAG_DISABLE_CONNECTED_CHECK); + int idx_peer = 2; + return peer_flag_unset_vty (vty, argv[idx_peer]->arg, PEER_FLAG_DISABLE_CONNECTED_CHECK); } /* Enforce multihop. */ @@ -4680,10 +4811,11 @@ DEFUN (neighbor_description, "Neighbor specific description\n" "Up to 80 characters describing this neighbor\n") { + int idx_peer = 1; struct peer *peer; char *str; - peer = peer_and_group_lookup_vty (vty, argv[1]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; @@ -4717,9 +4849,10 @@ DEFUN (no_neighbor_description, NEIGHBOR_ADDR_STR2 "Neighbor specific description\n") { + int idx_peer = 2; struct peer *peer; - peer = peer_and_group_lookup_vty (vty, argv[2]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; @@ -4775,7 +4908,9 @@ DEFUN (neighbor_update_source, "Source of routing updates\n" BGP_UPDATE_SOURCE_HELP_STR) { - return peer_update_source_vty (vty, argv[1]->arg, argv[3]->arg); + int idx_peer = 1; + int idx_peer_2 = 3; + return peer_update_source_vty (vty, argv[idx_peer]->arg, argv[idx_peer_2]->arg); } DEFUN (no_neighbor_update_source, @@ -4787,7 +4922,8 @@ DEFUN (no_neighbor_update_source, "Source of routing updates\n" BGP_UPDATE_SOURCE_HELP_STR) { - return peer_update_source_vty (vty, argv[2]->arg, NULL); + int idx_peer = 2; + return peer_update_source_vty (vty, argv[idx_peer]->arg, NULL); } static int @@ -4818,7 +4954,8 @@ DEFUN (neighbor_default_originate, NEIGHBOR_ADDR_STR2 "Originate default route to this neighbor\n") { - return peer_default_originate_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + int idx_peer = 1; + return peer_default_originate_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), NULL, 1); } @@ -4831,8 +4968,10 @@ DEFUN (neighbor_default_originate_rmap, "Route-map to specify criteria to originate default\n" "route-map name\n") { - return peer_default_originate_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), - bgp_node_safi (vty), argv[4]->arg, 1); + int idx_peer = 1; + int idx_word = 4; + return peer_default_originate_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), + bgp_node_safi (vty), argv[idx_word]->arg, 1); } /* @@ -4854,7 +4993,8 @@ DEFUN (no_neighbor_default_originate, NEIGHBOR_ADDR_STR2 "Originate default route to this neighbor\n") { - return peer_default_originate_set_vty (vty, argv[2]->arg, bgp_node_afi (vty), + int idx_peer = 2; + return peer_default_originate_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), NULL, 0); } @@ -4896,7 +5036,9 @@ DEFUN (neighbor_port, "Neighbor's BGP port\n" "TCP port number\n") { - return peer_port_vty (vty, argv[1]->arg, AFI_IP, argv[3]->arg); + int idx_ip = 1; + int idx_number = 3; + return peer_port_vty (vty, argv[idx_ip]->arg, AFI_IP, argv[idx_number]->arg); } /* @@ -4917,7 +5059,8 @@ DEFUN (no_neighbor_port, NEIGHBOR_ADDR_STR "Neighbor's BGP port\n") { - return peer_port_vty (vty, argv[2]->arg, AFI_IP, NULL); + int idx_ip = 2; + return peer_port_vty (vty, argv[idx_ip]->arg, AFI_IP, NULL); } @@ -4962,7 +5105,9 @@ DEFUN (neighbor_weight, "Set default weight for routes from this neighbor\n" "default weight\n") { - return peer_weight_set_vty (vty, argv[1]->arg, argv[3]->arg); + int idx_peer = 1; + int idx_number = 3; + return peer_weight_set_vty (vty, argv[idx_peer]->arg, argv[idx_number]->arg); } /* @@ -4983,7 +5128,8 @@ DEFUN (no_neighbor_weight, NEIGHBOR_ADDR_STR2 "Set default weight for routes from this neighbor\n") { - return peer_weight_unset_vty (vty, argv[2]->arg); + int idx_peer = 2; + return peer_weight_unset_vty (vty, argv[idx_peer]->arg); } @@ -4995,7 +5141,8 @@ DEFUN (neighbor_override_capability, NEIGHBOR_ADDR_STR2 "Override capability negotiation result\n") { - return peer_flag_set_vty (vty, argv[1]->arg, PEER_FLAG_OVERRIDE_CAPABILITY); + int idx_peer = 1; + return peer_flag_set_vty (vty, argv[idx_peer]->arg, PEER_FLAG_OVERRIDE_CAPABILITY); } DEFUN (no_neighbor_override_capability, @@ -5006,7 +5153,8 @@ DEFUN (no_neighbor_override_capability, NEIGHBOR_ADDR_STR2 "Override capability negotiation result\n") { - return peer_flag_unset_vty (vty, argv[2]->arg, PEER_FLAG_OVERRIDE_CAPABILITY); + int idx_peer = 2; + return peer_flag_unset_vty (vty, argv[idx_peer]->arg, PEER_FLAG_OVERRIDE_CAPABILITY); } DEFUN (neighbor_strict_capability, @@ -5016,7 +5164,8 @@ DEFUN (neighbor_strict_capability, NEIGHBOR_ADDR_STR "Strict capability negotiation match\n") { - return peer_flag_set_vty (vty, argv[1]->arg, PEER_FLAG_STRICT_CAP_MATCH); + int idx_ip = 1; + return peer_flag_set_vty (vty, argv[idx_ip]->arg, PEER_FLAG_STRICT_CAP_MATCH); } DEFUN (no_neighbor_strict_capability, @@ -5027,7 +5176,8 @@ DEFUN (no_neighbor_strict_capability, NEIGHBOR_ADDR_STR "Strict capability negotiation match\n") { - return peer_flag_unset_vty (vty, argv[2]->arg, PEER_FLAG_STRICT_CAP_MATCH); + int idx_ip = 2; + return peer_flag_unset_vty (vty, argv[idx_ip]->arg, PEER_FLAG_STRICT_CAP_MATCH); } static int @@ -5075,7 +5225,10 @@ DEFUN (neighbor_timers, "Keepalive interval\n" "Holdtime\n") { - return peer_timers_set_vty (vty, argv[1]->arg, argv[3]->arg, argv[4]->arg); + int idx_peer = 1; + int idx_number = 3; + int idx_number_2 = 4; + return peer_timers_set_vty (vty, argv[idx_peer]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg); } /* @@ -5097,7 +5250,8 @@ DEFUN (no_neighbor_timers, NEIGHBOR_ADDR_STR2 "BGP per neighbor timers\n") { - return peer_timers_unset_vty (vty, argv[2]->arg); + int idx_peer = 2; + return peer_timers_unset_vty (vty, argv[idx_peer]->arg); } @@ -5144,7 +5298,9 @@ DEFUN (neighbor_timers_connect, "BGP connect timer\n" "Connect timer\n") { - return peer_timers_connect_set_vty (vty, argv[1]->arg, argv[4]->arg); + int idx_peer = 1; + int idx_number = 4; + return peer_timers_connect_set_vty (vty, argv[idx_peer]->arg, argv[idx_number]->arg); } /* @@ -5167,7 +5323,8 @@ DEFUN (no_neighbor_timers_connect, "BGP per neighbor timers\n" "BGP connect timer\n") { - return peer_timers_connect_unset_vty (vty, argv[2]->arg); + int idx_peer = 2; + return peer_timers_connect_unset_vty (vty, argv[idx_peer]->arg); } @@ -5202,7 +5359,9 @@ DEFUN (neighbor_advertise_interval, "Minimum interval between sending BGP routing updates\n" "time in seconds\n") { - return peer_advertise_interval_vty (vty, argv[1]->arg, argv[3]->arg, 1); + int idx_peer = 1; + int idx_number = 3; + return peer_advertise_interval_vty (vty, argv[idx_peer]->arg, argv[idx_number]->arg, 1); } /* @@ -5223,7 +5382,8 @@ DEFUN (no_neighbor_advertise_interval, NEIGHBOR_ADDR_STR2 "Minimum interval between sending BGP routing updates\n") { - return peer_advertise_interval_vty (vty, argv[2]->arg, NULL, 0); + int idx_peer = 2; + return peer_advertise_interval_vty (vty, argv[idx_peer]->arg, NULL, 0); } @@ -5236,11 +5396,12 @@ DEFUN (bgp_set_route_map_delay_timer, "Time in secs to wait before processing route-map changes\n" "0 disables the timer, no route updates happen when route-maps change\n") { + int idx_number = 3; u_int32_t rmap_delay_timer; - if (argv[3]->arg) + if (argv[idx_number]->arg) { - VTY_GET_INTEGER_RANGE ("delay-timer", rmap_delay_timer, argv[3]->arg, 0, 600); + VTY_GET_INTEGER_RANGE ("delay-timer", rmap_delay_timer, argv[idx_number]->arg, 0, 600); bm->rmap_update_timer = rmap_delay_timer; /* if the dynamic update handling is being disabled, and a timer is @@ -5306,10 +5467,12 @@ DEFUN (neighbor_interface, "Interface\n" "Interface name\n") { + int idx_ip = 1; + int idx_word = 3; if (argc == 3) - return peer_interface_vty (vty, argv[1]->arg, argv[3]->arg); + return peer_interface_vty (vty, argv[idx_ip]->arg, argv[idx_word]->arg); else - return peer_interface_vty (vty, argv[1]->arg, argv[3]->arg); + return peer_interface_vty (vty, argv[idx_ip]->arg, argv[idx_word]->arg); } DEFUN (no_neighbor_interface, @@ -5321,7 +5484,8 @@ DEFUN (no_neighbor_interface, "Interface\n" "Interface name\n") { - return peer_interface_vty (vty, argv[2]->arg, NULL); + int idx_peer = 2; + return peer_interface_vty (vty, argv[idx_peer]->arg, NULL); } /* Set distribute list to the peer. */ @@ -5384,8 +5548,11 @@ DEFUN (neighbor_distribute_list, "Filter incoming updates\n" "Filter outgoing updates\n") { - return peer_distribute_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), - bgp_node_safi (vty), argv[3]->arg, argv[4]->arg); + int idx_peer = 1; + int idx_acl = 3; + int idx_in_out = 4; + return peer_distribute_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), + bgp_node_safi (vty), argv[idx_acl]->arg, argv[idx_in_out]->arg); } DEFUN (no_neighbor_distribute_list, @@ -5401,8 +5568,10 @@ DEFUN (no_neighbor_distribute_list, "Filter incoming updates\n" "Filter outgoing updates\n") { - return peer_distribute_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), - bgp_node_safi (vty), argv[5]->arg); + int idx_peer = 2; + int idx_in_out = 5; + return peer_distribute_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), + bgp_node_safi (vty), argv[idx_in_out]->arg); } /* Set prefix list to the peer. */ @@ -5463,8 +5632,11 @@ DEFUN (neighbor_prefix_list, "Filter incoming updates\n" "Filter outgoing updates\n") { - return peer_prefix_list_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), - bgp_node_safi (vty), argv[3]->arg, argv[4]->arg); + int idx_peer = 1; + int idx_word = 3; + int idx_in_out = 4; + return peer_prefix_list_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), + bgp_node_safi (vty), argv[idx_word]->arg, argv[idx_in_out]->arg); } DEFUN (no_neighbor_prefix_list, @@ -5478,8 +5650,10 @@ DEFUN (no_neighbor_prefix_list, "Filter incoming updates\n" "Filter outgoing updates\n") { - return peer_prefix_list_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), - bgp_node_safi (vty), argv[5]->arg); + int idx_peer = 2; + int idx_in_out = 5; + return peer_prefix_list_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), + bgp_node_safi (vty), argv[idx_in_out]->arg); } static int @@ -5540,8 +5714,11 @@ DEFUN (neighbor_filter_list, "Filter incoming routes\n" "Filter outgoing routes\n") { - return peer_aslist_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), - bgp_node_safi (vty), argv[3]->arg, argv[4]->arg); + int idx_peer = 1; + int idx_word = 3; + int idx_in_out = 4; + return peer_aslist_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), + bgp_node_safi (vty), argv[idx_word]->arg, argv[idx_in_out]->arg); } DEFUN (no_neighbor_filter_list, @@ -5555,8 +5732,10 @@ DEFUN (no_neighbor_filter_list, "Filter incoming routes\n" "Filter outgoing routes\n") { - return peer_aslist_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), - bgp_node_safi (vty), argv[5]->arg); + int idx_peer = 2; + int idx_in_out = 5; + return peer_aslist_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), + bgp_node_safi (vty), argv[idx_in_out]->arg); } /* Set route-map to the peer. */ @@ -5617,8 +5796,11 @@ DEFUN (neighbor_route_map, "Apply map to incoming routes\n" "Apply map to outbound routes\n") { - return peer_route_map_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), - bgp_node_safi (vty), argv[3]->arg, argv[4]->arg); + int idx_peer = 1; + int idx_word = 3; + int idx_in_out = 4; + return peer_route_map_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), + bgp_node_safi (vty), argv[idx_word]->arg, argv[idx_in_out]->arg); } DEFUN (no_neighbor_route_map, @@ -5632,8 +5814,10 @@ DEFUN (no_neighbor_route_map, "Apply map to incoming routes\n" "Apply map to outbound routes\n") { - return peer_route_map_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), - bgp_node_safi (vty), argv[5]->arg); + int idx_peer = 2; + int idx_in_out = 5; + return peer_route_map_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), + bgp_node_safi (vty), argv[idx_in_out]->arg); } /* Set unsuppress-map to the peer. */ @@ -5678,8 +5862,10 @@ DEFUN (neighbor_unsuppress_map, "Route-map to selectively unsuppress suppressed routes\n" "Name of route map\n") { - return peer_unsuppress_map_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), - bgp_node_safi (vty), argv[3]->arg); + int idx_peer = 1; + int idx_word = 3; + return peer_unsuppress_map_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), + bgp_node_safi (vty), argv[idx_word]->arg); } DEFUN (no_neighbor_unsuppress_map, @@ -5691,7 +5877,8 @@ DEFUN (no_neighbor_unsuppress_map, "Route-map to selectively unsuppress suppressed routes\n" "Name of route map\n") { - return peer_unsuppress_map_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + int idx_peer = 2; + return peer_unsuppress_map_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty)); } @@ -5754,8 +5941,10 @@ DEFUN (neighbor_maximum_prefix, "Maximum number of prefix accept from this peer\n" "maximum no. of prefix limit\n") { - return peer_maximum_prefix_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), - bgp_node_safi (vty), argv[3]->arg, NULL, 0, + int idx_peer = 1; + int idx_number = 3; + return peer_maximum_prefix_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), + bgp_node_safi (vty), argv[idx_number]->arg, NULL, 0, NULL); } @@ -5768,8 +5957,11 @@ DEFUN (neighbor_maximum_prefix_threshold, "maximum no. of prefix limit\n" "Threshold value (%) at which to generate a warning msg\n") { - return peer_maximum_prefix_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), - bgp_node_safi (vty), argv[3]->arg, argv[4]->arg, 0, + int idx_peer = 1; + int idx_number = 3; + int idx_number_2 = 4; + return peer_maximum_prefix_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), + bgp_node_safi (vty), argv[idx_number]->arg, argv[idx_number_2]->arg, 0, NULL); } @@ -5782,8 +5974,10 @@ DEFUN (neighbor_maximum_prefix_warning, "maximum no. of prefix limit\n" "Only give warning message when limit is exceeded\n") { - return peer_maximum_prefix_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), - bgp_node_safi (vty), argv[3]->arg, NULL, 1, + int idx_peer = 1; + int idx_number = 3; + return peer_maximum_prefix_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), + bgp_node_safi (vty), argv[idx_number]->arg, NULL, 1, NULL); } @@ -5797,8 +5991,11 @@ DEFUN (neighbor_maximum_prefix_threshold_warning, "Threshold value (%) at which to generate a warning msg\n" "Only give warning message when limit is exceeded\n") { - return peer_maximum_prefix_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), - bgp_node_safi (vty), argv[3]->arg, argv[4]->arg, 1, NULL); + int idx_peer = 1; + int idx_number = 3; + int idx_number_2 = 4; + return peer_maximum_prefix_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), + bgp_node_safi (vty), argv[idx_number]->arg, argv[idx_number_2]->arg, 1, NULL); } DEFUN (neighbor_maximum_prefix_restart, @@ -5811,8 +6008,11 @@ DEFUN (neighbor_maximum_prefix_restart, "Restart bgp connection after limit is exceeded\n" "Restart interval in minutes") { - return peer_maximum_prefix_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), - bgp_node_safi (vty), argv[3]->arg, NULL, 0, argv[5]->arg); + int idx_peer = 1; + int idx_number = 3; + int idx_number_2 = 5; + return peer_maximum_prefix_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), + bgp_node_safi (vty), argv[idx_number]->arg, NULL, 0, argv[idx_number_2]->arg); } DEFUN (neighbor_maximum_prefix_threshold_restart, @@ -5826,8 +6026,12 @@ DEFUN (neighbor_maximum_prefix_threshold_restart, "Restart bgp connection after limit is exceeded\n" "Restart interval in minutes") { - return peer_maximum_prefix_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), - bgp_node_safi (vty), argv[3]->arg, argv[4]->arg, 0, argv[6]->arg); + int idx_peer = 1; + int idx_number = 3; + int idx_number_2 = 4; + int idx_number_3 = 6; + return peer_maximum_prefix_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), + bgp_node_safi (vty), argv[idx_number]->arg, argv[idx_number_2]->arg, 0, argv[idx_number_3]->arg); } /* @@ -5892,7 +6096,8 @@ DEFUN (no_neighbor_maximum_prefix, NEIGHBOR_ADDR_STR2 "Maximum number of prefix accept from this peer\n") { - return peer_maximum_prefix_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + int idx_peer = 2; + return peer_maximum_prefix_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty)); } @@ -5919,11 +6124,12 @@ DEFUN (neighbor_allowas_in, NEIGHBOR_ADDR_STR2 "Accept as-path with my AS present in it\n") { + int idx_peer = 1; int ret; struct peer *peer; unsigned int allow_num; - peer = peer_and_group_lookup_vty (vty, argv[1]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; @@ -5957,10 +6163,11 @@ DEFUN (no_neighbor_allowas_in, NEIGHBOR_ADDR_STR2 "allow local ASN appears in aspath attribute\n") { + int idx_peer = 2; int ret; struct peer *peer; - peer = peer_and_group_lookup_vty (vty, argv[2]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; @@ -5977,14 +6184,16 @@ DEFUN (neighbor_ttl_security, NEIGHBOR_ADDR_STR2 "Specify the maximum number of hops to the BGP peer\n") { + int idx_peer = 1; + int idx_number = 4; struct peer *peer; int gtsm_hops; - peer = peer_and_group_lookup_vty (vty, argv[1]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; - VTY_GET_INTEGER_RANGE ("", gtsm_hops, argv[4]->arg, 1, 254); + VTY_GET_INTEGER_RANGE ("", gtsm_hops, argv[idx_number]->arg, 1, 254); /* * If 'neighbor swpX', then this is for directly connected peers, @@ -5992,7 +6201,7 @@ DEFUN (neighbor_ttl_security, */ if (peer->conf_if && (gtsm_hops > 1)) { vty_out (vty, "%s is directly connected peer, hops cannot exceed 1%s", - argv[1]->arg, VTY_NEWLINE); + argv[idx_peer]->arg, VTY_NEWLINE); return CMD_WARNING; } @@ -6007,9 +6216,10 @@ DEFUN (no_neighbor_ttl_security, NEIGHBOR_ADDR_STR2 "Specify the maximum number of hops to the BGP peer\n") { + int idx_peer = 2; struct peer *peer; - peer = peer_and_group_lookup_vty (vty, argv[2]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; @@ -6023,13 +6233,14 @@ DEFUN (neighbor_addpath_tx_all_paths, NEIGHBOR_ADDR_STR2 "Use addpath to advertise all paths to a neighbor\n") { + int idx_peer = 1; struct peer *peer; - peer = peer_and_group_lookup_vty (vty, argv[1]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_ADDPATH_TX_ALL_PATHS); } @@ -6042,7 +6253,8 @@ DEFUN (no_neighbor_addpath_tx_all_paths, NEIGHBOR_ADDR_STR2 "Use addpath to advertise all paths to a neighbor\n") { - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + int idx_peer = 2; + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_ADDPATH_TX_ALL_PATHS); } @@ -6054,13 +6266,14 @@ DEFUN (neighbor_addpath_tx_bestpath_per_as, NEIGHBOR_ADDR_STR2 "Use addpath to advertise the bestpath per each neighboring AS\n") { + int idx_peer = 1; struct peer *peer; - peer = peer_and_group_lookup_vty (vty, argv[1]->arg); + peer = peer_and_group_lookup_vty (vty, argv[idx_peer]->arg); if (! peer) return CMD_WARNING; - return peer_af_flag_set_vty (vty, argv[1]->arg, bgp_node_afi (vty), + return peer_af_flag_set_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_ADDPATH_TX_BESTPATH_PER_AS); } @@ -6073,7 +6286,8 @@ DEFUN (no_neighbor_addpath_tx_bestpath_per_as, NEIGHBOR_ADDR_STR2 "Use addpath to advertise the bestpath per each neighboring AS\n") { - return peer_af_flag_unset_vty (vty, argv[2]->arg, bgp_node_afi (vty), + int idx_peer = 2; + return peer_af_flag_unset_vty (vty, argv[idx_peer]->arg, bgp_node_afi (vty), bgp_node_safi (vty), PEER_FLAG_ADDPATH_TX_BESTPATH_PER_AS); } @@ -6098,7 +6312,8 @@ DEFUN (address_family_ipv4_safi, "Address Family modifier\n" "Address Family modifier\n") { - if (strncmp (argv[2]->arg, "m", 1) == 0) + int idx_safi = 2; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) vty->node = BGP_IPV4M_NODE; else vty->node = BGP_IPV4_NODE; @@ -6124,7 +6339,8 @@ DEFUN (address_family_ipv6_safi, "Address Family modifier\n" "Address Family modifier\n") { - if (strncmp (argv[2]->arg, "m", 1) == 0) + int idx_safi = 2; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) vty->node = BGP_IPV6M_NODE; else vty->node = BGP_IPV6_NODE; @@ -6400,10 +6616,11 @@ DEFUN (clear_ip_bgp_peer, "BGP IPv6 neighbor to clear\n" "BGP neighbor on interface to clear\n") { + int idx_peer = 3; if (argc == 3) return bgp_clear_vty (vty, argv[1], 0, 0, clear_peer, BGP_CLEAR_SOFT_NONE, argv[2]); - return bgp_clear_vty (vty, NULL, 0, 0, clear_peer, BGP_CLEAR_SOFT_NONE, argv[3]->arg); + return bgp_clear_vty (vty, NULL, 0, 0, clear_peer, BGP_CLEAR_SOFT_NONE, argv[idx_peer]->arg); } @@ -6459,10 +6676,11 @@ DEFUN (clear_ip_bgp_peer_group, "Clear all members of peer-group\n" "BGP peer-group name\n") { + int idx_word = 4; if (argc == 3) return bgp_clear_vty (vty, argv[1], 0, 0, clear_group, BGP_CLEAR_SOFT_NONE, argv[2]); - return bgp_clear_vty (vty, NULL, 0, 0, clear_group, BGP_CLEAR_SOFT_NONE, argv[4]->arg); + return bgp_clear_vty (vty, NULL, 0, 0, clear_group, BGP_CLEAR_SOFT_NONE, argv[idx_word]->arg); } @@ -6556,10 +6774,11 @@ DEFUN (clear_ip_bgp_prefix, "Clear bestpath and re-advertise\n" "IP prefix /, e.g., 35.0.0.0/8\n") { + int idx_ipv4_prefixlen = 4; if (argc == 3) return bgp_clear_prefix (vty, argv[1], argv[2], AFI_IP, SAFI_UNICAST, NULL); - return bgp_clear_prefix (vty, NULL, argv[4]->arg, AFI_IP, SAFI_UNICAST, NULL); + return bgp_clear_prefix (vty, NULL, argv[idx_ipv4_prefixlen]->arg, AFI_IP, SAFI_UNICAST, NULL); } @@ -6607,11 +6826,12 @@ DEFUN (clear_ip_bgp_as, BGP_STR "Clear peers with the AS number\n") { + int idx_number = 3; if (argc == 3) return bgp_clear_vty (vty, argv[1], 0, 0, clear_as, BGP_CLEAR_SOFT_NONE, argv[2]); - return bgp_clear_vty (vty, NULL, 0, 0, clear_as, BGP_CLEAR_SOFT_NONE, argv[3]->arg); -} + return bgp_clear_vty (vty, NULL, 0, 0, clear_as, BGP_CLEAR_SOFT_NONE, argv[idx_number]->arg); +} @@ -6693,7 +6913,8 @@ DEFUN (clear_ip_bgp_all_ipv4_soft_out, BGP_SOFT_STR BGP_SOFT_OUT_STR) { - if (strncmp (argv[5]->arg, "m", 1) == 0) + int idx_safi = 5; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_all, BGP_CLEAR_SOFT_OUT, NULL); @@ -6728,11 +6949,14 @@ DEFUN (clear_ip_bgp_instance_all_ipv4_soft_out, "Address Family modifier\n" BGP_SOFT_OUT_STR) { - if (strncmp (argv[7]->arg, "m", 1) == 0) - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_MULTICAST, clear_all, + int idx_view_vrf = 3; + int idx_word = 4; + int idx_safi = 7; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, clear_all, BGP_CLEAR_SOFT_OUT, NULL); - return bgp_clear_vty (vty, argv[3]->arg, AFI_IP, SAFI_UNICAST, clear_all, + return bgp_clear_vty (vty, argv[idx_view_vrf]->arg, AFI_IP, SAFI_UNICAST, clear_all, BGP_CLEAR_SOFT_OUT, NULL); } @@ -6886,10 +7110,12 @@ DEFUN (clear_bgp_ipv6_safi_prefix, "Clear bestpath and re-advertise\n" "IPv6 prefix /, e.g., 3ffe::/16\n") { - if (strncmp (argv[3]->arg, "m", 1) == 0) - return bgp_clear_prefix (vty, NULL, argv[5]->arg, AFI_IP6, SAFI_MULTICAST, NULL); + int idx_safi = 3; + int idx_ipv6_prefixlen = 5; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_clear_prefix (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_MULTICAST, NULL); else - return bgp_clear_prefix (vty, NULL, argv[5]->arg, AFI_IP6, SAFI_UNICAST, NULL); + return bgp_clear_prefix (vty, NULL, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, NULL); } DEFUN (clear_bgp_instance_ipv6_safi_prefix, @@ -6903,10 +7129,13 @@ DEFUN (clear_bgp_instance_ipv6_safi_prefix, "Clear bestpath and re-advertise\n" "IPv6 prefix /, e.g., 3ffe::/16\n") { - if (strncmp (argv[5]->arg, "m", 1) == 0) - return bgp_clear_prefix (vty, argv[3]->arg, argv[7]->arg, AFI_IP6, SAFI_MULTICAST, NULL); + int idx_word = 3; + int idx_safi = 5; + int idx_ipv6_prefixlen = 7; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_clear_prefix (vty, argv[idx_word]->arg, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_MULTICAST, NULL); else - return bgp_clear_prefix (vty, argv[3]->arg, argv[7]->arg, AFI_IP6, SAFI_UNICAST, NULL); + return bgp_clear_prefix (vty, argv[idx_word]->arg, argv[idx_ipv6_prefixlen]->arg, AFI_IP6, SAFI_UNICAST, NULL); } /* @@ -6950,12 +7179,13 @@ DEFUN (clear_ip_bgp_peer_soft_out, BGP_SOFT_STR BGP_SOFT_OUT_STR) { + int idx_ipv4_word = 3; if (argc == 3) return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_peer, BGP_CLEAR_SOFT_OUT, argv[2]); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer, - BGP_CLEAR_SOFT_OUT, argv[3]->arg); + BGP_CLEAR_SOFT_OUT, argv[idx_ipv4_word]->arg); } @@ -6989,12 +7219,14 @@ DEFUN (clear_ip_bgp_peer_ipv4_soft_out, BGP_SOFT_STR BGP_SOFT_OUT_STR) { - if (strncmp (argv[5]->arg, "m", 1) == 0) + int idx_ipv4_word = 3; + int idx_safi = 5; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_peer, - BGP_CLEAR_SOFT_OUT, argv[3]->arg); + BGP_CLEAR_SOFT_OUT, argv[idx_ipv4_word]->arg); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer, - BGP_CLEAR_SOFT_OUT, argv[3]->arg); + BGP_CLEAR_SOFT_OUT, argv[idx_ipv4_word]->arg); } /* @@ -7027,12 +7259,15 @@ DEFUN (clear_ip_bgp_instance_peer_ipv4_soft_out, BGP_SOFT_STR BGP_SOFT_OUT_STR) { - if (strncmp (argv[7]->arg, "m", 1) == 0) - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_MULTICAST, clear_peer, - BGP_CLEAR_SOFT_OUT, argv[5]->arg); + int idx_word = 4; + int idx_ipv4_word = 5; + int idx_safi = 7; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, clear_peer, + BGP_CLEAR_SOFT_OUT, argv[idx_ipv4_word]->arg); - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_UNICAST, clear_peer, - BGP_CLEAR_SOFT_OUT, argv[5]->arg); + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, clear_peer, + BGP_CLEAR_SOFT_OUT, argv[idx_ipv4_word]->arg); } @@ -7064,8 +7299,9 @@ DEFUN (clear_ip_bgp_peer_vpnv4_soft_out, BGP_SOFT_STR BGP_SOFT_OUT_STR) { + int idx_ipv4_word = 3; return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, clear_peer, - BGP_CLEAR_SOFT_OUT, argv[3]->arg); + BGP_CLEAR_SOFT_OUT, argv[idx_ipv4_word]->arg); } @@ -7093,8 +7329,9 @@ DEFUN (clear_ip_bgp_peer_encap_soft_out, "Soft reconfig\n" "Soft reconfig outbound update\n") { + int idx_ipv4 = 3; return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_ENCAP, clear_peer, - BGP_CLEAR_SOFT_OUT, argv[3]->arg); + BGP_CLEAR_SOFT_OUT, argv[idx_ipv4]->arg); } @@ -7179,12 +7416,13 @@ DEFUN (clear_bgp_peer_soft_out, BGP_SOFT_STR BGP_SOFT_OUT_STR) { + int idx_peer = 2; if (argc == 3) return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_peer, BGP_CLEAR_SOFT_OUT, argv[2]); return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_peer, - BGP_CLEAR_SOFT_OUT, argv[2]->arg); + BGP_CLEAR_SOFT_OUT, argv[idx_peer]->arg); } @@ -7235,12 +7473,13 @@ DEFUN (clear_ip_bgp_peer_group_soft_out, BGP_SOFT_STR BGP_SOFT_OUT_STR) { + int idx_word = 4; if (argc == 3) return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_group, BGP_CLEAR_SOFT_OUT, argv[2]); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group, - BGP_CLEAR_SOFT_OUT, argv[4]->arg); + BGP_CLEAR_SOFT_OUT, argv[idx_word]->arg); } @@ -7274,12 +7513,14 @@ DEFUN (clear_ip_bgp_peer_group_ipv4_soft_out, BGP_SOFT_STR BGP_SOFT_OUT_STR) { - if (strncmp (argv[6]->arg, "m", 1) == 0) + int idx_word = 4; + int idx_safi = 6; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_group, - BGP_CLEAR_SOFT_OUT, argv[4]->arg); + BGP_CLEAR_SOFT_OUT, argv[idx_word]->arg); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group, - BGP_CLEAR_SOFT_OUT, argv[4]->arg); + BGP_CLEAR_SOFT_OUT, argv[idx_word]->arg); } /* @@ -7312,12 +7553,15 @@ DEFUN (clear_ip_bgp_instance_peer_group_ipv4_soft_out, BGP_SOFT_STR BGP_SOFT_OUT_STR) { - if (strncmp (argv[8]->arg, "m", 1) == 0) - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_MULTICAST, clear_group, - BGP_CLEAR_SOFT_OUT, argv[6]->arg); + int idx_word = 4; + int idx_word_2 = 6; + int idx_safi = 8; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, clear_group, + BGP_CLEAR_SOFT_OUT, argv[idx_word_2]->arg); - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_UNICAST, clear_group, - BGP_CLEAR_SOFT_OUT, argv[6]->arg); + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, clear_group, + BGP_CLEAR_SOFT_OUT, argv[idx_word_2]->arg); } @@ -7395,12 +7639,13 @@ DEFUN (clear_bgp_peer_group_soft_out, BGP_SOFT_STR BGP_SOFT_OUT_STR) { + int idx_word = 3; if (argc == 3) return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_group, BGP_CLEAR_SOFT_OUT, argv[2]); return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_group, - BGP_CLEAR_SOFT_OUT, argv[3]->arg); + BGP_CLEAR_SOFT_OUT, argv[idx_word]->arg); } @@ -7484,7 +7729,8 @@ DEFUN (clear_ip_bgp_external_ipv4_soft_out, BGP_SOFT_STR BGP_SOFT_OUT_STR) { - if (strncmp (argv[5]->arg, "m", 1) == 0) + int idx_safi = 5; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_external, BGP_CLEAR_SOFT_OUT, NULL); @@ -7520,11 +7766,13 @@ DEFUN (clear_ip_bgp_instance_external_ipv4_soft_out, BGP_SOFT_STR BGP_SOFT_OUT_STR) { - if (strncmp (argv[7]->arg, "m", 1) == 0) - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_MULTICAST, clear_external, + int idx_word = 4; + int idx_safi = 7; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, clear_external, BGP_CLEAR_SOFT_OUT, NULL); - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_UNICAST, clear_external, + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, clear_external, BGP_CLEAR_SOFT_OUT, NULL); } @@ -7647,12 +7895,13 @@ DEFUN (clear_ip_bgp_as_soft_out, BGP_SOFT_STR BGP_SOFT_OUT_STR) { + int idx_number = 3; if (argc == 3) return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_as, BGP_CLEAR_SOFT_OUT, argv[2]); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_as, - BGP_CLEAR_SOFT_OUT, argv[3]->arg); + BGP_CLEAR_SOFT_OUT, argv[idx_number]->arg); } @@ -7684,12 +7933,14 @@ DEFUN (clear_ip_bgp_as_ipv4_soft_out, BGP_SOFT_STR BGP_SOFT_OUT_STR) { - if (strncmp (argv[5]->arg, "m", 1) == 0) + int idx_number = 3; + int idx_safi = 5; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_as, - BGP_CLEAR_SOFT_OUT, argv[3]->arg); + BGP_CLEAR_SOFT_OUT, argv[idx_number]->arg); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_as, - BGP_CLEAR_SOFT_OUT, argv[3]->arg); + BGP_CLEAR_SOFT_OUT, argv[idx_number]->arg); } /* @@ -7720,12 +7971,15 @@ DEFUN (clear_ip_bgp_instance_as_ipv4_soft_out, BGP_SOFT_STR BGP_SOFT_OUT_STR) { - if (strncmp (argv[7]->arg, "m", 1) == 0) - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_MULTICAST, clear_as, - BGP_CLEAR_SOFT_OUT, argv[5]->arg); + int idx_word = 4; + int idx_number = 5; + int idx_safi = 7; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, clear_as, + BGP_CLEAR_SOFT_OUT, argv[idx_number]->arg); - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_UNICAST, clear_as, - BGP_CLEAR_SOFT_OUT, argv[5]->arg); + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, clear_as, + BGP_CLEAR_SOFT_OUT, argv[idx_number]->arg); } @@ -7754,8 +8008,9 @@ DEFUN (clear_ip_bgp_as_vpnv4_soft_out, BGP_SOFT_STR BGP_SOFT_OUT_STR) { + int idx_number = 3; return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, clear_as, - BGP_CLEAR_SOFT_OUT, argv[3]->arg); + BGP_CLEAR_SOFT_OUT, argv[idx_number]->arg); } @@ -7783,8 +8038,9 @@ DEFUN (clear_ip_bgp_as_encap_soft_out, "Soft reconfig\n" "Soft reconfig outbound update\n") { + int idx_number = 3; return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_ENCAP, clear_as, - BGP_CLEAR_SOFT_OUT, argv[3]->arg); + BGP_CLEAR_SOFT_OUT, argv[idx_number]->arg); } @@ -7853,12 +8109,13 @@ DEFUN (clear_bgp_as_soft_out, BGP_SOFT_STR BGP_SOFT_OUT_STR) { + int idx_number = 2; if (argc == 3) return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_as, BGP_CLEAR_SOFT_OUT, argv[2]); return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_as, - BGP_CLEAR_SOFT_OUT, argv[2]->arg); + BGP_CLEAR_SOFT_OUT, argv[idx_number]->arg); } @@ -7961,7 +8218,8 @@ DEFUN (clear_ip_bgp_all_ipv4_soft_in, BGP_SOFT_STR BGP_SOFT_IN_STR) { - if (strncmp (argv[5]->arg, "m", 1) == 0) + int idx_safi = 5; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_all, BGP_CLEAR_SOFT_IN, NULL); @@ -7997,11 +8255,13 @@ DEFUN (clear_ip_bgp_instance_all_ipv4_soft_in, BGP_SOFT_STR BGP_SOFT_IN_STR) { - if (strncmp (argv[7]->arg, "m", 1) == 0) - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_MULTICAST, clear_all, + int idx_word = 4; + int idx_safi = 7; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, clear_all, BGP_CLEAR_SOFT_IN, NULL); - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_UNICAST, clear_all, + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, clear_all, BGP_CLEAR_SOFT_IN, NULL); } @@ -8020,7 +8280,8 @@ DEFUN (clear_ip_bgp_all_ipv4_in_prefix_filter, BGP_SOFT_IN_STR "Push out prefix-list ORF and do inbound soft reconfig\n") { - if (strncmp (argv[5]->arg, "m", 1) == 0) + int idx_safi = 5; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_all, BGP_CLEAR_SOFT_IN_ORF_PREFIX, NULL); @@ -8232,12 +8493,13 @@ DEFUN (clear_ip_bgp_peer_soft_in, BGP_SOFT_STR BGP_SOFT_IN_STR) { + int idx_ipv4_word = 3; if (argc == 3) return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_peer, BGP_CLEAR_SOFT_IN, argv[2]); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer, - BGP_CLEAR_SOFT_IN, argv[3]->arg); + BGP_CLEAR_SOFT_IN, argv[idx_ipv4_word]->arg); } @@ -8254,8 +8516,9 @@ DEFUN (clear_ip_bgp_peer_in_prefix_filter, BGP_SOFT_IN_STR "Push out the existing ORF prefix-list\n") { + int idx_ipv4_word = 3; return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer, - BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[3]->arg); + BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[idx_ipv4_word]->arg); } /* @@ -8286,12 +8549,14 @@ DEFUN (clear_ip_bgp_peer_ipv4_soft_in, BGP_SOFT_STR BGP_SOFT_IN_STR) { - if (strncmp (argv[5]->arg, "m", 1) == 0) + int idx_ipv4_word = 3; + int idx_safi = 5; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_peer, - BGP_CLEAR_SOFT_IN, argv[3]->arg); + BGP_CLEAR_SOFT_IN, argv[idx_ipv4_word]->arg); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer, - BGP_CLEAR_SOFT_IN, argv[3]->arg); + BGP_CLEAR_SOFT_IN, argv[idx_ipv4_word]->arg); } /* @@ -8324,12 +8589,15 @@ DEFUN (clear_ip_bgp_instance_peer_ipv4_soft_in, BGP_SOFT_STR BGP_SOFT_IN_STR) { - if (strncmp (argv[7]->arg, "m", 1) == 0) - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_MULTICAST, clear_peer, - BGP_CLEAR_SOFT_IN, argv[5]->arg); + int idx_word = 4; + int idx_ipv4_word = 5; + int idx_safi = 7; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, clear_peer, + BGP_CLEAR_SOFT_IN, argv[idx_ipv4_word]->arg); - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_UNICAST, clear_peer, - BGP_CLEAR_SOFT_IN, argv[5]->arg); + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, clear_peer, + BGP_CLEAR_SOFT_IN, argv[idx_ipv4_word]->arg); } @@ -8348,12 +8616,14 @@ DEFUN (clear_ip_bgp_peer_ipv4_in_prefix_filter, BGP_SOFT_IN_STR "Push out the existing ORF prefix-list\n") { - if (strncmp (argv[5]->arg, "m", 1) == 0) + int idx_ipv4_word = 3; + int idx_safi = 5; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_peer, - BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[3]->arg); + BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[idx_ipv4_word]->arg); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer, - BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[3]->arg); + BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[idx_ipv4_word]->arg); } /* @@ -8382,8 +8652,9 @@ DEFUN (clear_ip_bgp_peer_vpnv4_soft_in, BGP_SOFT_STR BGP_SOFT_IN_STR) { + int idx_ipv4_word = 3; return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, clear_peer, - BGP_CLEAR_SOFT_IN, argv[3]->arg); + BGP_CLEAR_SOFT_IN, argv[idx_ipv4_word]->arg); } @@ -8411,8 +8682,9 @@ DEFUN (clear_ip_bgp_peer_encap_soft_in, "Soft reconfig\n" "Soft reconfig inbound update\n") { + int idx_ipv4 = 3; return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_ENCAP, clear_peer, - BGP_CLEAR_SOFT_IN, argv[3]->arg); + BGP_CLEAR_SOFT_IN, argv[idx_ipv4]->arg); } @@ -8497,12 +8769,13 @@ DEFUN (clear_bgp_peer_soft_in, BGP_SOFT_STR BGP_SOFT_IN_STR) { + int idx_peer = 2; if (argc == 3) return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_peer, BGP_CLEAR_SOFT_IN, argv[2]); return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_peer, - BGP_CLEAR_SOFT_IN, argv[2]->arg); + BGP_CLEAR_SOFT_IN, argv[idx_peer]->arg); } @@ -8536,8 +8809,9 @@ DEFUN (clear_bgp_peer_in_prefix_filter, BGP_SOFT_IN_STR "Push out the existing ORF prefix-list\n") { + int idx_peer = 2; return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_peer, - BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[2]->arg); + BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[idx_peer]->arg); } @@ -8582,12 +8856,13 @@ DEFUN (clear_ip_bgp_peer_group_soft_in, BGP_SOFT_STR BGP_SOFT_IN_STR) { + int idx_word = 4; if (argc == 3) return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_group, BGP_CLEAR_SOFT_IN, argv[2]); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group, - BGP_CLEAR_SOFT_IN, argv[4]->arg); + BGP_CLEAR_SOFT_IN, argv[idx_word]->arg); } @@ -8604,8 +8879,9 @@ DEFUN (clear_ip_bgp_peer_group_in_prefix_filter, BGP_SOFT_IN_STR "Push out prefix-list ORF and do inbound soft reconfig\n") { + int idx_word = 4; return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group, - BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[4]->arg); + BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[idx_word]->arg); } /* @@ -8636,12 +8912,14 @@ DEFUN (clear_ip_bgp_peer_group_ipv4_soft_in, BGP_SOFT_STR BGP_SOFT_IN_STR) { - if (strncmp (argv[6]->arg, "m", 1) == 0) + int idx_word = 4; + int idx_safi = 6; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_group, - BGP_CLEAR_SOFT_IN, argv[4]->arg); + BGP_CLEAR_SOFT_IN, argv[idx_word]->arg); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group, - BGP_CLEAR_SOFT_IN, argv[4]->arg); + BGP_CLEAR_SOFT_IN, argv[idx_word]->arg); } /* @@ -8674,12 +8952,15 @@ DEFUN (clear_ip_bgp_instance_peer_group_ipv4_soft_in, BGP_SOFT_STR BGP_SOFT_IN_STR) { - if (strncmp (argv[8]->arg, "m", 1) == 0) - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_MULTICAST, clear_group, - BGP_CLEAR_SOFT_IN, argv[6]->arg); + int idx_word = 4; + int idx_word_2 = 6; + int idx_safi = 8; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, clear_group, + BGP_CLEAR_SOFT_IN, argv[idx_word_2]->arg); - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_UNICAST, clear_group, - BGP_CLEAR_SOFT_IN, argv[6]->arg); + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, clear_group, + BGP_CLEAR_SOFT_IN, argv[idx_word_2]->arg); } @@ -8698,12 +8979,14 @@ DEFUN (clear_ip_bgp_peer_group_ipv4_in_prefix_filter, BGP_SOFT_IN_STR "Push out prefix-list ORF and do inbound soft reconfig\n") { - if (strncmp (argv[6]->arg, "m", 1) == 0) + int idx_word = 4; + int idx_safi = 6; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_group, - BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[4]->arg); + BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[idx_word]->arg); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group, - BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[4]->arg); + BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[idx_word]->arg); } /* @@ -8779,12 +9062,13 @@ DEFUN (clear_bgp_peer_group_soft_in, BGP_SOFT_STR BGP_SOFT_IN_STR) { + int idx_word = 3; if (argc == 3) return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_group, BGP_CLEAR_SOFT_IN, argv[2]); return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_group, - BGP_CLEAR_SOFT_IN, argv[3]->arg); + BGP_CLEAR_SOFT_IN, argv[idx_word]->arg); } @@ -8816,8 +9100,9 @@ DEFUN (clear_bgp_peer_group_in_prefix_filter, BGP_SOFT_IN_STR "Push out prefix-list ORF and do inbound soft reconfig\n") { + int idx_word = 3; return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_group, - BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[3]->arg); + BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[idx_word]->arg); } @@ -8909,7 +9194,8 @@ DEFUN (clear_ip_bgp_external_ipv4_soft_in, BGP_SOFT_STR BGP_SOFT_IN_STR) { - if (strncmp (argv[5]->arg, "m", 1) == 0) + int idx_safi = 5; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_external, BGP_CLEAR_SOFT_IN, NULL); @@ -8945,11 +9231,13 @@ DEFUN (clear_ip_bgp_instance_external_ipv4_soft_in, BGP_SOFT_STR BGP_SOFT_IN_STR) { - if (strncmp (argv[7]->arg, "m", 1) == 0) - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_MULTICAST, clear_external, + int idx_word = 4; + int idx_safi = 7; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, clear_external, BGP_CLEAR_SOFT_IN, NULL); - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_UNICAST, clear_external, + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, clear_external, BGP_CLEAR_SOFT_IN, NULL); } @@ -8968,7 +9256,8 @@ DEFUN (clear_ip_bgp_external_ipv4_in_prefix_filter, BGP_SOFT_IN_STR "Push out prefix-list ORF and do inbound soft reconfig\n") { - if (strncmp (argv[5]->arg, "m", 1) == 0) + int idx_safi = 5; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_external, BGP_CLEAR_SOFT_IN_ORF_PREFIX, NULL); @@ -9118,12 +9407,13 @@ DEFUN (clear_ip_bgp_as_soft_in, BGP_SOFT_STR BGP_SOFT_IN_STR) { + int idx_number = 3; if (argc == 3) return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_as, BGP_CLEAR_SOFT_IN, argv[2]); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_as, - BGP_CLEAR_SOFT_IN, argv[3]->arg); + BGP_CLEAR_SOFT_IN, argv[idx_number]->arg); } @@ -9139,8 +9429,9 @@ DEFUN (clear_ip_bgp_as_in_prefix_filter, BGP_SOFT_IN_STR "Push out prefix-list ORF and do inbound soft reconfig\n") { + int idx_number = 3; return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_as, - BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[3]->arg); + BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[idx_number]->arg); } /* @@ -9169,12 +9460,14 @@ DEFUN (clear_ip_bgp_as_ipv4_soft_in, BGP_SOFT_STR BGP_SOFT_IN_STR) { - if (strncmp (argv[5]->arg, "m", 1) == 0) + int idx_number = 3; + int idx_safi = 5; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_as, - BGP_CLEAR_SOFT_IN, argv[3]->arg); + BGP_CLEAR_SOFT_IN, argv[idx_number]->arg); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_as, - BGP_CLEAR_SOFT_IN, argv[3]->arg); + BGP_CLEAR_SOFT_IN, argv[idx_number]->arg); } /* @@ -9205,12 +9498,15 @@ DEFUN (clear_ip_bgp_instance_as_ipv4_soft_in, BGP_SOFT_STR BGP_SOFT_IN_STR) { - if (strncmp (argv[7]->arg, "m", 1) == 0) - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_MULTICAST, clear_as, - BGP_CLEAR_SOFT_IN, argv[5]->arg); + int idx_word = 4; + int idx_number = 5; + int idx_safi = 7; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, clear_as, + BGP_CLEAR_SOFT_IN, argv[idx_number]->arg); - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_UNICAST, clear_as, - BGP_CLEAR_SOFT_IN, argv[5]->arg); + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, clear_as, + BGP_CLEAR_SOFT_IN, argv[idx_number]->arg); } @@ -9228,12 +9524,14 @@ DEFUN (clear_ip_bgp_as_ipv4_in_prefix_filter, BGP_SOFT_IN_STR "Push out prefix-list ORF and do inbound soft reconfig\n") { - if (strncmp (argv[5]->arg, "m", 1) == 0) + int idx_number = 3; + int idx_safi = 5; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_as, - BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[3]->arg); + BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[idx_number]->arg); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_as, - BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[3]->arg); + BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[idx_number]->arg); } /* @@ -9260,8 +9558,9 @@ DEFUN (clear_ip_bgp_as_vpnv4_soft_in, BGP_SOFT_STR BGP_SOFT_IN_STR) { + int idx_number = 3; return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, clear_as, - BGP_CLEAR_SOFT_IN, argv[3]->arg); + BGP_CLEAR_SOFT_IN, argv[idx_number]->arg); } @@ -9289,8 +9588,9 @@ DEFUN (clear_ip_bgp_as_encap_soft_in, "Soft reconfig\n" "Soft reconfig inbound update\n") { + int idx_number = 3; return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_ENCAP, clear_as, - BGP_CLEAR_SOFT_IN, argv[3]->arg); + BGP_CLEAR_SOFT_IN, argv[idx_number]->arg); } @@ -9359,12 +9659,13 @@ DEFUN (clear_bgp_as_soft_in, BGP_SOFT_STR BGP_SOFT_IN_STR) { + int idx_number = 2; if (argc == 3) return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_as, BGP_CLEAR_SOFT_IN, argv[2]); return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_as, - BGP_CLEAR_SOFT_IN, argv[2]->arg); + BGP_CLEAR_SOFT_IN, argv[idx_number]->arg); } @@ -9394,8 +9695,9 @@ DEFUN (clear_bgp_as_in_prefix_filter, BGP_SOFT_IN_STR "Push out prefix-list ORF and do inbound soft reconfig\n") { + int idx_number = 2; return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_as, - BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[2]->arg); + BGP_CLEAR_SOFT_IN_ORF_PREFIX, argv[idx_number]->arg); } @@ -9442,7 +9744,8 @@ DEFUN (clear_ip_bgp_all_ipv4_soft, "Address Family Modifier\n" BGP_SOFT_STR) { - if (strncmp (argv[5]->arg, "m", 1) == 0) + int idx_safi = 5; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_all, BGP_CLEAR_SOFT_BOTH, NULL); @@ -9463,8 +9766,10 @@ DEFUN (clear_ip_bgp_instance_all_ipv4_soft, "Address Family Modifier\n" BGP_SOFT_STR) { - if (strncmp (argv[7]->arg, "m", 1) == 0) - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_MULTICAST, clear_all, + int idx_word = 4; + int idx_safi = 7; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, clear_all, BGP_CLEAR_SOFT_BOTH, NULL); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_all, @@ -9567,12 +9872,13 @@ DEFUN (clear_ip_bgp_peer_soft, "BGP neighbor on interface to clear\n" BGP_SOFT_STR) { + int idx_ipv4_word = 3; if (argc == 3) return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_peer, BGP_CLEAR_SOFT_BOTH, argv[2]); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer, - BGP_CLEAR_SOFT_BOTH, argv[3]->arg); + BGP_CLEAR_SOFT_BOTH, argv[idx_ipv4_word]->arg); } @@ -9589,12 +9895,14 @@ DEFUN (clear_ip_bgp_peer_ipv4_soft, "Address Family Modifier\n" BGP_SOFT_STR) { - if (strncmp (argv[5]->arg, "m", 1) == 0) + int idx_ipv4_word = 3; + int idx_safi = 5; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_peer, - BGP_CLEAR_SOFT_BOTH, argv[3]->arg); + BGP_CLEAR_SOFT_BOTH, argv[idx_ipv4_word]->arg); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_peer, - BGP_CLEAR_SOFT_BOTH, argv[3]->arg); + BGP_CLEAR_SOFT_BOTH, argv[idx_ipv4_word]->arg); } DEFUN (clear_ip_bgp_instance_peer_ipv4_soft, @@ -9611,12 +9919,15 @@ DEFUN (clear_ip_bgp_instance_peer_ipv4_soft, "Address Family Modifier\n" BGP_SOFT_STR) { - if (strncmp (argv[7]->arg, "m", 1) == 0) - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_MULTICAST, clear_peer, - BGP_CLEAR_SOFT_BOTH, argv[5]->arg); + int idx_word = 4; + int idx_ipv4_word = 5; + int idx_safi = 7; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, clear_peer, + BGP_CLEAR_SOFT_BOTH, argv[idx_ipv4_word]->arg); - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_UNICAST, clear_peer, - BGP_CLEAR_SOFT_BOTH, argv[5]->arg); + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, clear_peer, + BGP_CLEAR_SOFT_BOTH, argv[idx_ipv4_word]->arg); } DEFUN (clear_ip_bgp_peer_vpnv4_soft, @@ -9631,8 +9942,9 @@ DEFUN (clear_ip_bgp_peer_vpnv4_soft, "Address Family Modifier\n" BGP_SOFT_STR) { + int idx_ipv4_word = 3; return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, clear_peer, - BGP_CLEAR_SOFT_BOTH, argv[3]->arg); + BGP_CLEAR_SOFT_BOTH, argv[idx_ipv4_word]->arg); } DEFUN (clear_ip_bgp_peer_encap_soft, @@ -9646,8 +9958,9 @@ DEFUN (clear_ip_bgp_peer_encap_soft, "Address Family Modifier\n" "Soft reconfig\n") { + int idx_ipv4 = 3; return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_ENCAP, clear_peer, - BGP_CLEAR_SOFT_BOTH, argv[3]->arg); + BGP_CLEAR_SOFT_BOTH, argv[idx_ipv4]->arg); } /* @@ -9691,12 +10004,13 @@ DEFUN (clear_bgp_peer_soft, "BGP neighbor on interface to clear\n" BGP_SOFT_STR) { + int idx_peer = 2; if (argc == 3) return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_peer, BGP_CLEAR_SOFT_BOTH, argv[2]); return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_peer, - BGP_CLEAR_SOFT_BOTH, argv[2]->arg); + BGP_CLEAR_SOFT_BOTH, argv[idx_peer]->arg); } @@ -9724,12 +10038,13 @@ DEFUN (clear_ip_bgp_peer_group_soft, "BGP peer-group name\n" BGP_SOFT_STR) { + int idx_word = 4; if (argc == 3) return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_group, BGP_CLEAR_SOFT_BOTH, argv[2]); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group, - BGP_CLEAR_SOFT_BOTH, argv[4]->arg); + BGP_CLEAR_SOFT_BOTH, argv[idx_word]->arg); } @@ -9746,12 +10061,14 @@ DEFUN (clear_ip_bgp_peer_group_ipv4_soft, "Address Family modifier\n" BGP_SOFT_STR) { - if (strncmp (argv[6]->arg, "m", 1) == 0) + int idx_word = 4; + int idx_safi = 6; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_group, - BGP_CLEAR_SOFT_BOTH, argv[4]->arg); + BGP_CLEAR_SOFT_BOTH, argv[idx_word]->arg); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_group, - BGP_CLEAR_SOFT_BOTH, argv[4]->arg); + BGP_CLEAR_SOFT_BOTH, argv[idx_word]->arg); } DEFUN (clear_ip_bgp_instance_peer_group_ipv4_soft, @@ -9768,12 +10085,15 @@ DEFUN (clear_ip_bgp_instance_peer_group_ipv4_soft, "Address Family modifier\n" BGP_SOFT_STR) { - if (strncmp (argv[8]->arg, "m", 1) == 0) - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_MULTICAST, clear_group, - BGP_CLEAR_SOFT_BOTH, argv[6]->arg); + int idx_word = 4; + int idx_word_2 = 6; + int idx_safi = 8; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, clear_group, + BGP_CLEAR_SOFT_BOTH, argv[idx_word_2]->arg); - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_UNICAST, clear_group, - BGP_CLEAR_SOFT_BOTH, argv[6]->arg); + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, clear_group, + BGP_CLEAR_SOFT_BOTH, argv[idx_word_2]->arg); } /* @@ -9813,12 +10133,13 @@ DEFUN (clear_bgp_peer_group_soft, "BGP peer-group name\n" BGP_SOFT_STR) { + int idx_word = 3; if (argc == 3) return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_group, BGP_CLEAR_SOFT_BOTH, argv[2]); return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_group, - BGP_CLEAR_SOFT_BOTH, argv[3]->arg); + BGP_CLEAR_SOFT_BOTH, argv[idx_word]->arg); } @@ -9865,7 +10186,8 @@ DEFUN (clear_ip_bgp_external_ipv4_soft, "Address Family modifier\n" BGP_SOFT_STR) { - if (strncmp (argv[5]->arg, "m", 1) == 0) + int idx_safi = 5; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_external, BGP_CLEAR_SOFT_BOTH, NULL); @@ -9886,11 +10208,13 @@ DEFUN (clear_ip_bgp_instance_external_ipv4_soft, "Address Family modifier\n" BGP_SOFT_STR) { - if (strncmp (argv[7]->arg, "m", 1) == 0) - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_MULTICAST, clear_external, + int idx_word = 4; + int idx_safi = 7; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, clear_external, BGP_CLEAR_SOFT_BOTH, NULL); - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_UNICAST, clear_external, + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, clear_external, BGP_CLEAR_SOFT_BOTH, NULL); } @@ -9958,12 +10282,13 @@ DEFUN (clear_ip_bgp_as_soft, "Clear peers with the AS number\n" BGP_SOFT_STR) { + int idx_number = 3; if (argc == 3) return bgp_clear_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, clear_as, BGP_CLEAR_SOFT_BOTH, argv[2]); return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_UNICAST, clear_as, - BGP_CLEAR_SOFT_BOTH, argv[3]->arg); + BGP_CLEAR_SOFT_BOTH, argv[idx_number]->arg); } @@ -9979,12 +10304,14 @@ DEFUN (clear_ip_bgp_as_ipv4_soft, "Address Family Modifier\n" BGP_SOFT_STR) { - if (strncmp (argv[5]->arg, "m", 1) == 0) + int idx_number = 3; + int idx_safi = 5; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, clear_as, - BGP_CLEAR_SOFT_BOTH, argv[3]->arg); + BGP_CLEAR_SOFT_BOTH, argv[idx_number]->arg); return bgp_clear_vty (vty, NULL,AFI_IP, SAFI_UNICAST, clear_as, - BGP_CLEAR_SOFT_BOTH, argv[3]->arg); + BGP_CLEAR_SOFT_BOTH, argv[idx_number]->arg); } DEFUN (clear_ip_bgp_instance_as_ipv4_soft, @@ -10000,12 +10327,15 @@ DEFUN (clear_ip_bgp_instance_as_ipv4_soft, "Address Family Modifier\n" BGP_SOFT_STR) { - if (strncmp (argv[7]->arg, "m", 1) == 0) - return bgp_clear_vty (vty, argv[4]->arg, AFI_IP, SAFI_MULTICAST, clear_as, - BGP_CLEAR_SOFT_BOTH, argv[5]->arg); + int idx_word = 4; + int idx_number = 5; + int idx_safi = 7; + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_clear_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, clear_as, + BGP_CLEAR_SOFT_BOTH, argv[idx_number]->arg); - return bgp_clear_vty (vty, argv[4]->arg,AFI_IP, SAFI_UNICAST, clear_as, - BGP_CLEAR_SOFT_BOTH, argv[5]->arg); + return bgp_clear_vty (vty, argv[idx_word]->arg,AFI_IP, SAFI_UNICAST, clear_as, + BGP_CLEAR_SOFT_BOTH, argv[idx_number]->arg); } DEFUN (clear_ip_bgp_as_vpnv4_soft, @@ -10019,8 +10349,9 @@ DEFUN (clear_ip_bgp_as_vpnv4_soft, "Address Family Modifier\n" BGP_SOFT_STR) { + int idx_number = 3; return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, clear_as, - BGP_CLEAR_SOFT_BOTH, argv[3]->arg); + BGP_CLEAR_SOFT_BOTH, argv[idx_number]->arg); } DEFUN (clear_ip_bgp_as_encap_soft, @@ -10034,8 +10365,9 @@ DEFUN (clear_ip_bgp_as_encap_soft, "Address Family Modifier\n" "Soft reconfig\n") { + int idx_number = 3; return bgp_clear_vty (vty, NULL, AFI_IP, SAFI_ENCAP, clear_as, - BGP_CLEAR_SOFT_BOTH, argv[3]->arg); + BGP_CLEAR_SOFT_BOTH, argv[idx_number]->arg); } /* @@ -10071,12 +10403,13 @@ DEFUN (clear_bgp_as_soft, "Clear peers with the AS number\n" BGP_SOFT_STR) { + int idx_number = 2; if (argc == 3) return bgp_clear_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, clear_as, BGP_CLEAR_SOFT_BOTH, argv[2]); return bgp_clear_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, clear_as, - BGP_CLEAR_SOFT_BOTH, argv[2]->arg); + BGP_CLEAR_SOFT_BOTH, argv[idx_number]->arg); } @@ -10782,8 +11115,9 @@ DEFUN (show_ip_bgp_instance_summary, "Summary of BGP neighbor status\n" "JavaScript Object Notation\n") { + int idx_word = 4; u_char uj = use_json(argc, argv); - return bgp_show_summary_vty (vty, argv[4]->arg, AFI_IP, SAFI_UNICAST, uj); + return bgp_show_summary_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, uj); } DEFUN (show_ip_bgp_instance_all_summary, @@ -10825,8 +11159,9 @@ DEFUN (show_ip_bgp_ipv4_summary, "Summary of BGP neighbor status\n" "JavaScript Object Notation\n") { + int idx_safi = 4; u_char uj = use_json(argc, argv); - if (strncmp (argv[4]->arg, "m", 1) == 0) + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_show_summary_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, uj); return bgp_show_summary_vty (vty, NULL, AFI_IP, SAFI_UNICAST, uj); @@ -10887,11 +11222,13 @@ DEFUN (show_ip_bgp_instance_ipv4_summary, "Summary of BGP neighbor status\n" "JavaScript Object Notation\n") { + int idx_word = 4; + int idx_safi = 6; u_char uj = use_json(argc, argv); - if (strncmp (argv[6]->arg, "m", 1) == 0) - return bgp_show_summary_vty (vty, argv[4]->arg, AFI_IP, SAFI_MULTICAST, uj); + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_show_summary_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_MULTICAST, uj); else - return bgp_show_summary_vty (vty, argv[4]->arg, AFI_IP, SAFI_UNICAST, uj); + return bgp_show_summary_vty (vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, uj); } @@ -10922,11 +11259,12 @@ DEFUN (show_ip_bgp_vpnv4_rd_summary, "Summary of BGP neighbor status\n" "JavaScript Object Notation\n") { + int idx_ext_community = 5; int ret; struct prefix_rd prd; u_char uj = use_json(argc, argv); - ret = str2prefix_rd (argv[5]->arg, &prd); + ret = str2prefix_rd (argv[idx_ext_community]->arg, &prd); if (! ret) { vty_out (vty, "%% Malformed Route Distinguisher%s", VTY_NEWLINE); @@ -10976,7 +11314,8 @@ DEFUN (show_bgp_instance_summary, "Summary of BGP neighbor status\n" "JavaScript Object Notation\n") { - return bgp_show_summary_vty (vty, argv[3]->arg, AFI_IP6, SAFI_UNICAST, use_json(argc, argv)); + int idx_word = 3; + return bgp_show_summary_vty (vty, argv[idx_word]->arg, AFI_IP6, SAFI_UNICAST, use_json(argc, argv)); } DEFUN (show_bgp_instance_all_summary, @@ -11007,8 +11346,9 @@ DEFUN (show_bgp_ipv6_safi_summary, "Summary of BGP neighbor status\n" "JavaScript Object Notation\n") { + int idx_safi = 3; u_char uj = use_json(argc, argv); - if (strncmp (argv[3]->arg, "m", 1) == 0) + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) return bgp_show_summary_vty (vty, NULL, AFI_IP6, SAFI_MULTICAST, uj); return bgp_show_summary_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, uj); @@ -11026,11 +11366,13 @@ DEFUN (show_bgp_instance_ipv6_safi_summary, "Summary of BGP neighbor status\n" "JavaScript Object Notation\n") { + int idx_word = 3; + int idx_safi = 5; u_char uj = use_json(argc, argv); - if (strncmp (argv[5]->arg, "m", 1) == 0) - return bgp_show_summary_vty (vty, argv[3]->arg, AFI_IP6, SAFI_MULTICAST, uj); + if (strncmp (argv[idx_safi]->arg, "m", 1) == 0) + return bgp_show_summary_vty (vty, argv[idx_word]->arg, AFI_IP6, SAFI_MULTICAST, uj); - return bgp_show_summary_vty (vty, argv[3]->arg, AFI_IP6, SAFI_UNICAST, uj); + return bgp_show_summary_vty (vty, argv[idx_word]->arg, AFI_IP6, SAFI_UNICAST, uj); } /* old command */ @@ -13061,9 +13403,10 @@ DEFUN (show_ip_bgp_instance_neighbors, "Detailed information on TCP and BGP neighbor connections\n" "JavaScript Object Notation\n") { + int idx_word = 4; u_char uj = use_json(argc, argv); - return bgp_show_neighbor_vty (vty, argv[4]->arg, show_all, NULL, uj, NULL); + return bgp_show_neighbor_vty (vty, argv[idx_word]->arg, show_all, NULL, uj, NULL); } DEFUN (show_ip_bgp_instance_all_neighbors, @@ -13121,9 +13464,11 @@ DEFUN (show_ip_bgp_instance_neighbors_peer, "Neighbor on bgp configured interface\n" "JavaScript Object Notation\n") { + int idx_word = 4; + int idx_peer = 6; u_char uj = use_json(argc, argv); - return bgp_show_neighbor_vty (vty, argv[4]->arg, show_peer, argv[6]->arg, uj, NULL); + return bgp_show_neighbor_vty (vty, argv[idx_word]->arg, show_peer, argv[idx_peer]->arg, uj, NULL); } @@ -13256,7 +13601,8 @@ DEFUN (show_ip_bgp_instance_updgrps, BGP_INSTANCE_HELP_STR "Detailed info about dynamic update groups\n") { - return (bgp_show_update_groups(vty, argv[4]->arg, AFI_IP, SAFI_UNICAST, 0)); + int idx_word = 4; + return (bgp_show_update_groups(vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, 0)); } DEFUN (show_ip_bgp_instance_all_updgrps, @@ -13290,7 +13636,8 @@ DEFUN (show_bgp_instance_ipv6_updgrps, BGP_INSTANCE_HELP_STR "Detailed info about v6 dynamic update groups\n") { - return (bgp_show_update_groups(vty, argv[3]->arg, AFI_IP6, SAFI_UNICAST, 0)); + int idx_word = 3; + return (bgp_show_update_groups(vty, argv[idx_word]->arg, AFI_IP6, SAFI_UNICAST, 0)); } DEFUN (show_bgp_instance_all_ipv6_updgrps, @@ -13316,11 +13663,13 @@ DEFUN (show_bgp_updgrps, "Address Family modifier\n" "Detailed info about dynamic update groups\n") { + int idx_afi = 2; + int idx_safi = 3; afi_t afi; safi_t safi; - afi = (strcmp(argv[2]->arg, "ipv4") == 0) ? AFI_IP : AFI_IP6; - safi = (strncmp (argv[3]->arg, "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST; + afi = (strcmp(argv[idx_afi]->arg, "ipv4") == 0) ? AFI_IP : AFI_IP6; + safi = (strncmp (argv[idx_safi]->arg, "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST; return (bgp_show_update_groups(vty, NULL, afi, safi, 0)); } @@ -13349,10 +13698,11 @@ DEFUN (show_ip_bgp_instance_updgrps_s, "Detailed info about dynamic update groups\n" "Specific subgroup to display detailed info for\n") { + int idx_word = 4; uint64_t subgrp_id; VTY_GET_ULL("subgroup-id", subgrp_id, argv[2]); - return (bgp_show_update_groups(vty, argv[4]->arg, AFI_IP, SAFI_UNICAST, subgrp_id)); + return (bgp_show_update_groups(vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, subgrp_id)); } DEFUN (show_bgp_ipv6_updgrps_s, @@ -13377,10 +13727,11 @@ DEFUN (show_bgp_instance_ipv6_updgrps_s, "Detailed info about v6 dynamic update groups\n" "Specific subgroup to display detailed info for\n") { + int idx_word = 3; uint64_t subgrp_id; VTY_GET_ULL("subgroup-id", subgrp_id, argv[2]); - return(bgp_show_update_groups(vty, argv[3]->arg, AFI_IP6, SAFI_UNICAST, subgrp_id)); + return(bgp_show_update_groups(vty, argv[idx_word]->arg, AFI_IP6, SAFI_UNICAST, subgrp_id)); } DEFUN (show_bgp_updgrps_s, @@ -13395,12 +13746,14 @@ DEFUN (show_bgp_updgrps_s, "Detailed info about v6 dynamic update groups\n" "Specific subgroup to display detailed info for") { + int idx_afi = 2; + int idx_safi = 3; afi_t afi; safi_t safi; uint64_t subgrp_id; - afi = (strcmp(argv[2]->arg, "ipv4") == 0) ? AFI_IP : AFI_IP6; - safi = (strncmp (argv[3]->arg, "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST; + afi = (strcmp(argv[idx_afi]->arg, "ipv4") == 0) ? AFI_IP : AFI_IP6; + safi = (strncmp (argv[idx_safi]->arg, "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST; VTY_GET_ULL("subgroup-id", subgrp_id, argv[2]); return(bgp_show_update_groups(vty, NULL, afi, safi, subgrp_id)); @@ -13432,9 +13785,10 @@ DEFUN (show_bgp_instance_updgrps_stats, "BGP update groups\n" "Statistics\n") { + int idx_word = 3; struct bgp *bgp; - bgp = bgp_lookup_by_name (argv[3]->arg); + bgp = bgp_lookup_by_name (argv[idx_word]->arg); if (bgp) update_group_show_stats(bgp, vty); @@ -13476,7 +13830,8 @@ DEFUN (show_ip_bgp_updgrps_adj, "Packet queue\n") { - show_bgp_updgrps_adj_info_aux(vty, NULL, AFI_IP, SAFI_UNICAST, argv[4]->arg, 0); + int idx_type = 4; + show_bgp_updgrps_adj_info_aux(vty, NULL, AFI_IP, SAFI_UNICAST, argv[idx_type]->arg, 0); return CMD_SUCCESS; } @@ -13493,7 +13848,9 @@ DEFUN (show_ip_bgp_instance_updgrps_adj, "Packet queue\n") { - show_bgp_updgrps_adj_info_aux(vty, argv[4]->arg, AFI_IP, SAFI_UNICAST, argv[6]->arg, 0); + int idx_word = 4; + int idx_type = 6; + show_bgp_updgrps_adj_info_aux(vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, argv[idx_type]->arg, 0); return CMD_SUCCESS; } @@ -13512,12 +13869,15 @@ DEFUN (show_bgp_updgrps_afi_adj, "Packet queue\n" "Specific subgroup info wanted for\n") { + int idx_afi = 2; + int idx_safi = 3; + int idx_type = 5; afi_t afi; safi_t safi; - afi = (strcmp(argv[2]->arg, "ipv4") == 0) ? AFI_IP : AFI_IP6; - safi = (strncmp (argv[3]->arg, "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST; - show_bgp_updgrps_adj_info_aux(vty, NULL, afi, safi, argv[5]->arg, 0); + afi = (strcmp(argv[idx_afi]->arg, "ipv4") == 0) ? AFI_IP : AFI_IP6; + safi = (strncmp (argv[idx_safi]->arg, "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST; + show_bgp_updgrps_adj_info_aux(vty, NULL, afi, safi, argv[idx_type]->arg, 0); return CMD_SUCCESS; } @@ -13531,7 +13891,8 @@ DEFUN (show_bgp_updgrps_adj, "Announced routes\n" "Packet queue\n") { - show_bgp_updgrps_adj_info_aux(vty, NULL, AFI_IP6, SAFI_UNICAST, argv[3]->arg, 0); + int idx_type = 3; + show_bgp_updgrps_adj_info_aux(vty, NULL, AFI_IP6, SAFI_UNICAST, argv[idx_type]->arg, 0); return CMD_SUCCESS; } @@ -13546,7 +13907,9 @@ DEFUN (show_bgp_instance_updgrps_adj, "Announced routes\n" "Packet queue\n") { - show_bgp_updgrps_adj_info_aux(vty, argv[3]->arg, AFI_IP6, SAFI_UNICAST, argv[5]->arg, 0); + int idx_word = 3; + int idx_type = 5; + show_bgp_updgrps_adj_info_aux(vty, argv[idx_word]->arg, AFI_IP6, SAFI_UNICAST, argv[idx_type]->arg, 0); return CMD_SUCCESS; } @@ -13563,9 +13926,10 @@ DEFUN (show_ip_bgp_updgrps_adj_s, "Packet queue\n") { + int idx_type = 5; uint64_t subgrp_id; - VTY_GET_ULL("subgroup-id", subgrp_id, argv[5]->arg); + VTY_GET_ULL("subgroup-id", subgrp_id, argv[idx_type]->arg); show_bgp_updgrps_adj_info_aux(vty, NULL, AFI_IP, SAFI_UNICAST, argv[1], subgrp_id); return CMD_SUCCESS; @@ -13585,11 +13949,13 @@ DEFUN (show_ip_bgp_instance_updgrps_adj_s, "Packet queue\n") { + int idx_word = 4; + int idx_type = 7; uint64_t subgrp_id; - VTY_GET_ULL("subgroup-id", subgrp_id, argv[7]->arg); + VTY_GET_ULL("subgroup-id", subgrp_id, argv[idx_type]->arg); - show_bgp_updgrps_adj_info_aux(vty, argv[4]->arg, AFI_IP, SAFI_UNICAST, argv[3], subgrp_id); + show_bgp_updgrps_adj_info_aux(vty, argv[idx_word]->arg, AFI_IP, SAFI_UNICAST, argv[3], subgrp_id); return CMD_SUCCESS; } @@ -13609,13 +13975,16 @@ DEFUN (show_bgp_updgrps_afi_adj_s, "Packet queue\n" "Specific subgroup info wanted for\n") { + int idx_afi = 2; + int idx_safi = 3; + int idx_type = 6; afi_t afi; safi_t safi; uint64_t subgrp_id; - afi = (strcmp(argv[2]->arg, "ipv4") == 0) ? AFI_IP : AFI_IP6; - safi = (strncmp (argv[3]->arg, "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST; - VTY_GET_ULL("subgroup-id", subgrp_id, argv[6]->arg); + afi = (strcmp(argv[idx_afi]->arg, "ipv4") == 0) ? AFI_IP : AFI_IP6; + safi = (strncmp (argv[idx_safi]->arg, "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST; + VTY_GET_ULL("subgroup-id", subgrp_id, argv[idx_type]->arg); show_bgp_updgrps_adj_info_aux(vty, NULL, afi, safi, argv[3], subgrp_id); return CMD_SUCCESS; @@ -13632,9 +14001,10 @@ DEFUN (show_bgp_updgrps_adj_s, "Announced routes\n" "Packet queue\n") { + int idx_type = 4; uint64_t subgrp_id; - VTY_GET_ULL("subgroup-id", subgrp_id, argv[4]->arg); + VTY_GET_ULL("subgroup-id", subgrp_id, argv[idx_type]->arg); show_bgp_updgrps_adj_info_aux(vty, NULL, AFI_IP6, SAFI_UNICAST, argv[1], subgrp_id); return CMD_SUCCESS; @@ -13652,11 +14022,13 @@ DEFUN (show_bgp_instance_updgrps_adj_s, "Announced routes\n" "Packet queue\n") { + int idx_word = 3; + int idx_type = 6; uint64_t subgrp_id; - VTY_GET_ULL("subgroup-id", subgrp_id, argv[6]->arg); + VTY_GET_ULL("subgroup-id", subgrp_id, argv[idx_type]->arg); - show_bgp_updgrps_adj_info_aux(vty, argv[3]->arg, AFI_IP6, SAFI_UNICAST, argv[3], subgrp_id); + show_bgp_updgrps_adj_info_aux(vty, argv[idx_word]->arg, AFI_IP6, SAFI_UNICAST, argv[3], subgrp_id); return CMD_SUCCESS; } @@ -13841,7 +14213,8 @@ DEFUN (show_ip_bgp_instance_peer_groups, BGP_INSTANCE_HELP_STR "Detailed information on all BGP peer groups\n") { - return bgp_show_peer_group_vty (vty, argv[4]->arg, show_all_groups, NULL); + int idx_word = 4; + return bgp_show_peer_group_vty (vty, argv[idx_word]->arg, show_all_groups, NULL); } DEFUN (show_ip_bgp_peer_group, @@ -13853,7 +14226,8 @@ DEFUN (show_ip_bgp_peer_group, "BGP peer-group name\n" "Detailed information on a BGP peer group\n") { - return bgp_show_peer_group_vty (vty, NULL, show_peer_group, argv[4]->arg); + int idx_word = 4; + return bgp_show_peer_group_vty (vty, NULL, show_peer_group, argv[idx_word]->arg); } DEFUN (show_ip_bgp_instance_peer_group, @@ -13866,7 +14240,9 @@ DEFUN (show_ip_bgp_instance_peer_group, "BGP peer-group name\n" "Detailed information on a BGP peer group\n") { - return bgp_show_peer_group_vty (vty, argv[4]->arg, show_peer_group, argv[6]->arg); + int idx_word = 4; + int idx_word_2 = 6; + return bgp_show_peer_group_vty (vty, argv[idx_word]->arg, show_peer_group, argv[idx_word_2]->arg); } /* Redistribute VTY commands. */ @@ -13877,9 +14253,10 @@ DEFUN (bgp_redistribute_ipv4, "Redistribute information from another routing protocol\n" QUAGGA_IP_REDIST_HELP_STR_BGPD) { + int idx_protocol = 1; int type; - type = proto_redistnum (AFI_IP, argv[1]->arg); + type = proto_redistnum (AFI_IP, argv[idx_protocol]->arg); if (type < 0 || type == ZEBRA_ROUTE_BGP) { vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE); @@ -13897,10 +14274,12 @@ DEFUN (bgp_redistribute_ipv4_rmap, "Route map reference\n" "Pointer to route-map entries\n") { + int idx_protocol = 1; + int idx_word = 3; int type; struct bgp_redist *red; - type = proto_redistnum (AFI_IP, argv[1]->arg); + type = proto_redistnum (AFI_IP, argv[idx_protocol]->arg); if (type < 0 || type == ZEBRA_ROUTE_BGP) { vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE); @@ -13908,7 +14287,7 @@ DEFUN (bgp_redistribute_ipv4_rmap, } red = bgp_redist_add(vty->index, AFI_IP, type, 0); - bgp_redistribute_rmap_set (red, argv[3]->arg); + bgp_redistribute_rmap_set (red, argv[idx_word]->arg); return bgp_redistribute_set (vty->index, AFI_IP, type, 0); } @@ -13920,17 +14299,19 @@ DEFUN (bgp_redistribute_ipv4_metric, "Metric for redistributed routes\n" "Default metric\n") { + int idx_protocol = 1; + int idx_number = 3; int type; u_int32_t metric; struct bgp_redist *red; - type = proto_redistnum (AFI_IP, argv[1]->arg); + type = proto_redistnum (AFI_IP, argv[idx_protocol]->arg); if (type < 0 || type == ZEBRA_ROUTE_BGP) { vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE); return CMD_WARNING; } - VTY_GET_INTEGER ("metric", metric, argv[3]->arg); + VTY_GET_INTEGER ("metric", metric, argv[idx_number]->arg); red = bgp_redist_add(vty->index, AFI_IP, type, 0); bgp_redistribute_metric_set(vty->index, red, AFI_IP, type, metric); @@ -13947,20 +14328,23 @@ DEFUN (bgp_redistribute_ipv4_rmap_metric, "Metric for redistributed routes\n" "Default metric\n") { + int idx_protocol = 1; + int idx_word = 3; + int idx_number = 5; int type; u_int32_t metric; struct bgp_redist *red; - type = proto_redistnum (AFI_IP, argv[1]->arg); + type = proto_redistnum (AFI_IP, argv[idx_protocol]->arg); if (type < 0 || type == ZEBRA_ROUTE_BGP) { vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE); return CMD_WARNING; } - VTY_GET_INTEGER ("metric", metric, argv[5]->arg); + VTY_GET_INTEGER ("metric", metric, argv[idx_number]->arg); red = bgp_redist_add(vty->index, AFI_IP, type, 0); - bgp_redistribute_rmap_set (red, argv[3]->arg); + bgp_redistribute_rmap_set (red, argv[idx_word]->arg); bgp_redistribute_metric_set(vty->index, red, AFI_IP, type, metric); return bgp_redistribute_set (vty->index, AFI_IP, type, 0); } @@ -13975,21 +14359,24 @@ DEFUN (bgp_redistribute_ipv4_metric_rmap, "Route map reference\n" "Pointer to route-map entries\n") { + int idx_protocol = 1; + int idx_number = 3; + int idx_word = 5; int type; u_int32_t metric; struct bgp_redist *red; - type = proto_redistnum (AFI_IP, argv[1]->arg); + type = proto_redistnum (AFI_IP, argv[idx_protocol]->arg); if (type < 0 || type == ZEBRA_ROUTE_BGP) { vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE); return CMD_WARNING; } - VTY_GET_INTEGER ("metric", metric, argv[3]->arg); + VTY_GET_INTEGER ("metric", metric, argv[idx_number]->arg); red = bgp_redist_add(vty->index, AFI_IP, type, 0); bgp_redistribute_metric_set(vty->index, red, AFI_IP, type, metric); - bgp_redistribute_rmap_set (red, argv[5]->arg); + bgp_redistribute_rmap_set (red, argv[idx_word]->arg); return bgp_redistribute_set (vty->index, AFI_IP, type, 0); } @@ -14001,12 +14388,14 @@ DEFUN (bgp_redistribute_ipv4_ospf, "Non-main Kernel Routing Table\n" "Instance ID/Table ID\n") { + int idx_ospf_table = 1; + int idx_number = 2; u_short instance; u_short protocol; - VTY_GET_INTEGER ("Instance ID", instance, argv[2]->arg); + VTY_GET_INTEGER ("Instance ID", instance, argv[idx_number]->arg); - if (strncmp(argv[1]->arg, "o", 1) == 0) + if (strncmp(argv[idx_ospf_table]->arg, "o", 1) == 0) protocol = ZEBRA_ROUTE_OSPF; else protocol = ZEBRA_ROUTE_TABLE; @@ -14025,18 +14414,21 @@ DEFUN (bgp_redistribute_ipv4_ospf_rmap, "Route map reference\n" "Pointer to route-map entries\n") { + int idx_ospf_table = 1; + int idx_number = 2; + int idx_word = 4; struct bgp_redist *red; u_short instance; int protocol; - if (strncmp(argv[1]->arg, "o", 1) == 0) + if (strncmp(argv[idx_ospf_table]->arg, "o", 1) == 0) protocol = ZEBRA_ROUTE_OSPF; else protocol = ZEBRA_ROUTE_TABLE; - VTY_GET_INTEGER ("Instance ID", instance, argv[2]->arg); + VTY_GET_INTEGER ("Instance ID", instance, argv[idx_number]->arg); red = bgp_redist_add(vty->index, AFI_IP, protocol, instance); - bgp_redistribute_rmap_set (red, argv[4]->arg); + bgp_redistribute_rmap_set (red, argv[idx_word]->arg); return bgp_redistribute_set (vty->index, AFI_IP, protocol, instance); } @@ -14050,18 +14442,21 @@ DEFUN (bgp_redistribute_ipv4_ospf_metric, "Metric for redistributed routes\n" "Default metric\n") { + int idx_ospf_table = 1; + int idx_number = 2; + int idx_number_2 = 4; u_int32_t metric; struct bgp_redist *red; u_short instance; int protocol; - if (strncmp(argv[1]->arg, "o", 1) == 0) + if (strncmp(argv[idx_ospf_table]->arg, "o", 1) == 0) protocol = ZEBRA_ROUTE_OSPF; else protocol = ZEBRA_ROUTE_TABLE; - VTY_GET_INTEGER ("Instance ID", instance, argv[2]->arg); - VTY_GET_INTEGER ("metric", metric, argv[4]->arg); + VTY_GET_INTEGER ("Instance ID", instance, argv[idx_number]->arg); + VTY_GET_INTEGER ("metric", metric, argv[idx_number_2]->arg); red = bgp_redist_add(vty->index, AFI_IP, protocol, instance); bgp_redistribute_metric_set(vty->index, red, AFI_IP, protocol, metric); @@ -14080,21 +14475,25 @@ DEFUN (bgp_redistribute_ipv4_ospf_rmap_metric, "Metric for redistributed routes\n" "Default metric\n") { + int idx_ospf_table = 1; + int idx_number = 2; + int idx_word = 4; + int idx_number_2 = 6; u_int32_t metric; struct bgp_redist *red; u_short instance; int protocol; - if (strncmp(argv[1]->arg, "o", 1) == 0) + if (strncmp(argv[idx_ospf_table]->arg, "o", 1) == 0) protocol = ZEBRA_ROUTE_OSPF; else protocol = ZEBRA_ROUTE_TABLE; - VTY_GET_INTEGER ("Instance ID", instance, argv[2]->arg); - VTY_GET_INTEGER ("metric", metric, argv[6]->arg); + VTY_GET_INTEGER ("Instance ID", instance, argv[idx_number]->arg); + VTY_GET_INTEGER ("metric", metric, argv[idx_number_2]->arg); red = bgp_redist_add(vty->index, AFI_IP, protocol, instance); - bgp_redistribute_rmap_set (red, argv[4]->arg); + bgp_redistribute_rmap_set (red, argv[idx_word]->arg); bgp_redistribute_metric_set(vty->index, red, AFI_IP, protocol, metric); return bgp_redistribute_set (vty->index, AFI_IP, protocol, instance); } @@ -14111,22 +14510,26 @@ DEFUN (bgp_redistribute_ipv4_ospf_metric_rmap, "Route map reference\n" "Pointer to route-map entries\n") { + int idx_ospf_table = 1; + int idx_number = 2; + int idx_number_2 = 4; + int idx_word = 6; u_int32_t metric; struct bgp_redist *red; u_short instance; int protocol; - if (strncmp(argv[1]->arg, "o", 1) == 0) + if (strncmp(argv[idx_ospf_table]->arg, "o", 1) == 0) protocol = ZEBRA_ROUTE_OSPF; else protocol = ZEBRA_ROUTE_TABLE; - VTY_GET_INTEGER ("Instance ID", instance, argv[2]->arg); - VTY_GET_INTEGER ("metric", metric, argv[4]->arg); + VTY_GET_INTEGER ("Instance ID", instance, argv[idx_number]->arg); + VTY_GET_INTEGER ("metric", metric, argv[idx_number_2]->arg); red = bgp_redist_add(vty->index, AFI_IP, protocol, instance); bgp_redistribute_metric_set(vty->index, red, AFI_IP, protocol, metric); - bgp_redistribute_rmap_set (red, argv[6]->arg); + bgp_redistribute_rmap_set (red, argv[idx_word]->arg); return bgp_redistribute_set (vty->index, AFI_IP, protocol, instance); } @@ -14182,15 +14585,17 @@ DEFUN (no_bgp_redistribute_ipv4_ospf, "Non-main Kernel Routing Table\n" "Instance ID/Table ID\n") { + int idx_ospf_table = 2; + int idx_number = 3; u_short instance; int protocol; - if (strncmp(argv[2]->arg, "o", 1) == 0) + if (strncmp(argv[idx_ospf_table]->arg, "o", 1) == 0) protocol = ZEBRA_ROUTE_OSPF; else protocol = ZEBRA_ROUTE_TABLE; - VTY_GET_INTEGER ("Instance ID", instance, argv[3]->arg); + VTY_GET_INTEGER ("Instance ID", instance, argv[idx_number]->arg); return bgp_redistribute_unset (vty->index, AFI_IP, protocol, instance); } @@ -14240,9 +14645,10 @@ DEFUN (no_bgp_redistribute_ipv4, "Redistribute information from another routing protocol\n" QUAGGA_IP_REDIST_HELP_STR_BGPD) { + int idx_protocol = 2; int type; - type = proto_redistnum (AFI_IP, argv[2]->arg); + type = proto_redistnum (AFI_IP, argv[idx_protocol]->arg); if (type < 0 || type == ZEBRA_ROUTE_BGP) { vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE); @@ -14262,9 +14668,10 @@ DEFUN (bgp_redistribute_ipv6, "Redistribute information from another routing protocol\n" QUAGGA_IP6_REDIST_HELP_STR_BGPD) { + int idx_protocol = 1; int type; - type = proto_redistnum (AFI_IP6, argv[1]->arg); + type = proto_redistnum (AFI_IP6, argv[idx_protocol]->arg); if (type < 0 || type == ZEBRA_ROUTE_BGP) { vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE); @@ -14283,10 +14690,12 @@ DEFUN (bgp_redistribute_ipv6_rmap, "Route map reference\n" "Pointer to route-map entries\n") { + int idx_protocol = 1; + int idx_word = 3; int type; struct bgp_redist *red; - type = proto_redistnum (AFI_IP6, argv[1]->arg); + type = proto_redistnum (AFI_IP6, argv[idx_protocol]->arg); if (type < 0 || type == ZEBRA_ROUTE_BGP) { vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE); @@ -14294,7 +14703,7 @@ DEFUN (bgp_redistribute_ipv6_rmap, } red = bgp_redist_add(vty->index, AFI_IP6, type, 0); - bgp_redistribute_rmap_set (red, argv[3]->arg); + bgp_redistribute_rmap_set (red, argv[idx_word]->arg); return bgp_redistribute_set (vty->index, AFI_IP6, type, 0); } @@ -14306,17 +14715,19 @@ DEFUN (bgp_redistribute_ipv6_metric, "Metric for redistributed routes\n" "Default metric\n") { + int idx_protocol = 1; + int idx_number = 3; int type; u_int32_t metric; struct bgp_redist *red; - type = proto_redistnum (AFI_IP6, argv[1]->arg); + type = proto_redistnum (AFI_IP6, argv[idx_protocol]->arg); if (type < 0 || type == ZEBRA_ROUTE_BGP) { vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE); return CMD_WARNING; } - VTY_GET_INTEGER ("metric", metric, argv[3]->arg); + VTY_GET_INTEGER ("metric", metric, argv[idx_number]->arg); red = bgp_redist_add(vty->index, AFI_IP6, type, 0); bgp_redistribute_metric_set(vty->index, red, AFI_IP6, type, metric); @@ -14333,20 +14744,23 @@ DEFUN (bgp_redistribute_ipv6_rmap_metric, "Metric for redistributed routes\n" "Default metric\n") { + int idx_protocol = 1; + int idx_word = 3; + int idx_number = 5; int type; u_int32_t metric; struct bgp_redist *red; - type = proto_redistnum (AFI_IP6, argv[1]->arg); + type = proto_redistnum (AFI_IP6, argv[idx_protocol]->arg); if (type < 0 || type == ZEBRA_ROUTE_BGP) { vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE); return CMD_WARNING; } - VTY_GET_INTEGER ("metric", metric, argv[5]->arg); + VTY_GET_INTEGER ("metric", metric, argv[idx_number]->arg); red = bgp_redist_add(vty->index, AFI_IP6, type, 0); - bgp_redistribute_rmap_set (red, argv[3]->arg); + bgp_redistribute_rmap_set (red, argv[idx_word]->arg); bgp_redistribute_metric_set(vty->index, red, AFI_IP6, type, metric); return bgp_redistribute_set (vty->index, AFI_IP6, type, 0); } @@ -14361,21 +14775,24 @@ DEFUN (bgp_redistribute_ipv6_metric_rmap, "Route map reference\n" "Pointer to route-map entries\n") { + int idx_protocol = 1; + int idx_number = 3; + int idx_word = 5; int type; u_int32_t metric; struct bgp_redist *red; - type = proto_redistnum (AFI_IP6, argv[1]->arg); + type = proto_redistnum (AFI_IP6, argv[idx_protocol]->arg); if (type < 0 || type == ZEBRA_ROUTE_BGP) { vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE); return CMD_WARNING; } - VTY_GET_INTEGER ("metric", metric, argv[3]->arg); + VTY_GET_INTEGER ("metric", metric, argv[idx_number]->arg); red = bgp_redist_add(vty->index, AFI_IP6, type, 0); bgp_redistribute_metric_set(vty->index, red, AFI_IP6, SAFI_UNICAST, metric); - bgp_redistribute_rmap_set (red, argv[5]->arg); + bgp_redistribute_rmap_set (red, argv[idx_word]->arg); return bgp_redistribute_set (vty->index, AFI_IP6, type, 0); } @@ -14421,9 +14838,10 @@ DEFUN (no_bgp_redistribute_ipv6, "Redistribute information from another routing protocol\n" QUAGGA_IP6_REDIST_HELP_STR_BGPD) { + int idx_protocol = 2; int type; - type = proto_redistnum (AFI_IP6, argv[2]->arg); + type = proto_redistnum (AFI_IP6, argv[idx_protocol]->arg); if (type < 0 || type == ZEBRA_ROUTE_BGP) { vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE); @@ -16223,9 +16641,10 @@ DEFUN (show_ip_community_list_arg, "Community-list number\n" "Community-list name\n") { + int idx_comm_list = 3; struct community_list *list; - list = community_list_lookup (bgp_clist, argv[3]->arg, COMMUNITY_LIST_MASTER); + list = community_list_lookup (bgp_clist, argv[idx_comm_list]->arg, COMMUNITY_LIST_MASTER); if (! list) { vty_out (vty, "%% Can't find community-list%s", VTY_NEWLINE); @@ -16604,9 +17023,10 @@ DEFUN (show_ip_extcommunity_list_arg, "Extcommunity-list number\n" "Extcommunity-list name\n") { + int idx_comm_list = 3; struct community_list *list; - list = community_list_lookup (bgp_clist, argv[3]->arg, EXTCOMMUNITY_LIST_MASTER); + list = community_list_lookup (bgp_clist, argv[idx_comm_list]->arg, EXTCOMMUNITY_LIST_MASTER); if (! list) { vty_out (vty, "%% Can't find extcommunity-list%s", VTY_NEWLINE); diff --git a/tools/argv_translator.py b/tools/argv_translator.py index eff05a4125..c98f0d69f3 100755 --- a/tools/argv_translator.py +++ b/tools/argv_translator.py @@ -262,6 +262,78 @@ def get_token_index_variable_name(line_number, token): elif token == 'A.B.C.D|X:X::X:X': return 'idx_ip' + elif token == 'in|out': + return 'idx_in_out' + + elif token == 'deny|permit': + return 'idx_permit_deny' + + elif token == 'view|vrf': + return 'idx_view_vrf' + + elif token == 'unicast|multicast': + return 'idx_safi' + + elif token == 'bestpath|multipath': + return 'idx_bestpath' + + elif token == 'egp|igp|incomplete': + return 'idx_origin' + + elif token == 'cisco|zebra': + return 'idx_vendor' + + elif token == 'as-set|no-as-set': + return 'idx_as_set' + + elif token == 'confed|missing-as-worst': + return 'idx_med_knob' + + elif token == 'both|send|receive': + return 'idx_send_recv' + + elif token == 'both|extended|standard': + return 'idx_type' + + elif token == 'A.B.C.D|WORD': + return 'idx_ipv4_word' + + elif token == 'advertise-queue|advertised-routes|packet-queue': + return 'idx_type' + + elif token == 'ospf|table': + return 'idx_ospf_table' + + elif token == 'as-path|next-hop|med' or token == 'next-hop|med' or token == 'as-path|med' or token == 'as-path|next-hop': + return 'idx_attribute' + + elif token == '(1-4294967295)|external|internal' or token == '(1-4294967295)|internal|external': + return 'idx_remote_as' + + elif token == '(1-500)|WORD' or token == '(1-99)|(100-500)|WORD': + return 'idx_comm_list' + + elif token == 'ipv4|ipv6': + return 'idx_afi' + + elif token == 'advertised-routes|received-routes': + return 'idx_adv_rcvd_routes' + + elif token == 'encap|multicast|unicast|vpn' or token == 'unicast|multicast|vpn|encap': + return 'idx_safi' + + elif token == 'AA:NN|local-AS|no-advertise|no-export': + return 'idx_community' + + elif token == 'all|all-et|updates|updates-et|routes-mrt': + return 'idx_dump_routes' + + elif token == 'A.B.C.D|X:X::X:X|WORD': + return 'idx_peer' + + elif token == 'A.B.C.D/M|X:X::X:X/M': + return 'idx_ipv4_ipv6_prefixlen' + elif token == 'urib-only|mrib-only|mrib-then-urib|lower-distance|longer-prefix': return 'idx_rpf_lookup_mode'