]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: add 'int idx_foo' argv index variables
authorDaniel Walton <dwalton@cumulusnetworks.com>
Fri, 23 Sep 2016 19:45:50 +0000 (19:45 +0000)
committerDaniel Walton <dwalton@cumulusnetworks.com>
Fri, 23 Sep 2016 19:45:50 +0000 (19:45 +0000)
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
bgpd/bgp_debug.c
bgpd/bgp_dump.c
bgpd/bgp_filter.c
bgpd/bgp_mplsvpn.c
bgpd/bgp_nexthop.c
bgpd/bgp_route.c
bgpd/bgp_routemap.c
bgpd/bgp_vty.c
tools/argv_translator.py

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