"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 ();
"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))
{
"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 ();
"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))
{
"IPv6 prefix <network>/<length>\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);
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;
}
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;
"IPv6 prefix <network>/<length>\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);
}
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;
}
"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);
"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)
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;
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;
"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);
"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;
"IPv6 prefix <network>/<length>\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);
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;
}
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;
"IPv6 prefix <network>/<length>\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);
}
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;
}
"IPv6 prefix <network>/<length>\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);
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;
}
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;
"IPv6 prefix <network>/<length>\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);
}
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;
}
"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)
/* 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,
"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)
"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;
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
{
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;
}
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))
"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;
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
{
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;
}
"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;
}
/* 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;
}
"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);
"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,
"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. */
"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
"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);
"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);
"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);
"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);
"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)
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;
}
"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)
return CMD_WARNING;
}
- ret = str2sockunion (argv[7]->arg, &su);
+ ret = str2sockunion (argv[idx_ipv4]->arg, &su);
if (ret < 0)
{
if (uj)
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;
}
"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)
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);
"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)
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);
return CMD_WARNING;
}
- ret = str2prefix_rd (argv[5]->arg, &prd);
+ ret = str2prefix_rd (argv[idx_ext_community]->arg, &prd);
if (! ret)
{
if (uj)
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,
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
"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,
"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,
"Specify a network to announce via BGP\n"
"IP prefix <network>/<length>, 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);
}
"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,
"IP prefix <network>/<length>, 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);
}
"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);
"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);
}
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,
"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);
"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);
"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);
}
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,
"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);
"Specify a network to announce via BGP\n"
"IP prefix <network>/<length>, 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));
}
"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);
"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);
"Specify a network to announce via BGP\n"
"IPv6 prefix <network>/<length>\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);
}
"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);
}
/*
"Specify a network to announce via BGP\n"
"IPv6 prefix <network>/<length>\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));
}
"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,
"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)
{
"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);
}
"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)
{
"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);
}
"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)
{
"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);
}
"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)
{
"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));
}
"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)
{
"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);
}
/*
"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);
}
"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);
}
/*
"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);
}
"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);
"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,
"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,
"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,
"IP prefix <network>/<length>, 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,
"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,
"IPv6 prefix <network>/<length>\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));
}
/*
"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);
}
"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,
"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,
"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,
"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,
"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,
"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,
"IP prefix <network>/<length>, 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,
"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);
}
/*
"IP prefix <network>/<length>, 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);
}
"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);
}
"IP prefix <network>/<length>, 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,
"IP prefix <network>/<length>, 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,
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;
}
"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,
"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,
"IP prefix <network>/<length>, 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,
"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
"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);
"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,
"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);
}
/*
"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);
}
"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 */
"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,
"IPv6 prefix <network>/<length>\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,
"IPv6 prefix <network>/<length>, 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);
}
/*
"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);
}
"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 */
"IPv6 prefix <network>/<length>, 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));
}
/*
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;
}
"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));
}
"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);
}
"IPv6 prefix <network>/<length>\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));
}
"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);
}
"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);
}
"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);
}
"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);
}
"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);
}
"IPv6 prefix <network>/<length>\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);
}
"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 */
"IPv6 prefix <network>/<length>, 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
"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);
"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);
}
"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);
}
"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);
}
"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);
}
"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);
}
"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);
}
"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 */
"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);
}
"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);
}
"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);
}
"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);
}
"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);
}
"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);
}
"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 */
"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);
"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);
"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);
"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);
}
"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);
}
"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);
}
"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);
}
"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);
}
"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);
"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);
"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);
"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);
}
"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);
}
"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);
"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,
"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,
"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,
"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,
"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
"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);
}
"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 */
"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);
}
/*
"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);
}
"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 */
"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 */
"IP prefix <network>/<length>, 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);
}
"IP prefix <network>/<length>, 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);
}
"IP prefix <network>/<length>, 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);
}
"IP prefix <network>/<length>, 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);
}
"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);
}
"Display flap statistics of routes\n"
"IP prefix <network>/<length>, 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);
}
"IPv6 prefix <network>/<length>\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);
}
"IPv6 prefix <network>/<length>, 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);
}
"IPv6 prefix <network>/<length>, 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 */
"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,
"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
"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;
"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;
"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;
"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;
"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);
"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;
"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;
"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);
}
"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);
"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;
"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);
}
"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;
"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;
"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;
"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);
}
"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);
"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);
}
"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)
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;
}
}
"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)
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;
}
}
}
}
- 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);
"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);
}
"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)
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;
}
}
"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;
"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;
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)
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)
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;
}
}
"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;
"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;
"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;
"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;
"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);
"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;
"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;
"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;
"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;
"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;
"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;
}
"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;
}
"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;
}
"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;
}
"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;
}
"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;
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;
}
"Clear route flap dampening information\n"
"IP prefix <network>/<length>, 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);
}
"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);
}
"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);
"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);
}
"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);
}
"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);
}
"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);
}
"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);
}
"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);
}
/*
"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);
}
/*
"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);
}
/*
"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);
}
"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);
}
"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);
}
"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);
"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);
}
"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);
}
"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);
"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);
}
"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);
}
"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);
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,
"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);
}
"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);
}
/*
"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);
}
/*
"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);
"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;
"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);
}
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);
"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);
}
/*
"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);
}
"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);
}
"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);
}
"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);
}
"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,
"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,
"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);
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);
}
/*
"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);
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);
}
/*
"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);
}
/*
"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);
}
/*
"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);
BGP_STR
AS_STR)
{
+ int idx_number = 2;
int ret;
as_t as;
struct bgp *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)
BGP_STR
AS_STR)
{
+ int idx_number = 3;
as_t as;
struct bgp *bgp;
const char *name = NULL;
}
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;
"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);
"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);
"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);
"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);
"Effective on a startup\n"
"Time (seconds) period for max-med\n")
{
+ int idx_number = 3;
struct bgp *bgp;
bgp = vty->index;
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);
"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;
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);
"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,
"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 */
"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 */
"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
"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,
"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 */
"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,
"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,
"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);
}
"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)
"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;
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;
}
"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;
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;
}
"Generate an AS_SET\n"
"Do not generate an AS_SET\n")
{
+ int idx_as_set = 4;
struct bgp *bgp;
bgp = vty->index;
/* 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) ;
"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);
"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);
"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);
"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);
"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);
"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;
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);
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
{
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);
"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;
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);
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);
"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
"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);
}
"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);
}
"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,
"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,
"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;
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. */
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
"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. */
"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
"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
"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);
}
"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);
}
"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);
}
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;
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;
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;
"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);
}
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;
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;
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;
"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;
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;
}
}
}
}
- 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);
"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;
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);
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,
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. */
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,
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. */
"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,
"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 */
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,
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 */
"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,
"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
"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);
}
"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);
}
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);
}
"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);
}
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);
}
"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);
}
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);
}
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);
}
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);
}
"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);
}
"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);
}
"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);
}
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);
}
"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);
}
"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);
}
"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);
}
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);
}
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);
}
"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));
"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));
"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);
}
"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);
}
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);
}
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);
}
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);
}
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);
}
"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 );
}
"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 );
}
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 |
"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);
}
"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);
}
"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);
}
"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);
}
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 |
"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);
}
"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);
}
"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);
}
"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);
}
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,
"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);
}
/*
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);
}
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);
}
/*
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. */
"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;
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;
"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,
"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
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);
}
"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);
}
/*
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);
}
"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);
}
/*
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);
}
"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);
}
/*
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);
}
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,
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,
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,
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
"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);
}
/*
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);
}
"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);
}
/*
"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);
}
"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);
}
/*
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);
}
"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
"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,
"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. */
"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,
"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. */
"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,
"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
"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,
"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. */
"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,
"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. */
"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,
"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));
}
"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);
}
"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);
}
"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);
}
"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,
"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,
"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);
}
/*
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));
}
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;
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;
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,
*/
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;
}
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;
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);
}
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);
}
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);
}
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);
}
"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;
"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;
"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);
}
"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);
}
"Clear bestpath and re-advertise\n"
"IP prefix <network>/<length>, 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);
}
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);
+}
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);
"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);
}
"Clear bestpath and re-advertise\n"
"IPv6 prefix <network>/<length>, 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,
"Clear bestpath and re-advertise\n"
"IPv6 prefix <network>/<length>, 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);
}
/*
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);
}
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);
}
/*
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);
}
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);
}
"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);
}
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);
}
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);
}
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);
}
/*
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);
}
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);
}
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);
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);
}
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);
}
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);
}
/*
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);
}
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);
}
"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);
}
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);
}
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);
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);
}
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);
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);
}
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);
}
/*
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);
}
/*
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);
}
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);
}
/*
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);
}
"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);
}
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);
}
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);
}
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);
}
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);
}
/*
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);
}
/*
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);
}
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);
}
/*
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);
}
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);
}
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);
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);
}
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);
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);
}
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);
}
/*
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);
}
/*
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);
}
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);
}
/*
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);
}
"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);
}
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);
}
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);
}
"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);
"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,
"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);
}
"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,
"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,
"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,
"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);
}
/*
"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);
}
"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);
}
"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,
"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);
}
/*
"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);
}
"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);
"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);
}
"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);
}
"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,
"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,
"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,
"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);
}
/*
"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);
}
"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,
"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);
"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);
}
"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);
"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,
"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);
"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 */
"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,
"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);
}
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,
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,
"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));
}
"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,
"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,
"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));
"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);
"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;
}
"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;
}
"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;
}
"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;
}
"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;
}
"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;
"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;
}
"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;
"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;
"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;
}
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,
"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,
"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. */
"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);
"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);
}
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);
}
"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);
"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);
}
"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);
}
"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;
"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);
}
"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);
"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);
}
"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);
}
"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);
}
"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);
"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);
"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);
}
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);
}
"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);
"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);
}
"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);
}
"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);
"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);
"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);
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'