]> git.puffer.fish Git - matthieu/frr.git/commitdiff
zebra: add 'int idx_foo' argv index variables
authorDaniel Walton <dwalton@cumulusnetworks.com>
Fri, 23 Sep 2016 19:26:31 +0000 (19:26 +0000)
committerDaniel Walton <dwalton@cumulusnetworks.com>
Fri, 23 Sep 2016 19:26:31 +0000 (19:26 +0000)
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
tools/argv_translator.py
zebra/debug.c
zebra/interface.c
zebra/irdp_interface.c
zebra/router-id.c
zebra/rtadv.c
zebra/test_main.c
zebra/zebra_routemap.c
zebra/zebra_vty.c

index 4ee0831ed94d62eb9b02fd186b87f18db5499740..eff05a412576bb60cb0cd3d2f59b216241f907e8 100755 (executable)
@@ -4,6 +4,7 @@ import re
 import sys
 import os
 import subprocess
+from collections import OrderedDict
 from copy import deepcopy
 from pprint import pformat, pprint
 
@@ -156,7 +157,7 @@ def get_argv_translator(line_number, line):
     return table
 '''
 
-def get_argv_variable_indexes(line_number, line):
+def get_command_string_variable_indexes(line_number, line):
     indexes = {}
 
     line = line.strip()
@@ -177,6 +178,230 @@ def get_argv_variable_indexes(line_number, line):
     return (max_index, indexes)
 
 
+def get_token_index_variable_name(line_number, token):
+
+    re_range = re.search('\(\d+-\d+\)', token)
+
+    if token.startswith('['):
+        assert token.endswith(']'), "Token %s should end with ]" % token
+        token = token[1:-1]
+
+    if token.startswith('<'):
+        assert token.endswith('>'), "Token %s should end with >" % token
+        token = token[1:-1]
+
+    if token == 'A.B.C.D':
+        return 'idx_ipv4'
+
+    elif token == 'A.B.C.D/M':
+        return 'idx_ipv4_prefixlen'
+
+    elif token == 'X:X::X:X':
+        return 'idx_ipv6'
+
+    elif token == 'X:X::X:X/M':
+        return 'idx_ipv6_prefixlen'
+
+    elif token == 'ASN:nn_or_IP-address:nn':
+        return 'idx_ext_community'
+
+    elif token == '.AA:NN':
+        return 'idx_community'
+
+    elif token == 'WORD':
+        return 'idx_word'
+
+    elif token == 'json':
+        return 'idx_json'
+
+    elif token == '.LINE':
+        return 'idx_regex'
+
+    elif token == 'A.B.C.D|INTERFACE':
+        return 'idx_ipv4_ifname'
+
+    elif token == 'A.B.C.D|INTERFACE|null0':
+        return 'idx_ipv4_ifname_null'
+
+    elif token == 'X:X::X:X|INTERFACE':
+        return 'idx_ipv6_ifname'
+
+    elif token == 'reject|blackhole':
+        return 'idx_reject_blackhole'
+
+    elif token == 'route-map NAME':
+        return 'idx_route_map'
+
+    elif token == 'recv|send|detail':
+        return 'idx_recv_send'
+
+    elif token == 'recv|send':
+        return 'idx_recv_send'
+
+    elif token == 'up|down':
+        return 'idx_up_down'
+
+    elif token == 'off-link':
+        return 'idx_off_link'
+
+    elif token == 'no-autoconfig':
+        return 'idx_no_autoconfig'
+
+    elif token == 'router-address':
+        return 'idx_router_address'
+
+    elif token == 'high|medium|low':
+        return 'idx_high_medium_low'
+
+    elif token == '(0-4294967295)|infinite':
+        return 'idx_number_infinite'
+
+    elif token == '(1-199)|(1300-2699)|WORD':
+        return 'idx_acl'
+
+    elif token == 'A.B.C.D|X:X::X:X':
+        return 'idx_ip'
+
+    elif token == 'urib-only|mrib-only|mrib-then-urib|lower-distance|longer-prefix':
+        return 'idx_rpf_lookup_mode'
+
+    elif token in ('kernel|connected|static|rip|ospf|isis|pim|table',
+                   'kernel|connected|static|ripng|ospf6|isis|table',
+                   'kernel|connected|static|rip|isis|bgp|pim|table',
+                   'kernel|connected|static|rip|ospf|isis|bgp|pim|table',
+                   'kernel|connected|static|rip|ospf|isis|bgp|pim|table',
+                   'kernel|connected|static|rip|ospf|isis|bgp|pim|table|any',
+                   'kernel|connected|static|ripng|ospf6|isis|bgp|table|any',
+                   'kernel|connected|static|ripng|ospf6|isis|bgp|table',
+                   'kernel|connected|static|ospf6|isis|bgp|table',
+                   'kernel|connected|static|ospf|isis|bgp|pim|table',
+                   'kernel|connected|static|ripng|isis|bgp|table',
+                   # '',
+                   'bgp|ospf|rip|ripng|isis|ospf6|connected|system|kernel|static',
+                   'kernel|connected|static|rip|ripng|ospf|ospf6|bgp|pim|table'):
+        return 'idx_protocol'
+
+    elif '|' in token:
+        raise Exception("%d: what variable name for %s" % (line_number, token))
+
+    elif re_range:
+        return 'idx_number'
+
+    elif token.upper() == token:
+        return 'idx_%s' % token.lower()
+
+    else:
+        raise Exception("%d: what variable name for %s" % (line_number, token))
+
+
+def get_command_string_index_variable_table(line_number, line):
+    """
+    Return a table that maps an index position to a variable name such as 'idx_ipv4'
+    """
+    indexes = OrderedDict()
+
+    line = line.strip()
+    assert line.startswith('"'), "line does not start with \"\n%s" % (line)
+    assert line.endswith('",'), "line does not end with \",\n%s" % (line)
+    line = line[1:-2]
+    max_index = 0
+
+    for (token_index, token) in enumerate(line_to_tokens(line_number, line)):
+        if not token:
+            raise Exception("%d: empty token" % line_number)
+
+        if token_is_variable(line_number, token):
+            # print "%s is a token" % token
+            idx_variable_name = get_token_index_variable_name(line_number, token)
+            count = 0
+            for tmp in indexes.itervalues():
+                if tmp == idx_variable_name:
+                    count += 1
+                elif re.search('^%s_\d+' % idx_variable_name, tmp):
+                    count += 1
+            if count:
+                idx_variable_name = "%s_%d" % (idx_variable_name, count + 1)
+            indexes[token_index] = idx_variable_name
+
+    return indexes
+
+def expand_command_string(line):
+
+    # in the middle
+    line = line.replace('" CMD_AS_RANGE "', '(1-4294967295)')
+    line = line.replace('" DYNAMIC_NEIGHBOR_LIMIT_RANGE "', '(1-5000)')
+    line = line.replace('" BGP_INSTANCE_CMD "', '<view|vrf> WORD')
+    line = line.replace('" BGP_INSTANCE_ALL_CMD "', '<view|vrf> all')
+    line = line.replace('" CMD_RANGE_STR(1, MULTIPATH_NUM) "', '(1-255)')
+    line = line.replace('" QUAGGA_IP_REDIST_STR_BGPD "', '<kernel|connected|static|rip|ospf|isis|pim|table>')
+    line = line.replace('" QUAGGA_IP6_REDIST_STR_BGPD "', '<kernel|connected|static|ripng|ospf6|isis|table>')
+    line = line.replace('" OSPF_LSA_TYPES_CMD_STR "', 'asbr-summary|external|network|router|summary|nssa-external|opaque-link|opaque-area|opaque-as')
+    line = line.replace('" QUAGGA_REDIST_STR_OSPFD "', '<kernel|connected|static|rip|isis|bgp|pim|table>')
+    line = line.replace('" VRF_CMD_STR "', 'vrf NAME')
+    line = line.replace('" VRF_ALL_CMD_STR "', 'vrf all')
+    line = line.replace('" QUAGGA_IP_PROTOCOL_MAP_STR_ZEBRA "', '<kernel|connected|static|rip|ospf|isis|bgp|pim|table|any>')
+    line = line.replace('" QUAGGA_IP6_PROTOCOL_MAP_STR_ZEBRA "', '<kernel|connected|static|ripng|ospf6|isis|bgp|table|any>')
+    line = line.replace('" QUAGGA_REDIST_STR_RIPNGD "', '<kernel|connected|static|ospf6|isis|bgp|table>')
+    line = line.replace('" QUAGGA_REDIST_STR_RIPD "', '<kernel|connected|static|ospf|isis|bgp|pim|table>')
+    line = line.replace('" QUAGGA_REDIST_STR_OSPF6D "', '<kernel|connected|static|ripng|isis|bgp|table>')
+    line = line.replace('" QUAGGA_REDIST_STR_ISISD "', '<kernel|connected|static|rip|ripng|ospf|ospf6|bgp|pim|table>')
+    line = line.replace('" LOG_FACILITIES "', '<kern|user|mail|daemon|auth|syslog|lpr|news|uucp|cron|local0|local1|local2|local3|local4|local5|local6|local7>')
+
+    # endswith
+    line = line.replace('" CMD_AS_RANGE,', ' (1-4294967295)",')
+    line = line.replace('" DYNAMIC_NEIGHBOR_LIMIT_RANGE,', ' (1-5000)",')
+    line = line.replace('" BGP_INSTANCE_CMD,', ' <view|vrf> WORD",')
+    line = line.replace('" BGP_INSTANCE_ALL_CMD,', ' <view|vrf> all",')
+    line = line.replace('" CMD_RANGE_STR(1, MULTIPATH_NUM),', '(1-255)",')
+    line = line.replace('" CMD_RANGE_STR(1, MAXTTL),', '(1-255)",')
+    line = line.replace('" BFD_CMD_DETECT_MULT_RANGE BFD_CMD_MIN_RX_RANGE BFD_CMD_MIN_TX_RANGE,', '(2-255) (50-60000) (50-60000)",')
+    line = line.replace('" OSPF_LSA_TYPES_CMD_STR,',
+                        ' asbr-summary|external|network|router|summary|nssa-external|opaque-link|opaque-area|opaque-as",')
+    line = line.replace('" BGP_UPDATE_SOURCE_REQ_STR,', ' <A.B.C.D|X:X::X:X|WORD>",')
+    line = line.replace('" BGP_UPDATE_SOURCE_OPT_STR,', ' [A.B.C.D|X:X::X:X|WORD]",')
+    line = line.replace('" QUAGGA_IP_REDIST_STR_BGPD,', ' <kernel|connected|static|rip|ospf|isis|pim|table>",')
+    line = line.replace('" QUAGGA_IP6_REDIST_STR_BGPD,', ' <kernel|connected|static|ripng|ospf6|isis|table>",')
+    line = line.replace('" QUAGGA_REDIST_STR_OSPFD,', ' <kernel|connected|static|rip|isis|bgp|pim|table>",')
+    line = line.replace('" VRF_CMD_STR,', ' vrf NAME",')
+    line = line.replace('" VRF_ALL_CMD_STR,', ' vrf all",')
+    line = line.replace('" QUAGGA_IP_REDIST_STR_ZEBRA,', ' <kernel|connected|static|rip|ospf|isis|bgp|pim|table>",')
+    line = line.replace('" QUAGGA_IP6_REDIST_STR_ZEBRA,', ' <kernel|connected|static|ripng|ospf6|isis|bgp|table>",')
+    line = line.replace('" QUAGGA_IP_PROTOCOL_MAP_STR_ZEBRA,', ' <kernel|connected|static|rip|ospf|isis|bgp|pim|table|any>",')
+    line = line.replace('" QUAGGA_IP6_PROTOCOL_MAP_STR_ZEBRA,', ' <kernel|connected|static|ripng|ospf6|isis|bgp|table|any>",')
+    line = line.replace('" QUAGGA_REDIST_STR_RIPNGD,', ' <kernel|connected|static|ospf6|isis|bgp|table>",')
+    line = line.replace('" QUAGGA_REDIST_STR_RIPD,', ' <kernel|connected|static|ospf|isis|bgp|pim|table>",')
+    line = line.replace('" PIM_CMD_IP_MULTICAST_ROUTING,', ' ip multicast-routing",')
+    line = line.replace('" PIM_CMD_IP_IGMP_QUERY_INTERVAL,', ' ip igmp query-interval",')
+    line = line.replace('" PIM_CMD_IP_IGMP_QUERY_MAX_RESPONSE_TIME_DSEC,', ' ip igmp query-max-response-time-dsec",')
+    line = line.replace('" PIM_CMD_IP_IGMP_QUERY_MAX_RESPONSE_TIME,', ' ip igmp query-max-response-time",')
+    line = line.replace('" QUAGGA_REDIST_STR_OSPF6D,', ' <kernel|connected|static|ripng|isis|bgp|table>",')
+    line = line.replace('" QUAGGA_REDIST_STR_ISISD,', ' <kernel|connected|static|rip|ripng|ospf|ospf6|bgp|pim|table>",')
+    line = line.replace('" LOG_FACILITIES,', ' <kern|user|mail|daemon|auth|syslog|lpr|news|uucp|cron|local0|local1|local2|local3|local4|local5|local6|local7>",')
+
+    # startswith
+    line = line.replace('LISTEN_RANGE_CMD "', '"bgp listen range <A.B.C.D/M|X:X::X:X/M> ')
+    line = line.replace('NO_NEIGHBOR_CMD2 "', '"no neighbor <A.B.C.D|X:X::X:X|WORD> ')
+    line = line.replace('NEIGHBOR_CMD2 "', '"neighbor <A.B.C.D|X:X::X:X|WORD> ')
+    line = line.replace('NO_NEIGHBOR_CMD "', '"no neighbor <A.B.C.D|X:X::X:X> ')
+    line = line.replace('NEIGHBOR_CMD "', '"neighbor <A.B.C.D|X:X::X:X> ')
+    line = line.replace('PIM_CMD_NO "', '"no ')
+    line = line.replace('PIM_CMD_IP_IGMP_QUERY_INTERVAL "', '"ip igmp query-interval ')
+    line = line.replace('PIM_CMD_IP_IGMP_QUERY_MAX_RESPONSE_TIME "', '"ip igmp query-max-response-time ')
+    line = line.replace('PIM_CMD_IP_IGMP_QUERY_MAX_RESPONSE_TIME_DSEC "', '"ip igmp query-max-response-time-dsec ')
+
+    # solo
+    line = line.replace('NO_NEIGHBOR_CMD2,', '"no neighbor <A.B.C.D|X:X::X:X|WORD>",')
+    line = line.replace('NEIGHBOR_CMD2,', '"neighbor <A.B.C.D|X:X::X:X|WORD>",')
+    line = line.replace('NO_NEIGHBOR_CMD,', '"no neighbor <A.B.C.D|X:X::X:X>",')
+    line = line.replace('NEIGHBOR_CMD,', '"neighbor <A.B.C.D|X:X::X:X>",')
+    line = line.replace('PIM_CMD_IP_MULTICAST_ROUTING,', '"ip multicast-routing",')
+
+    if line.rstrip().endswith('" ,'):
+        line = line.replace('" ,', '",')
+
+    return line
+
+
 class DEFUN(object):
 
     def __init__(self, line_number, command_string_expanded, lines):
@@ -216,14 +441,14 @@ DEFUN (no_bgp_maxmed_onstartup,
 
             elif state == 'HELP':
                 if line.strip() == '{':
-                    self.guts.append(line)
+                    self.guts.append(line)
                     state = 'BODY'
                 else:
                     self.help_strings.append(line)
 
             elif state == 'BODY':
                 if line.rstrip() == '}':
-                    self.guts.append(line)
+                    self.guts.append(line)
                     state = None
                 else:
                     self.guts.append(line)
@@ -239,7 +464,7 @@ DEFUN (no_bgp_maxmed_onstartup,
         return self.name
 
     def sanity_check(self):
-        (max_index, variable_indexes) = get_argv_variable_indexes(self.line_number, self.command_string_expanded)
+        (max_index, variable_indexes) = get_command_string_variable_indexes(self.line_number, self.command_string_expanded)
 
         # sanity check that each argv index matches a variable in the command string
         for line in self.guts:
@@ -256,7 +481,6 @@ DEFUN (no_bgp_maxmed_onstartup,
 
     def get_new_command_string(self):
         line = self.command_string
-        # dwalton
         # Change <1-255> to (1-255)
         # Change (foo|bar) to <foo|bar>
         # Change {wazzup} to [wazzup]....there shouldn't be many of these
@@ -284,16 +508,66 @@ DEFUN (no_bgp_maxmed_onstartup,
         line = re_space.group(1) + ' '.join(line.split()) + re_space.group(2)
         return line
 
+    def get_used_idx_variables(self, idx_table):
+        used = {}
+
+        # sanity check that each argv index matches a variable in the command string
+        for line in self.guts:
+            if 'argv[' in line and '->arg' in line:
+                tmp_line = deepcopy(line)
+                re_argv = re.search('^.*?argv\[(\w+)\]->arg(.*)$', tmp_line)
+
+                while re_argv:
+                    index = re_argv.group(1)
+
+                    if index.isdigit():
+                        index = int(index)
+                        if index in idx_table:
+                            used[index] = idx_table[index]
+                        else:
+                            print "%d: could not find idx variable for %d" % (self.line_number, index)
+                    else:
+                        for (key, value) in idx_table.iteritems():
+                            if value == index:
+                                used[key] = value
+                                break
+
+                    tmp_line = re_argv.group(2)
+                    re_argv = re.search('^.*?argv\[(\w+)\]->arg(.*)$', tmp_line)
+
+        return used
+
     def dump(self):
+        new_command_string = self.get_new_command_string()
+        new_command_string_expanded = expand_command_string(new_command_string)
         lines = []
         lines.append("DEFUN (%s,\n" % self.name)
         lines.append("       %s,\n" % self.name_cmd)
-        lines.append(self.get_new_command_string())
+        lines.append(new_command_string)
         lines.extend(self.help_strings)
-        lines.extend(self.guts)
-        return ''.join(lines)
+        lines.append('{\n')
 
+        # only print the variables that will be used else we get a compile error
+        idx_table = get_command_string_index_variable_table(self.line_number, new_command_string_expanded)
+        idx_table_used = self.get_used_idx_variables(idx_table)
 
+        for index in sorted(idx_table_used.keys()):
+            idx_variable = idx_table_used[index]
+            lines.append("  int %s = %d;\n" % (idx_variable, index))
+
+        # sanity check that each argv index matches a variable in the command string
+        for line in self.guts:
+            if line.startswith('  int idx_'):
+                pass
+            elif 'argv[' in line and '->arg' in line:
+                for (index, idx_variable) in idx_table.iteritems():
+                    line = line.replace("argv[%d]->arg" % index, "argv[%s]->arg" % idx_variable)
+                lines.append(line)
+            else:
+                lines.append(line)
+
+        lines.append('}\n')
+        return ''.join(lines)
 
 
 def update_argvs(filename):
@@ -334,78 +608,7 @@ def update_argvs(filename):
                     state = 'DEFUN_BODY'
 
                 elif line_number == defun_line_number + 2:
-
-                    # in the middle
-                    line = line.replace('" CMD_AS_RANGE "', '<1-4294967295>')
-                    line = line.replace('" DYNAMIC_NEIGHBOR_LIMIT_RANGE "', '<1-5000>')
-                    line = line.replace('" BGP_INSTANCE_CMD "', '(view|vrf) WORD')
-                    line = line.replace('" BGP_INSTANCE_ALL_CMD "', '(view|vrf) all')
-                    line = line.replace('" CMD_RANGE_STR(1, MULTIPATH_NUM) "', '<1-255>')
-                    line = line.replace('" QUAGGA_IP_REDIST_STR_BGPD "', '(kernel|connected|static|rip|ospf|isis|pim|table)')
-                    line = line.replace('" QUAGGA_IP6_REDIST_STR_BGPD "', '(kernel|connected|static|ripng|ospf6|isis|table)')
-                    line = line.replace('" OSPF_LSA_TYPES_CMD_STR "', 'asbr-summary|external|network|router|summary|nssa-external|opaque-link|opaque-area|opaque-as')
-                    line = line.replace('" QUAGGA_REDIST_STR_OSPFD "', '(kernel|connected|static|rip|isis|bgp|pim|table)')
-                    line = line.replace('" VRF_CMD_STR "', 'vrf NAME')
-                    line = line.replace('" VRF_ALL_CMD_STR "', 'vrf all')
-                    line = line.replace('" QUAGGA_IP_PROTOCOL_MAP_STR_ZEBRA "', '(kernel|connected|static|rip|ospf|isis|bgp|pim|table|any)')
-                    line = line.replace('" QUAGGA_IP6_PROTOCOL_MAP_STR_ZEBRA "', '(kernel|connected|static|ripng|ospf6|isis|bgp|table|any)')
-                    line = line.replace('" QUAGGA_REDIST_STR_RIPNGD "', '(kernel|connected|static|ospf6|isis|bgp|table)')
-                    line = line.replace('" QUAGGA_REDIST_STR_RIPD "', '(kernel|connected|static|ospf|isis|bgp|pim|table)')
-                    line = line.replace('" QUAGGA_REDIST_STR_OSPF6D "', '(kernel|connected|static|ripng|isis|bgp|table)')
-                    line = line.replace('" QUAGGA_REDIST_STR_ISISD "', '(kernel|connected|static|rip|ripng|ospf|ospf6|bgp|pim|table)')
-                    line = line.replace('" LOG_FACILITIES "', '(kern|user|mail|daemon|auth|syslog|lpr|news|uucp|cron|local0|local1|local2|local3|local4|local5|local6|local7)')
-
-                    # endswith
-                    line = line.replace('" CMD_AS_RANGE,', ' <1-4294967295>",')
-                    line = line.replace('" DYNAMIC_NEIGHBOR_LIMIT_RANGE,', ' <1-5000>",')
-                    line = line.replace('" BGP_INSTANCE_CMD,', ' (view|vrf) WORD",')
-                    line = line.replace('" BGP_INSTANCE_ALL_CMD,', ' (view|vrf) all",')
-                    line = line.replace('" CMD_RANGE_STR(1, MULTIPATH_NUM),', '<1-255>",')
-                    line = line.replace('" CMD_RANGE_STR(1, MAXTTL),', '<1-255>",')
-                    line = line.replace('" BFD_CMD_DETECT_MULT_RANGE BFD_CMD_MIN_RX_RANGE BFD_CMD_MIN_TX_RANGE,', '<2-255> <50-60000> <50-60000>",')
-                    line = line.replace('" OSPF_LSA_TYPES_CMD_STR,',
-                                        ' asbr-summary|external|network|router|summary|nssa-external|opaque-link|opaque-area|opaque-as",')
-                    line = line.replace('" BGP_UPDATE_SOURCE_REQ_STR,', ' (A.B.C.D|X:X::X:X|WORD)",')
-                    line = line.replace('" BGP_UPDATE_SOURCE_OPT_STR,', ' {A.B.C.D|X:X::X:X|WORD}",')
-                    line = line.replace('" QUAGGA_IP_REDIST_STR_BGPD,', ' (kernel|connected|static|rip|ospf|isis|pim|table)",')
-                    line = line.replace('" QUAGGA_IP6_REDIST_STR_BGPD,', ' (kernel|connected|static|ripng|ospf6|isis|table)",')
-                    line = line.replace('" QUAGGA_REDIST_STR_OSPFD,', ' (kernel|connected|static|rip|isis|bgp|pim|table)",')
-                    line = line.replace('" VRF_CMD_STR,', ' vrf NAME",')
-                    line = line.replace('" VRF_ALL_CMD_STR,', ' vrf all",')
-                    line = line.replace('" QUAGGA_IP_REDIST_STR_ZEBRA,', ' (kernel|connected|static|rip|ospf|isis|bgp|pim|table)",')
-                    line = line.replace('" QUAGGA_IP6_REDIST_STR_ZEBRA,', ' (kernel|connected|static|ripng|ospf6|isis|bgp|table)",')
-                    line = line.replace('" QUAGGA_IP_PROTOCOL_MAP_STR_ZEBRA,', ' (kernel|connected|static|rip|ospf|isis|bgp|pim|table|any)",')
-                    line = line.replace('" QUAGGA_IP6_PROTOCOL_MAP_STR_ZEBRA,', ' (kernel|connected|static|ripng|ospf6|isis|bgp|table|any)",')
-                    line = line.replace('" QUAGGA_REDIST_STR_RIPNGD,', ' (kernel|connected|static|ospf6|isis|bgp|table)",')
-                    line = line.replace('" QUAGGA_REDIST_STR_RIPD,', ' (kernel|connected|static|ospf|isis|bgp|pim|table)",')
-                    line = line.replace('" PIM_CMD_IP_MULTICAST_ROUTING,', ' ip multicast-routing",')
-                    line = line.replace('" PIM_CMD_IP_IGMP_QUERY_INTERVAL,', ' ip igmp query-interval",')
-                    line = line.replace('" PIM_CMD_IP_IGMP_QUERY_MAX_RESPONSE_TIME_DSEC,', ' ip igmp query-max-response-time-dsec",')
-                    line = line.replace('" PIM_CMD_IP_IGMP_QUERY_MAX_RESPONSE_TIME,', ' ip igmp query-max-response-time",')
-                    line = line.replace('" QUAGGA_REDIST_STR_OSPF6D,', ' (kernel|connected|static|ripng|isis|bgp|table)",')
-                    line = line.replace('" QUAGGA_REDIST_STR_ISISD,', ' (kernel|connected|static|rip|ripng|ospf|ospf6|bgp|pim|table)",')
-                    line = line.replace('" LOG_FACILITIES,', ' (kern|user|mail|daemon|auth|syslog|lpr|news|uucp|cron|local0|local1|local2|local3|local4|local5|local6|local7)",')
-
-                    # startswith
-                    line = line.replace('LISTEN_RANGE_CMD "', '"bgp listen range (A.B.C.D/M|X:X::X:X/M) ')
-                    line = line.replace('NO_NEIGHBOR_CMD2 "', '"no neighbor (A.B.C.D|X:X::X:X|WORD) ')
-                    line = line.replace('NEIGHBOR_CMD2 "', '"neighbor (A.B.C.D|X:X::X:X|WORD) ')
-                    line = line.replace('NO_NEIGHBOR_CMD "', '"no neighbor (A.B.C.D|X:X::X:X) ')
-                    line = line.replace('NEIGHBOR_CMD "', '"neighbor (A.B.C.D|X:X::X:X) ')
-                    line = line.replace('PIM_CMD_NO "', '"no ')
-                    line = line.replace('PIM_CMD_IP_IGMP_QUERY_INTERVAL "', '"ip igmp query-interval ')
-                    line = line.replace('PIM_CMD_IP_IGMP_QUERY_MAX_RESPONSE_TIME "', '"ip igmp query-max-response-time ')
-                    line = line.replace('PIM_CMD_IP_IGMP_QUERY_MAX_RESPONSE_TIME_DSEC "', '"ip igmp query-max-response-time-dsec ')
-
-                    # solo
-                    line = line.replace('NO_NEIGHBOR_CMD2,', '"no neighbor (A.B.C.D|X:X::X:X|WORD)",')
-                    line = line.replace('NEIGHBOR_CMD2,', '"neighbor (A.B.C.D|X:X::X:X|WORD)",')
-                    line = line.replace('NO_NEIGHBOR_CMD,', '"no neighbor (A.B.C.D|X:X::X:X)",')
-                    line = line.replace('NEIGHBOR_CMD,', '"neighbor (A.B.C.D|X:X::X:X)",')
-                    line = line.replace('PIM_CMD_IP_MULTICAST_ROUTING,', '"ip multicast-routing",')
-
-                    if line.rstrip().endswith('" ,'):
-                        line = line.replace('" ,', '",')
+                    line = expand_command_string(line)
                     command_string = line
 
                     '''
index cbdcdf27f6af0ef2646ab0186ff52debd069ee2e..3714ffe3f68a567290ff3cb24bc9df05b253ea91 100644 (file)
@@ -130,12 +130,13 @@ DEFUN (debug_zebra_packet_direct,
        "Debug option set for receive packet\n"
        "Debug option set for send packet\n")
 {
+  int idx_recv_send = 3;
   zebra_debug_packet = ZEBRA_DEBUG_PACKET;
-  if (strncmp ("send", argv[3]->arg, strlen (argv[3]->arg)) == 0)
+  if (strncmp ("send", argv[idx_recv_send]->arg, strlen (argv[idx_recv_send]->arg)) == 0)
     SET_FLAG(zebra_debug_packet, ZEBRA_DEBUG_SEND);
-  if (strncmp ("recv", argv[3]->arg, strlen (argv[3]->arg)) == 0)
+  if (strncmp ("recv", argv[idx_recv_send]->arg, strlen (argv[idx_recv_send]->arg)) == 0)
     SET_FLAG(zebra_debug_packet, ZEBRA_DEBUG_RECV);
-  if (strncmp ("detail", argv[3]->arg, strlen (argv[3]->arg)) == 0)
+  if (strncmp ("detail", argv[idx_recv_send]->arg, strlen (argv[idx_recv_send]->arg)) == 0)
     SET_FLAG(zebra_debug_packet, ZEBRA_DEBUG_DETAIL);
   return CMD_SUCCESS;
 }
@@ -150,10 +151,11 @@ DEFUN (debug_zebra_packet_detail,
        "Debug option set for send packet\n"
        "Debug option set detailed information\n")
 {
+  int idx_recv_send = 3;
   zebra_debug_packet = ZEBRA_DEBUG_PACKET;
-  if (strncmp ("send", argv[3]->arg, strlen (argv[3]->arg)) == 0)
+  if (strncmp ("send", argv[idx_recv_send]->arg, strlen (argv[idx_recv_send]->arg)) == 0)
     SET_FLAG(zebra_debug_packet, ZEBRA_DEBUG_SEND);
-  if (strncmp ("recv", argv[3]->arg, strlen (argv[3]->arg)) == 0)
+  if (strncmp ("recv", argv[idx_recv_send]->arg, strlen (argv[idx_recv_send]->arg)) == 0)
     SET_FLAG(zebra_debug_packet, ZEBRA_DEBUG_RECV);
   SET_FLAG(zebra_debug_packet, ZEBRA_DEBUG_DETAIL);
   return CMD_SUCCESS;
@@ -180,9 +182,10 @@ DEFUN (debug_zebra_kernel_msgdump,
        "Dump raw netlink messages received\n"
        "Dump raw netlink messages sent\n")
 {
-  if (argv[4]->arg && strncmp(argv[4]->arg, "recv", strlen(argv[4]->arg)) == 0)
+  int idx_recv_send = 4;
+  if (argv[idx_recv_send]->arg && strncmp(argv[idx_recv_send]->arg, "recv", strlen(argv[idx_recv_send]->arg)) == 0)
     SET_FLAG(zebra_debug_kernel, ZEBRA_DEBUG_KERNEL_MSGDUMP_RECV);
-  if (!argv[4]->arg || strncmp(argv[4]->arg, "send", strlen(argv[4]->arg)) == 0)
+  if (!argv[idx_recv_send]->arg || strncmp(argv[idx_recv_send]->arg, "send", strlen(argv[idx_recv_send]->arg)) == 0)
     SET_FLAG(zebra_debug_kernel, ZEBRA_DEBUG_KERNEL_MSGDUMP_SEND);
   return CMD_SUCCESS;
 }
@@ -267,9 +270,10 @@ DEFUN (no_debug_zebra_packet_direct,
        "Debug option set for receive packet\n"
        "Debug option set for send packet\n")
 {
-  if (strncmp ("send", argv[4]->arg, strlen (argv[4]->arg)) == 0)
+  int idx_recv_send = 4;
+  if (strncmp ("send", argv[idx_recv_send]->arg, strlen (argv[idx_recv_send]->arg)) == 0)
     UNSET_FLAG(zebra_debug_packet, ZEBRA_DEBUG_SEND);
-  if (strncmp ("recv", argv[4]->arg, strlen (argv[4]->arg)) == 0)
+  if (strncmp ("recv", argv[idx_recv_send]->arg, strlen (argv[idx_recv_send]->arg)) == 0)
     UNSET_FLAG(zebra_debug_packet, ZEBRA_DEBUG_RECV);
   return CMD_SUCCESS;
 }
@@ -296,9 +300,10 @@ DEFUN (no_debug_zebra_kernel_msgdump,
        "Dump raw netlink messages received\n"
        "Dump raw netlink messages sent\n")
 {
-  if (!argv[1] || (argv[5]->arg && strncmp(argv[5]->arg, "recv", strlen(argv[5]->arg)) == 0))
+  int idx_recv_send = 5;
+  if (!argv[1] || (argv[idx_recv_send]->arg && strncmp(argv[idx_recv_send]->arg, "recv", strlen(argv[idx_recv_send]->arg)) == 0))
     UNSET_FLAG(zebra_debug_kernel, ZEBRA_DEBUG_KERNEL_MSGDUMP_RECV);
-  if (!argv[5]->arg || (argv[5]->arg && strncmp(argv[5]->arg, "send", strlen(argv[5]->arg)) == 0))
+  if (!argv[idx_recv_send]->arg || (argv[idx_recv_send]->arg && strncmp(argv[idx_recv_send]->arg, "send", strlen(argv[idx_recv_send]->arg)) == 0))
     UNSET_FLAG(zebra_debug_kernel, ZEBRA_DEBUG_KERNEL_MSGDUMP_SEND);
   return CMD_SUCCESS;
 }
index 1f1146e247049b84b900e6cfef0260417568f096..26315bd6c764d40ba9aaa959073b2c3ac0086d71 100644 (file)
@@ -1361,19 +1361,21 @@ DEFUN (show_interface_name_vrf,
        "Interface name\n"
        VRF_CMD_HELP_STR)
 {
+  int idx_ifname = 2;
+  int idx_name = 4;
   struct interface *ifp;
   vrf_id_t vrf_id = VRF_DEFAULT;
 
   interface_update_stats ();
 
   if (argc > 1)
-    VRF_GET_ID (vrf_id, argv[4]->arg);
+    VRF_GET_ID (vrf_id, argv[idx_name]->arg);
 
   /* Specified interface print. */
-  ifp = if_lookup_by_name_vrf (argv[2]->arg, vrf_id);
+  ifp = if_lookup_by_name_vrf (argv[idx_ifname]->arg, vrf_id);
   if (ifp == NULL)
     {
-      vty_out (vty, "%% Can't find interface %s%s", argv[2]->arg,
+      vty_out (vty, "%% Can't find interface %s%s", argv[idx_ifname]->arg,
                VTY_NEWLINE);
       return CMD_WARNING;
     }
@@ -1399,6 +1401,7 @@ DEFUN (show_interface_name_vrf_all,
        "Interface name\n"
        VRF_ALL_CMD_HELP_STR)
 {
+  int idx_ifname = 2;
   struct interface *ifp;
   vrf_iter_t iter;
   int found = 0;
@@ -1409,7 +1412,7 @@ DEFUN (show_interface_name_vrf_all,
   for (iter = vrf_first (); iter != VRF_ITER_INVALID; iter = vrf_next (iter))
     {
       /* Specified interface print. */
-      ifp = if_lookup_by_name_vrf (argv[2]->arg, vrf_iter2id (iter));
+      ifp = if_lookup_by_name_vrf (argv[idx_ifname]->arg, vrf_iter2id (iter));
       if (ifp)
         {
           if_dump_vty (vty, ifp);
@@ -1419,7 +1422,7 @@ DEFUN (show_interface_name_vrf_all,
 
   if (!found)
     {
-      vty_out (vty, "%% Can't find interface %s%s", argv[2]->arg, VTY_NEWLINE);
+      vty_out (vty, "%% Can't find interface %s%s", argv[idx_ifname]->arg, VTY_NEWLINE);
       return CMD_WARNING;
     }
 
@@ -1678,11 +1681,12 @@ DEFUN (bandwidth_if,
        "Set bandwidth informational parameter\n"
        "Bandwidth in megabits\n")
 {
+  int idx_number = 1;
   struct interface *ifp;   
   unsigned int bandwidth;
   
   ifp = (struct interface *) vty->index;
-  bandwidth = strtol(argv[1]->arg, NULL, 10);
+  bandwidth = strtol(argv[idx_number]->arg, NULL, 10);
 
   /* bandwidth range is <1-100000> */
   if (bandwidth < 1 || bandwidth > 100000)
@@ -1844,11 +1848,12 @@ DEFUN (link_params_metric,
        "Link metric for MPLS-TE purpose\n"
        "Metric value in decimal\n")
 {
+  int idx_number = 1;
   struct interface *ifp = (struct interface *) vty->index;
   struct if_link_params *iflp = if_link_params_get (ifp);
   u_int32_t metric;
 
-  VTY_GET_ULONG("metric", metric, argv[1]->arg);
+  VTY_GET_ULONG("metric", metric, argv[idx_number]->arg);
 
   /* Update TE metric if needed */
   link_param_cmd_set_uint32 (ifp, &iflp->te_metric, LP_TE, metric);
@@ -1876,12 +1881,13 @@ DEFUN (link_params_maxbw,
        "Maximum bandwidth that can be used\n"
        "Bytes/second (IEEE floating point format)\n")
 {
+  int idx_bandwidth = 1;
   struct interface *ifp = (struct interface *) vty->index;
   struct if_link_params *iflp = if_link_params_get (ifp);
 
   float bw;
 
-  if (sscanf (argv[1]->arg, "%g", &bw) != 1)
+  if (sscanf (argv[idx_bandwidth]->arg, "%g", &bw) != 1)
     {
       vty_out (vty, "link_params_maxbw: fscanf: %s%s", safe_strerror (errno),
                VTY_NEWLINE);
@@ -1920,11 +1926,12 @@ DEFUN (link_params_max_rsv_bw,
        "Maximum bandwidth that may be reserved\n"
        "Bytes/second (IEEE floating point format)\n")
 {
+  int idx_bandwidth = 1;
   struct interface *ifp = (struct interface *) vty->index;
   struct if_link_params *iflp = if_link_params_get (ifp);
   float bw;
 
-  if (sscanf (argv[1]->arg, "%g", &bw) != 1)
+  if (sscanf (argv[idx_bandwidth]->arg, "%g", &bw) != 1)
     {
       vty_out (vty, "link_params_max_rsv_bw: fscanf: %s%s", safe_strerror (errno),
                VTY_NEWLINE);
@@ -1953,20 +1960,22 @@ DEFUN (link_params_unrsv_bw,
        "Priority\n"
        "Bytes/second (IEEE floating point format)\n")
 {
+  int idx_number = 1;
+  int idx_bandwidth = 2;
   struct interface *ifp = (struct interface *) vty->index;
   struct if_link_params *iflp = if_link_params_get (ifp);
   int priority;
   float bw;
 
   /* We don't have to consider about range check here. */
-  if (sscanf (argv[1]->arg, "%d", &priority) != 1)
+  if (sscanf (argv[idx_number]->arg, "%d", &priority) != 1)
     {
       vty_out (vty, "link_params_unrsv_bw: fscanf: %s%s", safe_strerror (errno),
                VTY_NEWLINE);
       return CMD_WARNING;
     }
 
-  if (sscanf (argv[2]->arg, "%g", &bw) != 1)
+  if (sscanf (argv[idx_bandwidth]->arg, "%g", &bw) != 1)
     {
       vty_out (vty, "link_params_unrsv_bw: fscanf: %s%s", safe_strerror (errno),
                VTY_NEWLINE);
@@ -1994,11 +2003,12 @@ DEFUN (link_params_admin_grp,
        "Administrative group membership\n"
        "32-bit Hexadecimal value (e.g. 0xa1)\n")
 {
+  int idx_bitpattern = 1;
   struct interface *ifp = (struct interface *) vty->index;
   struct if_link_params *iflp = if_link_params_get (ifp);
   unsigned long value;
 
-  if (sscanf (argv[1]->arg, "0x%lx", &value) != 1)
+  if (sscanf (argv[idx_bitpattern]->arg, "0x%lx", &value) != 1)
     {
       vty_out (vty, "link_params_admin_grp: fscanf: %s%s",
                safe_strerror (errno), VTY_NEWLINE);
@@ -2034,19 +2044,21 @@ DEFUN (link_params_inter_as,
        "Remote AS number\n"
        "AS number in the range <1-4294967295>\n")
 {
+  int idx_ipv4 = 1;
+  int idx_number = 3;
 
   struct interface *ifp = (struct interface *) vty->index;
   struct if_link_params *iflp = if_link_params_get (ifp);
   struct in_addr addr;
   u_int32_t as;
 
-  if (!inet_aton (argv[1]->arg, &addr))
+  if (!inet_aton (argv[idx_ipv4]->arg, &addr))
     {
       vty_out (vty, "Please specify Router-Addr by A.B.C.D%s", VTY_NEWLINE);
       return CMD_WARNING;
     }
 
-  VTY_GET_ULONG("AS number", as, argv[3]->arg);
+  VTY_GET_ULONG("AS number", as, argv[idx_number]->arg);
 
   /* Update Remote IP and Remote AS fields if needed */
   if (IS_PARAM_UNSET(iflp, LP_RMT_AS)
@@ -2105,6 +2117,7 @@ DEFUN (link_params_delay,
        "Unidirectional Average Link Delay\n"
        "Average delay in micro-second as decimal (0...16777215)\n")
 {
+  int idx_number = 1;
 
   struct interface *ifp = (struct interface *) vty->index;
   struct if_link_params *iflp = if_link_params_get (ifp);
@@ -2112,7 +2125,7 @@ DEFUN (link_params_delay,
   u_int8_t update = 0;
 
   /* Get and Check new delay values */
-  VTY_GET_ULONG("delay", delay, argv[1]->arg);
+  VTY_GET_ULONG("delay", delay, argv[idx_number]->arg);
   switch (argc)
     {
     case 1:
@@ -2212,11 +2225,12 @@ DEFUN (link_params_delay_var,
        "Unidirectional Link Delay Variation\n"
        "delay variation in micro-second as decimal (0...16777215)\n")
 {
+  int idx_number = 1;
   struct interface *ifp = (struct interface *) vty->index;
   struct if_link_params *iflp = if_link_params_get (ifp);
   u_int32_t value;
 
-  VTY_GET_ULONG("delay variation", value, argv[1]->arg);
+  VTY_GET_ULONG("delay variation", value, argv[idx_number]->arg);
 
   /* Update Delay Variation if needed */
   link_param_cmd_set_uint32 (ifp, &iflp->delay_var, LP_DELAY_VAR, value);
@@ -2244,11 +2258,12 @@ DEFUN (link_params_pkt_loss,
        "Unidirectional Link Packet Loss\n"
        "percentage of total traffic by 0.000003% step and less than 50.331642%\n")
 {
+  int idx_percentage = 1;
   struct interface *ifp = (struct interface *) vty->index;
   struct if_link_params *iflp = if_link_params_get (ifp);
   float fval;
 
-  if (sscanf (argv[1]->arg, "%g", &fval) != 1)
+  if (sscanf (argv[idx_percentage]->arg, "%g", &fval) != 1)
     {
       vty_out (vty, "link_params_pkt_loss: fscanf: %s%s", safe_strerror (errno),
                VTY_NEWLINE);
@@ -2284,11 +2299,12 @@ DEFUN (link_params_res_bw,
        "Unidirectional Residual Bandwidth\n"
        "Bytes/second (IEEE floating point format)\n")
 {
+  int idx_bandwidth = 1;
   struct interface *ifp = (struct interface *) vty->index;
   struct if_link_params *iflp = if_link_params_get (ifp);
   float bw;
 
-  if (sscanf (argv[1]->arg, "%g", &bw) != 1)
+  if (sscanf (argv[idx_bandwidth]->arg, "%g", &bw) != 1)
     {
       vty_out (vty, "link_params_res_bw: fscanf: %s%s", safe_strerror (errno),
                VTY_NEWLINE);
@@ -2330,11 +2346,12 @@ DEFUN (link_params_ava_bw,
        "Unidirectional Available Bandwidth\n"
        "Bytes/second (IEEE floating point format)\n")
 {
+  int idx_bandwidth = 1;
   struct interface *ifp = (struct interface *) vty->index;
   struct if_link_params *iflp = if_link_params_get (ifp);
   float bw;
 
-  if (sscanf (argv[1]->arg, "%g", &bw) != 1)
+  if (sscanf (argv[idx_bandwidth]->arg, "%g", &bw) != 1)
     {
       vty_out (vty, "link_params_ava_bw: fscanf: %s%s", safe_strerror (errno),
                VTY_NEWLINE);
@@ -2376,11 +2393,12 @@ DEFUN (link_params_use_bw,
        "Unidirectional Utilised Bandwidth\n"
        "Bytes/second (IEEE floating point format)\n")
 {
+  int idx_bandwidth = 1;
   struct interface *ifp = (struct interface *) vty->index;
   struct if_link_params *iflp = if_link_params_get (ifp);
   float bw;
 
-  if (sscanf (argv[1]->arg, "%g", &bw) != 1)
+  if (sscanf (argv[idx_bandwidth]->arg, "%g", &bw) != 1)
     {
       vty_out (vty, "link_params_use_bw: fscanf: %s%s", safe_strerror (errno),
                VTY_NEWLINE);
@@ -2564,7 +2582,8 @@ DEFUN (ip_address,
        "Set the IP address of an interface\n"
        "IP address (e.g. 10.0.0.1/8)\n")
 {
-  return ip_address_install (vty, vty->index, argv[2]->arg, NULL, NULL);
+  int idx_ipv4_prefixlen = 2;
+  return ip_address_install (vty, vty->index, argv[idx_ipv4_prefixlen]->arg, NULL, NULL);
 }
 
 DEFUN (no_ip_address,
@@ -2575,7 +2594,8 @@ DEFUN (no_ip_address,
        "Set the IP address of an interface\n"
        "IP Address (e.g. 10.0.0.1/8)")
 {
-  return ip_address_uninstall (vty, vty->index, argv[3]->arg, NULL, NULL);
+  int idx_ipv4_prefixlen = 3;
+  return ip_address_uninstall (vty, vty->index, argv[idx_ipv4_prefixlen]->arg, NULL, NULL);
 }
 
 
@@ -2589,7 +2609,9 @@ DEFUN (ip_address_label,
        "Label of this address\n"
        "Label\n")
 {
-  return ip_address_install (vty, vty->index, argv[2]->arg, NULL, argv[4]->arg);
+  int idx_ipv4_prefixlen = 2;
+  int idx_line = 4;
+  return ip_address_install (vty, vty->index, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_line]->arg);
 }
 
 DEFUN (no_ip_address_label,
@@ -2602,7 +2624,9 @@ DEFUN (no_ip_address_label,
        "Label of this address\n"
        "Label\n")
 {
-  return ip_address_uninstall (vty, vty->index, argv[3]->arg, NULL, argv[5]->arg);
+  int idx_ipv4_prefixlen = 3;
+  int idx_line = 5;
+  return ip_address_uninstall (vty, vty->index, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_line]->arg);
 }
 #endif /* HAVE_NETLINK */
 
@@ -2765,7 +2789,8 @@ DEFUN (ipv6_address,
        "Set the IP address of an interface\n"
        "IPv6 address (e.g. 3ffe:506::1/48)\n")
 {
-  return ipv6_address_install (vty, vty->index, argv[2]->arg, NULL, NULL, 0);
+  int idx_ipv6_prefixlen = 2;
+  return ipv6_address_install (vty, vty->index, argv[idx_ipv6_prefixlen]->arg, NULL, NULL, 0);
 }
 
 DEFUN (no_ipv6_address,
@@ -2776,7 +2801,8 @@ DEFUN (no_ipv6_address,
        "Set the IP address of an interface\n"
        "IPv6 address (e.g. 3ffe:506::1/48)\n")
 {
-  return ipv6_address_uninstall (vty, vty->index, argv[3]->arg, NULL, NULL, 0);
+  int idx_ipv6_prefixlen = 3;
+  return ipv6_address_uninstall (vty, vty->index, argv[idx_ipv6_prefixlen]->arg, NULL, NULL, 0);
 }
 #endif /* HAVE_IPV6 */
 
index 424f02788a3d98b977b587c3b5c5d2c468485b82..2f741380f58374573594d46e43fc13f87d5eb1a3 100644 (file)
@@ -469,6 +469,7 @@ DEFUN (ip_irdp_holdtime,
        "Set holdtime value\n"
        "Holdtime value in seconds. Default is 1800 seconds\n")
 {
+  int idx_number = 3;
   struct interface *ifp;
   struct zebra_if *zi;
   struct irdp_interface *irdp;
@@ -480,7 +481,7 @@ DEFUN (ip_irdp_holdtime,
   zi=ifp->info;
   irdp=&zi->irdp;
 
-  irdp->Lifetime = atoi(argv[3]->arg);
+  irdp->Lifetime = atoi(argv[idx_number]->arg);
   return CMD_SUCCESS;
 }
 
@@ -492,6 +493,7 @@ DEFUN (ip_irdp_minadvertinterval,
        "Set minimum time between advertisement\n"
        "Minimum advertisement interval in seconds\n")
 {
+  int idx_number = 3;
   struct interface *ifp;
   struct zebra_if *zi;
   struct irdp_interface *irdp;
@@ -503,8 +505,8 @@ DEFUN (ip_irdp_minadvertinterval,
   zi=ifp->info;
   irdp=&zi->irdp;
 
-  if( (unsigned) atoi(argv[3]->arg) <= irdp->MaxAdvertInterval) {
-      irdp->MinAdvertInterval = atoi(argv[3]->arg);
+  if( (unsigned) atoi(argv[idx_number]->arg) <= irdp->MaxAdvertInterval) {
+      irdp->MinAdvertInterval = atoi(argv[idx_number]->arg);
 
       return CMD_SUCCESS;
   }
@@ -525,6 +527,7 @@ DEFUN (ip_irdp_maxadvertinterval,
        "Set maximum time between advertisement\n"
        "Maximum advertisement interval in seconds\n")
 {
+  int idx_number = 3;
   struct interface *ifp;
   struct zebra_if *zi;
   struct irdp_interface *irdp;
@@ -537,8 +540,8 @@ DEFUN (ip_irdp_maxadvertinterval,
   irdp=&zi->irdp;
 
 
-  if( irdp->MinAdvertInterval <= (unsigned) atoi(argv[3]->arg) ) {
-    irdp->MaxAdvertInterval = atoi(argv[3]->arg);
+  if( irdp->MinAdvertInterval <= (unsigned) atoi(argv[idx_number]->arg) ) {
+    irdp->MaxAdvertInterval = atoi(argv[idx_number]->arg);
 
       return CMD_SUCCESS;
   }
@@ -564,6 +567,7 @@ DEFUN (ip_irdp_preference,
        "Set default preference level for this interface\n"
        "Preference level\n")
 {
+  int idx_number = 3;
   struct interface *ifp;
   struct zebra_if *zi;
   struct irdp_interface *irdp;
@@ -575,7 +579,7 @@ DEFUN (ip_irdp_preference,
   zi=ifp->info;
   irdp=&zi->irdp;
 
-  irdp->Preference = atoi(argv[3]->arg);
+  irdp->Preference = atoi(argv[idx_number]->arg);
   return CMD_SUCCESS;
 }
 
@@ -588,6 +592,8 @@ DEFUN (ip_irdp_address_preference,
        "Set IRDP address for advertise\n"
        "Preference level\n")
 {
+  int idx_ipv4 = 3;
+  int idx_number = 5;
   struct listnode *node;
   struct in_addr ip; 
   int pref;
@@ -605,10 +611,10 @@ DEFUN (ip_irdp_address_preference,
   zi=ifp->info;
   irdp=&zi->irdp;
 
-  ret = inet_aton(argv[3]->arg, &ip);
+  ret = inet_aton(argv[idx_ipv4]->arg, &ip);
   if(!ret) return CMD_WARNING;
 
-  pref = atoi(argv[5]->arg);
+  pref = atoi(argv[idx_number]->arg);
 
   for (ALL_LIST_ELEMENTS_RO (irdp->AdvPrefList, node, adv))
     if(adv->ip.s_addr == ip.s_addr) 
@@ -633,6 +639,7 @@ DEFUN (no_ip_irdp_address_preference,
        "Select IRDP address\n"
        "Old preference level\n")
 {
+  int idx_ipv4 = 4;
   struct listnode *node, *nnode;
   struct in_addr ip; 
   int ret;
@@ -649,7 +656,7 @@ DEFUN (no_ip_irdp_address_preference,
   zi=ifp->info;
   irdp=&zi->irdp;
 
-  ret = inet_aton(argv[4]->arg, &ip);
+  ret = inet_aton(argv[idx_ipv4]->arg, &ip);
   if (!ret) 
     return CMD_WARNING;
 
index 05eee8ad331fe828f4416cb5b5cd880e6b02aaac..6e1d434ec423ed74b8fd45c78501e5968dfb5983 100644 (file)
@@ -228,10 +228,11 @@ DEFUN (router_id,
        "Manually set the router-id\n"
        "IP address to use for router-id\n")
 {
+  int idx_ipv4 = 1;
   struct prefix rid;
   vrf_id_t vrf_id = VRF_DEFAULT;
 
-  rid.u.prefix4.s_addr = inet_addr (argv[1]->arg);
+  rid.u.prefix4.s_addr = inet_addr (argv[idx_ipv4]->arg);
   if (!rid.u.prefix4.s_addr)
     return CMD_WARNING;
 
index c13d85a4d10d480bf2c5ef678cb1e6430196be3b..ec4736463c7b08fb9b4e3a1ade786fd5bd28e42b 100644 (file)
@@ -923,6 +923,7 @@ DEFUN (ipv6_nd_ra_interval_msec,
        "Router Advertisement interval\n"
        "Router Advertisement interval in milliseconds\n")
 {
+  int idx_number = 4;
   unsigned interval;
   struct interface *ifp = (struct interface *) vty->index;
   struct zebra_if *zif = ifp->info;
@@ -930,7 +931,7 @@ DEFUN (ipv6_nd_ra_interval_msec,
   struct zebra_ns *zns;
 
   zns = zvrf->zns;
-  VTY_GET_INTEGER_RANGE ("router advertisement interval", interval, argv[4]->arg, 70, 1800000);
+  VTY_GET_INTEGER_RANGE ("router advertisement interval", interval, argv[idx_number]->arg, 70, 1800000);
   if ((zif->rtadv.AdvDefaultLifetime != -1 && interval > (unsigned)zif->rtadv.AdvDefaultLifetime * 1000))
   {
     vty_out (vty, "This ra-interval would conflict with configured ra-lifetime!%s", VTY_NEWLINE);
@@ -958,6 +959,7 @@ DEFUN (ipv6_nd_ra_interval,
        "Router Advertisement interval\n"
        "Router Advertisement interval in seconds\n")
 {
+  int idx_number = 3;
   unsigned interval;
   struct interface *ifp = (struct interface *) vty->index;
   struct zebra_if *zif = ifp->info;
@@ -965,7 +967,7 @@ DEFUN (ipv6_nd_ra_interval,
   struct zebra_ns *zns;
 
   zns = zvrf->zns;
-  VTY_GET_INTEGER_RANGE ("router advertisement interval", interval, argv[3]->arg, 1, 1800);
+  VTY_GET_INTEGER_RANGE ("router advertisement interval", interval, argv[idx_number]->arg, 1, 1800);
   if ((zif->rtadv.AdvDefaultLifetime != -1 && interval > (unsigned)zif->rtadv.AdvDefaultLifetime))
   {
     vty_out (vty, "This ra-interval would conflict with configured ra-lifetime!%s", VTY_NEWLINE);
@@ -1039,6 +1041,7 @@ DEFUN (ipv6_nd_ra_lifetime,
        "Router lifetime\n"
        "Router lifetime in seconds (0 stands for a non-default gw)\n")
 {
+  int idx_number = 3;
   int lifetime;
   struct interface *ifp;
   struct zebra_if *zif;
@@ -1046,7 +1049,7 @@ DEFUN (ipv6_nd_ra_lifetime,
   ifp = (struct interface *) vty->index;
   zif = ifp->info;
 
-  VTY_GET_INTEGER_RANGE ("router lifetime", lifetime, argv[3]->arg, 0, 9000);
+  VTY_GET_INTEGER_RANGE ("router lifetime", lifetime, argv[idx_number]->arg, 0, 9000);
 
   /* The value to be placed in the Router Lifetime field
    * of Router Advertisements sent from the interface,
@@ -1101,9 +1104,10 @@ DEFUN (ipv6_nd_reachable_time,
        "Reachable time\n"
        "Reachable time in milliseconds\n")
 {
+  int idx_number = 3;
   struct interface *ifp = (struct interface *) vty->index;
   struct zebra_if *zif = ifp->info;
-  VTY_GET_INTEGER_RANGE ("reachable time", zif->rtadv.AdvReachableTime, argv[3]->arg, 1, RTADV_MAX_REACHABLE_TIME);
+  VTY_GET_INTEGER_RANGE ("reachable time", zif->rtadv.AdvReachableTime, argv[idx_number]->arg, 1, RTADV_MAX_REACHABLE_TIME);
   return CMD_SUCCESS;
 }
 
@@ -1145,9 +1149,10 @@ DEFUN (ipv6_nd_homeagent_preference,
        "Home Agent preference\n"
        "preference value (default is 0, least preferred)\n")
 {
+  int idx_number = 3;
   struct interface *ifp = (struct interface *) vty->index;
   struct zebra_if *zif = ifp->info;
-  VTY_GET_INTEGER_RANGE ("home agent preference", zif->rtadv.HomeAgentPreference, argv[3]->arg, 0, 65535);
+  VTY_GET_INTEGER_RANGE ("home agent preference", zif->rtadv.HomeAgentPreference, argv[idx_number]->arg, 0, 65535);
   return CMD_SUCCESS;
 }
 
@@ -1189,9 +1194,10 @@ DEFUN (ipv6_nd_homeagent_lifetime,
        "Home Agent lifetime\n"
        "Home Agent lifetime in seconds (0 to track ra-lifetime)\n")
 {
+  int idx_number = 3;
   struct interface *ifp = (struct interface *) vty->index;
   struct zebra_if *zif = ifp->info;
-  VTY_GET_INTEGER_RANGE ("home agent lifetime", zif->rtadv.HomeAgentLifetime, argv[3]->arg, 0, RTADV_MAX_HALIFETIME);
+  VTY_GET_INTEGER_RANGE ("home agent lifetime", zif->rtadv.HomeAgentLifetime, argv[idx_number]->arg, 0, RTADV_MAX_HALIFETIME);
   return CMD_SUCCESS;
 }
 
@@ -1508,7 +1514,7 @@ DEFUN (no_ipv6_nd_other_config_flag,
  */
 DEFUN (ipv6_nd_prefix,
        ipv6_nd_prefix_cmd,
-       "ipv6 nd prefix X:X::X:X/M <(0-4294967295)|infinite> <(0-4294967295)|infinite> <off-link|> <no-autoconfig|> <router-address|>",
+       "ipv6 nd prefix X:X::X:X/M <(0-4294967295)|infinite> <(0-4294967295)|infinite> <off-link> <no-autoconfig> <router-address>",
        "Interface IPv6 config commands\n"
        "Neighbor discovery\n"
        "Prefix information\n"
@@ -1521,6 +1527,9 @@ DEFUN (ipv6_nd_prefix,
        "Do not use prefix for autoconfiguration\n"
        "Set Router Address flag\n")
 {
+  int idx_ipv6_prefixlen = 3;
+  int idx_number_infinite = 4;
+  int idx_number_infinite_2 = 5;
   int i;
   int ret;
   int cursor = 1;
@@ -1531,7 +1540,7 @@ DEFUN (ipv6_nd_prefix,
   ifp = (struct interface *) vty->index;
   zebra_if = ifp->info;
 
-  ret = str2prefix_ipv6 (argv[3]->arg, &rp.prefix);
+  ret = str2prefix_ipv6 (argv[idx_ipv6_prefixlen]->arg, &rp.prefix);
   if (!ret)
     {
       vty_out (vty, "Malformed IPv6 prefix%s", VTY_NEWLINE);
@@ -1546,19 +1555,19 @@ DEFUN (ipv6_nd_prefix,
 
   if (argc > 1)
     {
-      if ((isdigit((unsigned char)argv[4]->arg[0]))
-         || strncmp (argv[4]->arg, "i", 1) == 0)
+      if ((isdigit((unsigned char)argv[idx_number_infinite]->arg[0]))
+         || strncmp (argv[idx_number_infinite]->arg, "i", 1) == 0)
        {
-         if ( strncmp (argv[4]->arg, "i", 1) == 0)
+         if ( strncmp (argv[idx_number_infinite]->arg, "i", 1) == 0)
            rp.AdvValidLifetime = UINT32_MAX;
          else
-           rp.AdvValidLifetime = (u_int32_t) strtoll (argv[4]->arg,
+           rp.AdvValidLifetime = (u_int32_t) strtoll (argv[idx_number_infinite]->arg,
                (char **)NULL, 10);
       
-         if ( strncmp (argv[5]->arg, "i", 1) == 0)
+         if ( strncmp (argv[idx_number_infinite_2]->arg, "i", 1) == 0)
            rp.AdvPreferredLifetime = UINT32_MAX;
          else
-           rp.AdvPreferredLifetime = (u_int32_t) strtoll (argv[5]->arg,
+           rp.AdvPreferredLifetime = (u_int32_t) strtoll (argv[idx_number_infinite_2]->arg,
                (char **)NULL, 10);
 
          if (rp.AdvPreferredLifetime > rp.AdvValidLifetime)
@@ -1790,6 +1799,7 @@ DEFUN (ipv6_nd_router_preference,
        "Low default router preference\n"
        "Medium default router preference (default)\n")
 {
+  int idx_high_medium_low = 3;
   struct interface *ifp;
   struct zebra_if *zif;
   int i = 0;
@@ -1799,7 +1809,7 @@ DEFUN (ipv6_nd_router_preference,
 
   while (0 != rtadv_pref_strs[i])
     {
-      if (strncmp (argv[3]->arg, rtadv_pref_strs[i], 1) == 0)
+      if (strncmp (argv[idx_high_medium_low]->arg, rtadv_pref_strs[i], 1) == 0)
        {
          zif->rtadv.DefaultPreference = i;
          return CMD_SUCCESS;
@@ -1850,9 +1860,10 @@ DEFUN (ipv6_nd_mtu,
        "Advertised MTU\n"
        "MTU in bytes\n")
 {
+  int idx_number = 3;
   struct interface *ifp = (struct interface *) vty->index;
   struct zebra_if *zif = ifp->info;
-  VTY_GET_INTEGER_RANGE ("MTU", zif->rtadv.AdvLinkMTU, argv[3]->arg, 1, 65535);
+  VTY_GET_INTEGER_RANGE ("MTU", zif->rtadv.AdvLinkMTU, argv[idx_number]->arg, 1, 65535);
   return CMD_SUCCESS;
 }
 
index 2908ddd949878592cda080aafdb1ac4175292390..4dd3e897f276912c11cd7e52163c0eb6d9f647c1 100644 (file)
@@ -124,6 +124,7 @@ DEFUN (test_interface_state,
        "up\n"
        "down\n")
 {
+  int idx_up_down = 1;
   struct interface *ifp;
   if (argc < 1)
     return CMD_WARNING;
@@ -136,7 +137,7 @@ DEFUN (test_interface_state,
       ifp->flags = IFF_BROADCAST|IFF_MULTICAST;
     }
   
-  switch (argv[1]->arg[0])
+  switch (argv[idx_up_down]->arg[0])
     {
       case 'u':
         SET_FLAG (ifp->flags, IFF_UP);
index 6dcc7624e7dc68cd375eec86ca01390d88abedb2..9ca4cd9473111c4870b9354876b4d523cc5cd042 100644 (file)
@@ -301,7 +301,8 @@ DEFUN (match_interface,
        "match first hop interface of route\n"
        "Interface name\n")
 {
-  return zebra_route_match_add (vty, vty->index, "interface", argv[2]->arg,
+  int idx_word = 2;
+  return zebra_route_match_add (vty, vty->index, "interface", argv[idx_word]->arg,
                                RMAP_EVENT_MATCH_ADDED);
 }
 
@@ -335,7 +336,8 @@ DEFUN (match_tag,
        "Match tag of route\n"
        "Tag value\n")
 {
-  return zebra_route_match_add (vty, vty->index, "tag", argv[2]->arg,
+  int idx_number = 2;
+  return zebra_route_match_add (vty, vty->index, "tag", argv[idx_number]->arg,
                                 RMAP_EVENT_MATCH_ADDED);
 }
 
@@ -373,7 +375,8 @@ DEFUN (match_ip_next_hop,
        "IP access-list number (expanded range)\n"
        "IP Access-list name\n")
 {
-  return zebra_route_match_add (vty, vty->index, "ip next-hop", argv[3]->arg, RMAP_EVENT_FILTER_ADDED);
+  int idx_acl = 3;
+  return zebra_route_match_add (vty, vty->index, "ip next-hop", argv[idx_acl]->arg, RMAP_EVENT_FILTER_ADDED);
 }
 
 /*
@@ -414,8 +417,9 @@ DEFUN (match_ip_next_hop_prefix_list,
        "Match entries of prefix-lists\n"
        "IP prefix-list name\n")
 {
+  int idx_word = 4;
   return zebra_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);
 }
 
 /*
@@ -460,7 +464,8 @@ DEFUN (match_ip_address,
        "IP Access-list name\n")
 
 {
-  return zebra_route_match_add (vty, vty->index, "ip address", argv[3]->arg,
+  int idx_acl = 3;
+  return zebra_route_match_add (vty, vty->index, "ip address", argv[idx_acl]->arg,
                                RMAP_EVENT_FILTER_ADDED);
 }
 
@@ -502,8 +507,9 @@ DEFUN (match_ip_address_prefix_list,
        "Match entries of prefix-lists\n"
        "IP prefix-list name\n")
 {
+  int idx_word = 4;
   return zebra_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);
 }
 
 /*
@@ -627,17 +633,18 @@ DEFUN (match_source_protocol,
        MATCH_STR
        "Match protocol via which the route was learnt\n")
 {
+  int idx_protocol = 2;
   int i;
 
-  i = proto_name2num(argv[2]->arg);
+  i = proto_name2num(argv[idx_protocol]->arg);
   if (i < 0)
     {
-      vty_out (vty, "invalid protocol name \"%s\"%s", argv[2]->arg ? argv[2]->arg : "",
+      vty_out (vty, "invalid protocol name \"%s\"%s", argv[idx_protocol]->arg ? argv[idx_protocol]->arg : "",
                VTY_NEWLINE);
       return CMD_WARNING;
     }
   return zebra_route_match_add (vty, vty->index, "source-protocol",
-                               argv[2]->arg, RMAP_EVENT_MATCH_ADDED);
+                               argv[idx_protocol]->arg, RMAP_EVENT_MATCH_ADDED);
 }
 
 DEFUN (no_match_source_protocol,
@@ -647,20 +654,21 @@ DEFUN (no_match_source_protocol,
        MATCH_STR
        "No match protocol via which the route was learnt\n")
 {
+  int idx_protocol = 3;
   int i;
 
   if (argc >= 1)
     {
-      i = proto_name2num(argv[3]->arg);
+      i = proto_name2num(argv[idx_protocol]->arg);
       if (i < 0)
        {
-         vty_out (vty, "invalid protocol name \"%s\"%s", argv[3]->arg ? argv[3]->arg : "",
+         vty_out (vty, "invalid protocol name \"%s\"%s", argv[idx_protocol]->arg ? argv[idx_protocol]->arg : "",
                   VTY_NEWLINE);
          return CMD_WARNING;
        }
     }
   return zebra_route_match_delete (vty, vty->index,
-                                  "source-protocol", argv[3]->arg ? argv[3]->arg : NULL,
+                                  "source-protocol", argv[idx_protocol]->arg ? argv[idx_protocol]->arg : NULL,
                                   RMAP_EVENT_MATCH_DELETED);
 }
 
@@ -673,15 +681,16 @@ DEFUN (set_src,
        "src address for route\n"
        "src address\n")
 {
+  int idx_ip = 2;
   union g_addr src;
   struct interface *pif = NULL;
   int family;
   struct prefix p;
   vrf_iter_t iter;
 
-  if (inet_pton(AF_INET, argv[2]->arg, &src.ipv4) != 1)
+  if (inet_pton(AF_INET, argv[idx_ip]->arg, &src.ipv4) != 1)
     {
-      if (inet_pton(AF_INET6, argv[2]->arg, &src.ipv6) != 1)
+      if (inet_pton(AF_INET6, argv[idx_ip]->arg, &src.ipv6) != 1)
        {
          vty_out (vty, "%% not a valid IPv4/v6 address%s", VTY_NEWLINE);
          return CMD_WARNING;
@@ -722,7 +731,7 @@ DEFUN (set_src,
       vty_out (vty, "%% not a local address%s", VTY_NEWLINE);
       return CMD_WARNING;
     }
-  return zebra_route_set_add (vty, vty->index, "src", argv[2]->arg);
+  return zebra_route_set_add (vty, vty->index, "src", argv[idx_ip]->arg);
 }
 
 DEFUN (no_set_src,
@@ -732,10 +741,11 @@ DEFUN (no_set_src,
        SET_STR
        "Source address for route\n")
 {
+  int idx_ip = 3;
   if (argc == 0)
     return zebra_route_set_delete (vty, vty->index, "src", NULL);
 
-  return zebra_route_set_delete (vty, vty->index, "src", argv[3]->arg);
+  return zebra_route_set_delete (vty, vty->index, "src", argv[idx_ip]->arg);
 }
 
 DEFUN (zebra_route_map_timer,
@@ -744,9 +754,10 @@ DEFUN (zebra_route_map_timer,
        "Time to wait before route-map updates are processed\n"
        "0 means event-driven updates are disabled\n")
 {
+  int idx_number = 3;
   u_int32_t rmap_delay_timer;
 
-  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);
   zebra_route_map_set_delay_timer(rmap_delay_timer);
 
   return (CMD_SUCCESS);
@@ -782,15 +793,16 @@ DEFUN (ip_protocol,
        QUAGGA_IP_PROTOCOL_MAP_HELP_STR_ZEBRA
        "Route map name\n")
 {
+  int idx_protocol = 2;
   int i;
 
-  if (strcasecmp(argv[2]->arg, "any") == 0)
+  if (strcasecmp(argv[idx_protocol]->arg, "any") == 0)
     i = ZEBRA_ROUTE_MAX;
   else
-    i = proto_name2num(argv[2]->arg);
+    i = proto_name2num(argv[idx_protocol]->arg);
   if (i < 0)
     {
-      vty_out (vty, "invalid protocol name \"%s\"%s", argv[2]->arg ? argv[2]->arg : "",
+      vty_out (vty, "invalid protocol name \"%s\"%s", argv[idx_protocol]->arg ? argv[idx_protocol]->arg : "",
                VTY_NEWLINE);
       return CMD_WARNING;
     }
@@ -805,7 +817,7 @@ DEFUN (ip_protocol,
 
   if (IS_ZEBRA_DEBUG_RIB_DETAILED)
     zlog_debug ("%u: IPv4 Routemap config for protocol %s, scheduling RIB processing",
-                VRF_DEFAULT, argv[2]->arg);
+                VRF_DEFAULT, argv[idx_protocol]->arg);
 
   rib_update(VRF_DEFAULT, RIB_UPDATE_RMAP_CHANGE);
   return CMD_SUCCESS;
@@ -897,15 +909,16 @@ DEFUN (ipv6_protocol,
        QUAGGA_IP6_PROTOCOL_MAP_HELP_STR_ZEBRA
        "Route map name\n")
 {
+  int idx_protocol = 2;
   int i;
 
-  if (strcasecmp(argv[2]->arg, "any") == 0)
+  if (strcasecmp(argv[idx_protocol]->arg, "any") == 0)
     i = ZEBRA_ROUTE_MAX;
   else
-    i = proto_name2num(argv[2]->arg);
+    i = proto_name2num(argv[idx_protocol]->arg);
   if (i < 0)
     {
-      vty_out (vty, "invalid protocol name \"%s\"%s", argv[2]->arg ? argv[2]->arg : "",
+      vty_out (vty, "invalid protocol name \"%s\"%s", argv[idx_protocol]->arg ? argv[idx_protocol]->arg : "",
                VTY_NEWLINE);
       return CMD_WARNING;
     }
@@ -920,7 +933,7 @@ DEFUN (ipv6_protocol,
 
   if (IS_ZEBRA_DEBUG_RIB_DETAILED)
     zlog_debug ("%u: IPv6 Routemap config for protocol %s, scheduling RIB processing",
-                VRF_DEFAULT, argv[2]->arg);
+                VRF_DEFAULT, argv[idx_protocol]->arg);
 
   rib_update(VRF_DEFAULT, RIB_UPDATE_RMAP_CHANGE);
   return CMD_SUCCESS;
@@ -1013,15 +1026,16 @@ DEFUN (ip_protocol_nht_rmap,
        QUAGGA_IP_PROTOCOL_MAP_HELP_STR_ZEBRA
        "Route map name\n")
 {
+  int idx_protocol = 2;
   int i;
 
-  if (strcasecmp(argv[2]->arg, "any") == 0)
+  if (strcasecmp(argv[idx_protocol]->arg, "any") == 0)
     i = ZEBRA_ROUTE_MAX;
   else
-    i = proto_name2num(argv[2]->arg);
+    i = proto_name2num(argv[idx_protocol]->arg);
   if (i < 0)
     {
-      vty_out (vty, "invalid protocol name \"%s\"%s", argv[2]->arg ? argv[2]->arg : "",
+      vty_out (vty, "invalid protocol name \"%s\"%s", argv[idx_protocol]->arg ? argv[idx_protocol]->arg : "",
                VTY_NEWLINE);
       return CMD_WARNING;
     }
@@ -1119,15 +1133,16 @@ DEFUN (ipv6_protocol_nht_rmap,
        QUAGGA_IP6_PROTOCOL_MAP_HELP_STR_ZEBRA
        "Route map name\n")
 {
+  int idx_protocol = 2;
   int i;
 
-  if (strcasecmp(argv[2]->arg, "any") == 0)
+  if (strcasecmp(argv[idx_protocol]->arg, "any") == 0)
     i = ZEBRA_ROUTE_MAX;
   else
-    i = proto_name2num(argv[2]->arg);
+    i = proto_name2num(argv[idx_protocol]->arg);
   if (i < 0)
     {
-      vty_out (vty, "invalid protocol name \"%s\"%s", argv[2]->arg ? argv[2]->arg : "",
+      vty_out (vty, "invalid protocol name \"%s\"%s", argv[idx_protocol]->arg ? argv[idx_protocol]->arg : "",
                VTY_NEWLINE);
       return CMD_WARNING;
     }
index 505da4923c94388d07a7aff6dd7b77fe60749496..99d7bd6fdb1966124cd555e87e3b2dae9b6208e4 100644 (file)
@@ -201,7 +201,10 @@ DEFUN (ip_mroute_dist,
        "Nexthop interface name\n"
        "Distance\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_MULTICAST, 1, argv[2]->arg, NULL, argv[3]->arg, NULL, NULL, argc > 2 ? argv[4]->arg : NULL, NULL);
+  int idx_ipv4_prefixlen = 2;
+  int idx_ipv4_ifname = 3;
+  int idx_number = 4;
+  return zebra_static_ipv4 (vty, SAFI_MULTICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname]->arg, NULL, NULL, argc > 2 ? argv[idx_number]->arg : NULL, NULL);
 }
 
 
@@ -226,7 +229,10 @@ DEFUN (no_ip_mroute_dist,
        "Nexthop interface name\n"
        "Distance\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_MULTICAST, 0, argv[3]->arg, NULL, argv[4]->arg, NULL, NULL, argc > 2 ? argv[5]->arg : NULL, NULL);
+  int idx_ipv4_prefixlen = 3;
+  int idx_ipv4_ifname = 4;
+  int idx_number = 5;
+  return zebra_static_ipv4 (vty, SAFI_MULTICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname]->arg, NULL, NULL, argc > 2 ? argv[idx_number]->arg : NULL, NULL);
 }
 
 
@@ -242,16 +248,17 @@ DEFUN (ip_multicast_mode,
        "Lookup both, use entry with lower distance\n"
        "Lookup both, use entry with longer prefix\n")
 {
+  int idx_rpf_lookup_mode = 3;
 
-  if (!strncmp (argv[3]->arg, "u", 1))
+  if (!strncmp (argv[idx_rpf_lookup_mode]->arg, "u", 1))
     multicast_mode_ipv4_set (MCAST_URIB_ONLY);
-  else if (!strncmp (argv[3]->arg, "mrib-o", 6))
+  else if (!strncmp (argv[idx_rpf_lookup_mode]->arg, "mrib-o", 6))
     multicast_mode_ipv4_set (MCAST_MRIB_ONLY);
-  else if (!strncmp (argv[3]->arg, "mrib-t", 6))
+  else if (!strncmp (argv[idx_rpf_lookup_mode]->arg, "mrib-t", 6))
     multicast_mode_ipv4_set (MCAST_MIX_MRIB_FIRST);
-  else if (!strncmp (argv[3]->arg, "low", 3))
+  else if (!strncmp (argv[idx_rpf_lookup_mode]->arg, "low", 3))
     multicast_mode_ipv4_set (MCAST_MIX_DISTANCE);
-  else if (!strncmp (argv[3]->arg, "lon", 3))
+  else if (!strncmp (argv[idx_rpf_lookup_mode]->arg, "lon", 3))
     multicast_mode_ipv4_set (MCAST_MIX_PFXLEN);
   else
     {
@@ -307,12 +314,13 @@ DEFUN (show_ip_rpf_addr,
        "Display RPF information for multicast source\n"
        "IP multicast source address (e.g. 10.0.0.0)\n")
 {
+  int idx_ipv4 = 3;
   struct in_addr addr;
   struct route_node *rn;
   struct rib *rib;
   int ret;
 
-  ret = inet_aton (argv[3]->arg, &addr);
+  ret = inet_aton (argv[idx_ipv4]->arg, &addr);
   if (ret == 0)
     {
       vty_out (vty, "%% Malformed address%s", VTY_NEWLINE);
@@ -340,7 +348,9 @@ DEFUN (ip_route,
        "IP gateway interface name\n"
        "Null interface\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, NULL, NULL,
+  int idx_ipv4_prefixlen = 2;
+  int idx_ipv4_ifname_null = 3;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname_null]->arg, NULL, NULL,
                             NULL, NULL);
 }
 
@@ -356,7 +366,10 @@ DEFUN (ip_route_tag,
        "Set tag for this route\n"
        "Tag value\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, NULL, argv[5]->arg,
+  int idx_ipv4_prefixlen = 2;
+  int idx_ipv4_ifname_null = 3;
+  int idx_number = 5;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname_null]->arg, NULL, argv[idx_number]->arg,
                             NULL, NULL);
 }
 
@@ -371,7 +384,10 @@ DEFUN (ip_route_flags,
        "Emit an ICMP unreachable when matched\n"
        "Silently discard pkts when matched\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, argv[4]->arg, NULL,
+  int idx_ipv4_prefixlen = 2;
+  int idx_ipv4_ifname = 3;
+  int idx_reject_blackhole = 4;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, NULL,
                             NULL, NULL);
 }
 
@@ -389,7 +405,11 @@ DEFUN (ip_route_flags_tag,
        "Tag value\n")
 
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, argv[4]->arg, argv[6]->arg,
+  int idx_ipv4_prefixlen = 2;
+  int idx_ipv4_ifname = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 6;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg,
                             NULL, NULL);
 }
 
@@ -402,7 +422,9 @@ DEFUN (ip_route_flags2,
        "Emit an ICMP unreachable when matched\n"
        "Silently discard pkts when matched\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, NULL, argv[3]->arg, NULL,
+  int idx_ipv4_prefixlen = 2;
+  int idx_reject_blackhole = 3;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, NULL, argv[idx_reject_blackhole]->arg, NULL,
                             NULL, NULL);
 }
 
@@ -418,7 +440,10 @@ DEFUN (ip_route_flags2_tag,
        "Tag value\n")
 
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, NULL, argv[3]->arg, argv[5]->arg,
+  int idx_ipv4_prefixlen = 2;
+  int idx_reject_blackhole = 3;
+  int idx_number = 5;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg,
                             NULL, NULL);
 }
 
@@ -434,7 +459,10 @@ DEFUN (ip_route_mask,
        "IP gateway interface name\n"
        "Null interface\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, NULL,
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_ipv4_ifname_null = 4;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname_null]->arg, NULL, NULL,
                             NULL, NULL);
 }
 
@@ -452,7 +480,11 @@ DEFUN (ip_route_mask_tag,
        "Tag value\n")
 
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, argv[6]->arg,
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_ipv4_ifname_null = 4;
+  int idx_number = 6;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname_null]->arg, NULL, argv[idx_number]->arg,
                             NULL, NULL);
 }
 
@@ -468,7 +500,11 @@ DEFUN (ip_route_mask_flags,
        "Emit an ICMP unreachable when matched\n"
        "Silently discard pkts when matched\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL,
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_ipv4_ifname = 4;
+  int idx_reject_blackhole = 5;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, NULL,
                             NULL, NULL);
 }
 
@@ -487,7 +523,12 @@ DEFUN (ip_route_mask_flags_tag,
        "Tag value\n")
 
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[7]->arg,
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_ipv4_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg,
                             NULL, NULL);
 }
 
@@ -501,7 +542,10 @@ DEFUN (ip_route_mask_flags2,
        "Emit an ICMP unreachable when matched\n"
        "Silently discard pkts when matched\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, NULL, argv[4]->arg, NULL,
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_reject_blackhole = 4;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, NULL, argv[idx_reject_blackhole]->arg, NULL,
                             NULL, NULL);
 }
 
@@ -517,7 +561,11 @@ DEFUN (ip_route_mask_flags2_tag,
        "Set tag for this route\n"
        "Tag value\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, NULL, argv[4]->arg, argv[6]->arg,
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 6;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg,
                             NULL, NULL);
 }
 
@@ -533,8 +581,11 @@ DEFUN (ip_route_distance,
        "Null interface\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, NULL, NULL,
-                            argv[4]->arg, NULL);
+  int idx_ipv4_prefixlen = 2;
+  int idx_ipv4_ifname_null = 3;
+  int idx_number = 4;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname_null]->arg, NULL, NULL,
+                            argv[idx_number]->arg, NULL);
 }
 
 DEFUN (ip_route_tag_distance,
@@ -551,8 +602,12 @@ DEFUN (ip_route_tag_distance,
        "Distance value for this route\n")
 
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, NULL, argv[5]->arg,
-                            argv[6]->arg, NULL);
+  int idx_ipv4_prefixlen = 2;
+  int idx_ipv4_ifname_null = 3;
+  int idx_number = 5;
+  int idx_number_2 = 6;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname_null]->arg, NULL, argv[idx_number]->arg,
+                            argv[idx_number_2]->arg, NULL);
 }
 
 DEFUN (ip_route_flags_distance,
@@ -567,8 +622,12 @@ DEFUN (ip_route_flags_distance,
        "Silently discard pkts when matched\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, argv[4]->arg, NULL,
-                            argv[5]->arg, NULL);
+  int idx_ipv4_prefixlen = 2;
+  int idx_ipv4_ifname = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 5;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, NULL,
+                            argv[idx_number]->arg, NULL);
 }
 
 DEFUN (ip_route_flags_tag_distance,
@@ -585,8 +644,13 @@ DEFUN (ip_route_flags_tag_distance,
        "Tag value\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, argv[4]->arg, argv[6]->arg,
-                            argv[7]->arg, NULL);
+  int idx_ipv4_prefixlen = 2;
+  int idx_ipv4_ifname = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 6;
+  int idx_number_2 = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg,
+                            argv[idx_number_2]->arg, NULL);
 }
 
 DEFUN (ip_route_flags_distance2,
@@ -599,8 +663,11 @@ DEFUN (ip_route_flags_distance2,
        "Silently discard pkts when matched\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, NULL, argv[3]->arg, NULL,
-                            argv[4]->arg, NULL);
+  int idx_ipv4_prefixlen = 2;
+  int idx_reject_blackhole = 3;
+  int idx_number = 4;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, NULL, argv[idx_reject_blackhole]->arg, NULL,
+                            argv[idx_number]->arg, NULL);
 }
 
 DEFUN (ip_route_flags_tag_distance2,
@@ -615,8 +682,12 @@ DEFUN (ip_route_flags_tag_distance2,
        "Tag value\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, NULL, argv[3]->arg, argv[5]->arg,
-                            argv[6]->arg, NULL);
+  int idx_ipv4_prefixlen = 2;
+  int idx_reject_blackhole = 3;
+  int idx_number = 5;
+  int idx_number_2 = 6;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg,
+                            argv[idx_number_2]->arg, NULL);
 }
 
 DEFUN (ip_route_mask_distance,
@@ -631,8 +702,12 @@ DEFUN (ip_route_mask_distance,
        "Null interface\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, NULL,
-                            argv[5]->arg, NULL);
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_ipv4_ifname_null = 4;
+  int idx_number = 5;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname_null]->arg, NULL, NULL,
+                            argv[idx_number]->arg, NULL);
 }
 
 DEFUN (ip_route_mask_tag_distance,
@@ -649,8 +724,13 @@ DEFUN (ip_route_mask_tag_distance,
        "Tag value\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, argv[6]->arg,
-                            argv[7]->arg, NULL);
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_ipv4_ifname_null = 4;
+  int idx_number = 6;
+  int idx_number_2 = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname_null]->arg, NULL, argv[idx_number]->arg,
+                            argv[idx_number_2]->arg, NULL);
 }
 
 DEFUN (ip_route_mask_flags_tag_distance,
@@ -668,8 +748,14 @@ DEFUN (ip_route_mask_flags_tag_distance,
        "Emit an ICMP unreachable when matched\n"
        "Silently discard pkts when matched\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[7]->arg,
-                            argv[8]->arg, NULL);
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_ipv4_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 7;
+  int idx_number_2 = 8;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg,
+                            argv[idx_number_2]->arg, NULL);
 }
 
 
@@ -686,8 +772,13 @@ DEFUN (ip_route_mask_flags_distance,
        "Silently discard pkts when matched\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL,
-                            argv[6]->arg, NULL);
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_ipv4_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 6;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, NULL,
+                            argv[idx_number]->arg, NULL);
 }
 
 DEFUN (ip_route_mask_flags_distance2,
@@ -701,8 +792,12 @@ DEFUN (ip_route_mask_flags_distance2,
        "Silently discard pkts when matched\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, NULL, argv[4]->arg, NULL,
-                            argv[5]->arg, NULL);
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 5;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, NULL, argv[idx_reject_blackhole]->arg, NULL,
+                            argv[idx_number]->arg, NULL);
 }
 
 DEFUN (ip_route_mask_flags_tag_distance2,
@@ -718,8 +813,13 @@ DEFUN (ip_route_mask_flags_tag_distance2,
        "Emit an ICMP unreachable when matched\n"
        "Silently discard pkts when matched\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, NULL, argv[4]->arg, argv[6]->arg,
-                            argv[7]->arg, NULL);
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 6;
+  int idx_number_2 = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg,
+                            argv[idx_number_2]->arg, NULL);
 }
 
 /*
@@ -746,7 +846,9 @@ DEFUN (no_ip_route,
        "IP gateway interface name\n"
        "Null interface\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, argv[4]->arg, NULL, NULL,
+  int idx_ipv4_prefixlen = 3;
+  int idx_ipv4_ifname_null = 4;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname_null]->arg, NULL, NULL,
                             NULL, NULL);
 }
 
@@ -778,7 +880,10 @@ DEFUN (no_ip_route_tag,
        "Tag of this route\n"
        "Tag value\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, argv[4]->arg, NULL, argv[6]->arg,
+  int idx_ipv4_prefixlen = 3;
+  int idx_ipv4_ifname_null = 4;
+  int idx_number = 6;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname_null]->arg, NULL, argv[idx_number]->arg,
                             NULL, NULL);
 }
 
@@ -794,7 +899,8 @@ DEFUN (no_ip_route_flags2,
        "Emit an ICMP unreachable when matched\n"
        "Silently discard pkts when matched\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, NULL, NULL, NULL,
+  int idx_ipv4_prefixlen = 3;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, NULL, NULL, NULL,
                             NULL, NULL);
 }
 
@@ -810,7 +916,9 @@ DEFUN (no_ip_route_flags2_tag,
        "Tag of this route\n"
        "Tag value\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, NULL, NULL, argv[4]->arg,
+  int idx_ipv4_prefixlen = 3;
+  int idx_reject_blackhole = 4;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, NULL, NULL, argv[idx_reject_blackhole]->arg,
                             NULL, NULL);
 }
 
@@ -840,7 +948,10 @@ DEFUN (no_ip_route_mask,
        "IP gateway interface name\n"
        "Null interface\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, NULL,
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_ipv4_ifname_null = 5;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname_null]->arg, NULL, NULL,
                             NULL, NULL);
 }
 
@@ -874,7 +985,11 @@ DEFUN (no_ip_route_mask_tag,
        "Tag of this route\n"
        "Tag value\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, argv[7]->arg,
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_ipv4_ifname_null = 5;
+  int idx_number = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname_null]->arg, NULL, argv[idx_number]->arg,
                             NULL, NULL);
 }
 
@@ -891,7 +1006,9 @@ DEFUN (no_ip_route_mask_flags2,
        "Emit an ICMP unreachable when matched\n"
        "Silently discard pkts when matched\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, NULL, NULL, NULL,
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, NULL, NULL, NULL,
                             NULL, NULL);
 }
 
@@ -908,7 +1025,10 @@ DEFUN (no_ip_route_mask_flags2_tag,
        "Tag of this route\n"
        "Tag value\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, NULL, NULL, argv[5]->arg,
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_reject_blackhole = 5;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, NULL, NULL, argv[idx_reject_blackhole]->arg,
                             NULL, NULL);
 }
 
@@ -924,8 +1044,11 @@ DEFUN (no_ip_route_distance,
        "Null interface\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, argv[4]->arg, NULL, NULL,
-                            argv[5]->arg, NULL);
+  int idx_ipv4_prefixlen = 3;
+  int idx_ipv4_ifname_null = 4;
+  int idx_number = 5;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname_null]->arg, NULL, NULL,
+                            argv[idx_number]->arg, NULL);
 }
 
 DEFUN (no_ip_route_tag_distance,
@@ -942,8 +1065,12 @@ DEFUN (no_ip_route_tag_distance,
        "Tag value\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, argv[4]->arg, NULL, argv[6]->arg,
-                            argv[7]->arg, NULL);
+  int idx_ipv4_prefixlen = 3;
+  int idx_ipv4_ifname_null = 4;
+  int idx_number = 6;
+  int idx_number_2 = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname_null]->arg, NULL, argv[idx_number]->arg,
+                            argv[idx_number_2]->arg, NULL);
 }
 
 DEFUN (no_ip_route_flags_distance,
@@ -959,8 +1086,12 @@ DEFUN (no_ip_route_flags_distance,
        "Silently discard pkts when matched\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, argv[4]->arg, argv[5]->arg, NULL,
-                            argv[6]->arg, NULL);
+  int idx_ipv4_prefixlen = 3;
+  int idx_ipv4_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 6;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, NULL,
+                            argv[idx_number]->arg, NULL);
 }
 
 DEFUN (no_ip_route_flags_tag_distance,
@@ -978,8 +1109,13 @@ DEFUN (no_ip_route_flags_tag_distance,
        "Tag value\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, argv[4]->arg, argv[5]->arg, argv[7]->arg,
-                            argv[8]->arg, NULL);
+  int idx_ipv4_prefixlen = 3;
+  int idx_ipv4_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 7;
+  int idx_number_2 = 8;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg,
+                            argv[idx_number_2]->arg, NULL);
 }
 
 DEFUN (no_ip_route_flags_distance2,
@@ -993,8 +1129,11 @@ DEFUN (no_ip_route_flags_distance2,
        "Silently discard pkts when matched\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, NULL, argv[4]->arg, NULL,
-                            argv[5]->arg, NULL);
+  int idx_ipv4_prefixlen = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 5;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, NULL, argv[idx_reject_blackhole]->arg, NULL,
+                            argv[idx_number]->arg, NULL);
 }
 
 DEFUN (no_ip_route_flags_tag_distance2,
@@ -1010,8 +1149,12 @@ DEFUN (no_ip_route_flags_tag_distance2,
        "Tag value\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, NULL, argv[4]->arg, argv[6]->arg,
-                            argv[7]->arg, NULL);
+  int idx_ipv4_prefixlen = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 6;
+  int idx_number_2 = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg,
+                            argv[idx_number_2]->arg, NULL);
 }
 
 DEFUN (no_ip_route_mask_distance,
@@ -1027,8 +1170,12 @@ DEFUN (no_ip_route_mask_distance,
        "Null interface\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, NULL,
-                            argv[6]->arg, NULL);
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_ipv4_ifname_null = 5;
+  int idx_number = 6;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname_null]->arg, NULL, NULL,
+                            argv[idx_number]->arg, NULL);
 }
 
 DEFUN (no_ip_route_mask_tag_distance,
@@ -1046,8 +1193,13 @@ DEFUN (no_ip_route_mask_tag_distance,
        "Tag value\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, argv[7]->arg,
-                            argv[8]->arg, NULL);
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_ipv4_ifname_null = 5;
+  int idx_number = 7;
+  int idx_number_2 = 8;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname_null]->arg, NULL, argv[idx_number]->arg,
+                            argv[idx_number_2]->arg, NULL);
 }
 
 DEFUN (no_ip_route_mask_flags_distance,
@@ -1064,8 +1216,13 @@ DEFUN (no_ip_route_mask_flags_distance,
        "Silently discard pkts when matched\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[6]->arg, NULL,
-                            argv[7]->arg, NULL);
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_ipv4_ifname = 5;
+  int idx_reject_blackhole = 6;
+  int idx_number = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, NULL,
+                            argv[idx_number]->arg, NULL);
 }
 
 DEFUN (no_ip_route_mask_flags_tag_distance,
@@ -1084,8 +1241,14 @@ DEFUN (no_ip_route_mask_flags_tag_distance,
        "Tag value\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[6]->arg, argv[8]->arg,
-                            argv[9]->arg, NULL);
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_ipv4_ifname = 5;
+  int idx_reject_blackhole = 6;
+  int idx_number = 8;
+  int idx_number_2 = 9;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg,
+                            argv[idx_number_2]->arg, NULL);
 }
 
 DEFUN (no_ip_route_mask_flags_distance2,
@@ -1100,8 +1263,12 @@ DEFUN (no_ip_route_mask_flags_distance2,
        "Silently discard pkts when matched\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, NULL, argv[5]->arg, NULL,
-                            argv[6]->arg, NULL);
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 6;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, NULL, argv[idx_reject_blackhole]->arg, NULL,
+                            argv[idx_number]->arg, NULL);
 }
 
 DEFUN (no_ip_route_mask_flags_tag_distance2,
@@ -1118,8 +1285,13 @@ DEFUN (no_ip_route_mask_flags_tag_distance2,
        "Tag value\n"
        "Distance value for this route\n")
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, NULL, argv[5]->arg, argv[7]->arg,
-                            argv[8]->arg, NULL);
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 7;
+  int idx_number_2 = 8;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg,
+                            argv[idx_number_2]->arg, NULL);
 }
 
 /* Static route configuration.  */
@@ -1134,7 +1306,10 @@ DEFUN (ip_route_vrf,
        "Null interface\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, NULL, NULL, NULL, argv[5]->arg);
+  int idx_ipv4_prefixlen = 2;
+  int idx_ipv4_ifname_null = 3;
+  int idx_name = 5;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname_null]->arg, NULL, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_tag_vrf,
@@ -1150,7 +1325,11 @@ DEFUN (ip_route_tag_vrf,
        "Tag value\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, NULL, argv[5]->arg, NULL, argv[7]->arg);
+  int idx_ipv4_prefixlen = 2;
+  int idx_ipv4_ifname_null = 3;
+  int idx_number = 5;
+  int idx_name = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname_null]->arg, NULL, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_flags_vrf,
@@ -1165,7 +1344,11 @@ DEFUN (ip_route_flags_vrf,
        "Silently discard pkts when matched\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, argv[4]->arg, NULL, NULL, argv[6]->arg);
+  int idx_ipv4_prefixlen = 2;
+  int idx_ipv4_ifname = 3;
+  int idx_reject_blackhole = 4;
+  int idx_name = 6;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_flags_tag_vrf,
@@ -1183,7 +1366,12 @@ DEFUN (ip_route_flags_tag_vrf,
        VRF_CMD_HELP_STR)
 
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, argv[4]->arg, argv[6]->arg, NULL, argv[8]->arg);
+  int idx_ipv4_prefixlen = 2;
+  int idx_ipv4_ifname = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 6;
+  int idx_name = 8;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_flags2_vrf,
@@ -1196,7 +1384,10 @@ DEFUN (ip_route_flags2_vrf,
        "Silently discard pkts when matched\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, NULL, argv[3]->arg, NULL, NULL, argv[5]->arg);
+  int idx_ipv4_prefixlen = 2;
+  int idx_reject_blackhole = 3;
+  int idx_name = 5;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, NULL, argv[idx_reject_blackhole]->arg, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_flags2_tag_vrf,
@@ -1212,7 +1403,11 @@ DEFUN (ip_route_flags2_tag_vrf,
        VRF_CMD_HELP_STR)
 
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, NULL, argv[3]->arg, argv[5]->arg, NULL, argv[7]->arg);
+  int idx_ipv4_prefixlen = 2;
+  int idx_reject_blackhole = 3;
+  int idx_number = 5;
+  int idx_name = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 /* Mask as A.B.C.D format.  */
@@ -1228,7 +1423,11 @@ DEFUN (ip_route_mask_vrf,
        "Null interface\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, NULL, NULL, argv[6]->arg);
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_ipv4_ifname_null = 4;
+  int idx_name = 6;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname_null]->arg, NULL, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_mask_tag_vrf,
@@ -1246,7 +1445,12 @@ DEFUN (ip_route_mask_tag_vrf,
        VRF_CMD_HELP_STR)
 
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, argv[6]->arg, NULL, argv[8]->arg);
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_ipv4_ifname_null = 4;
+  int idx_number = 6;
+  int idx_name = 8;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname_null]->arg, NULL, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_mask_flags_vrf,
@@ -1262,7 +1466,12 @@ DEFUN (ip_route_mask_flags_vrf,
        "Silently discard pkts when matched\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, NULL, argv[7]->arg);
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_ipv4_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_name = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_mask_flags_tag_vrf,
@@ -1281,7 +1490,13 @@ DEFUN (ip_route_mask_flags_tag_vrf,
        VRF_CMD_HELP_STR)
 
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[7]->arg, NULL, argv[9]->arg);
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_ipv4_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 7;
+  int idx_name = 9;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_mask_flags2_vrf,
@@ -1295,7 +1510,11 @@ DEFUN (ip_route_mask_flags2_vrf,
        "Silently discard pkts when matched\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, NULL, argv[4]->arg, NULL, NULL, argv[6]->arg);
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_reject_blackhole = 4;
+  int idx_name = 6;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, NULL, argv[idx_reject_blackhole]->arg, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_mask_flags2_tag_vrf,
@@ -1311,7 +1530,12 @@ DEFUN (ip_route_mask_flags2_tag_vrf,
        "Tag value\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, NULL, argv[4]->arg, argv[6]->arg, NULL, argv[8]->arg);
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 6;
+  int idx_name = 8;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 /* Distance option value.  */
@@ -1327,7 +1551,11 @@ DEFUN (ip_route_distance_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, NULL, NULL, argv[4]->arg, argv[6]->arg);
+  int idx_ipv4_prefixlen = 2;
+  int idx_ipv4_ifname_null = 3;
+  int idx_number = 4;
+  int idx_name = 6;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname_null]->arg, NULL, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_tag_distance_vrf,
@@ -1345,7 +1573,12 @@ DEFUN (ip_route_tag_distance_vrf,
        VRF_CMD_HELP_STR)
 
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, NULL, argv[5]->arg, argv[6]->arg, argv[8]->arg);
+  int idx_ipv4_prefixlen = 2;
+  int idx_ipv4_ifname_null = 3;
+  int idx_number = 5;
+  int idx_number_2 = 6;
+  int idx_name = 8;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname_null]->arg, NULL, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_flags_distance_vrf,
@@ -1361,7 +1594,12 @@ DEFUN (ip_route_flags_distance_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, argv[4]->arg, NULL, argv[5]->arg, argv[7]->arg);
+  int idx_ipv4_prefixlen = 2;
+  int idx_ipv4_ifname = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 5;
+  int idx_name = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_flags_tag_distance_vrf,
@@ -1379,7 +1617,13 @@ DEFUN (ip_route_flags_tag_distance_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, argv[4]->arg, argv[6]->arg, argv[7]->arg, argv[9]->arg);
+  int idx_ipv4_prefixlen = 2;
+  int idx_ipv4_ifname = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 6;
+  int idx_number_2 = 7;
+  int idx_name = 9;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_flags_distance2_vrf,
@@ -1393,7 +1637,11 @@ DEFUN (ip_route_flags_distance2_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, NULL, argv[3]->arg, NULL, argv[4]->arg, argv[6]->arg);
+  int idx_ipv4_prefixlen = 2;
+  int idx_reject_blackhole = 3;
+  int idx_number = 4;
+  int idx_name = 6;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, NULL, argv[idx_reject_blackhole]->arg, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_flags_tag_distance2_vrf,
@@ -1409,7 +1657,12 @@ DEFUN (ip_route_flags_tag_distance2_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, NULL, argv[3]->arg, argv[5]->arg, argv[6]->arg, argv[8]->arg);
+  int idx_ipv4_prefixlen = 2;
+  int idx_reject_blackhole = 3;
+  int idx_number = 5;
+  int idx_number_2 = 6;
+  int idx_name = 8;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4_prefixlen]->arg, NULL, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_mask_distance_vrf,
@@ -1425,7 +1678,12 @@ DEFUN (ip_route_mask_distance_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, NULL, argv[5]->arg, argv[7]->arg);
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_ipv4_ifname_null = 4;
+  int idx_number = 5;
+  int idx_name = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname_null]->arg, NULL, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_mask_tag_distance_vrf,
@@ -1443,7 +1701,13 @@ DEFUN (ip_route_mask_tag_distance_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, argv[6]->arg, argv[7]->arg, argv[9]->arg);
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_ipv4_ifname_null = 4;
+  int idx_number = 6;
+  int idx_number_2 = 7;
+  int idx_name = 9;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname_null]->arg, NULL, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_mask_flags_tag_distance_vrf,
@@ -1462,7 +1726,14 @@ DEFUN (ip_route_mask_flags_tag_distance_vrf,
        "Silently discard pkts when matched\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[7]->arg, argv[8]->arg, argv[10]->arg);
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_ipv4_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 7;
+  int idx_number_2 = 8;
+  int idx_name = 10;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 
@@ -1480,7 +1751,13 @@ DEFUN (ip_route_mask_flags_distance_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, argv[6]->arg, argv[8]->arg);
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_ipv4_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 6;
+  int idx_name = 8;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_mask_flags_distance2_vrf,
@@ -1495,7 +1772,12 @@ DEFUN (ip_route_mask_flags_distance2_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, NULL, argv[4]->arg, NULL, argv[5]->arg, argv[7]->arg);
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 5;
+  int idx_name = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, NULL, argv[idx_reject_blackhole]->arg, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (ip_route_mask_flags_tag_distance2_vrf,
@@ -1512,7 +1794,13 @@ DEFUN (ip_route_mask_flags_tag_distance2_vrf,
        "Silently discard pkts when matched\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, NULL, argv[4]->arg, argv[6]->arg, argv[7]->arg, argv[9]->arg);
+  int idx_ipv4 = 2;
+  int idx_ipv4_2 = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 6;
+  int idx_number_2 = 7;
+  int idx_name = 9;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_vrf,
@@ -1527,7 +1815,10 @@ DEFUN (no_ip_route_vrf,
        "Null interface\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, argv[4]->arg, NULL, NULL, NULL, argv[6]->arg);
+  int idx_ipv4_prefixlen = 3;
+  int idx_ipv4_ifname_null = 4;
+  int idx_name = 6;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname_null]->arg, NULL, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_flags_vrf,
@@ -1543,7 +1834,11 @@ DEFUN (no_ip_route_flags_vrf,
        "Silently discard pkts when matched\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, argv[4]->arg, argv[5]->arg, NULL, NULL, argv[7]->arg);
+  int idx_ipv4_prefixlen = 3;
+  int idx_ipv4_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_name = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_tag_vrf,
@@ -1560,7 +1855,11 @@ DEFUN (no_ip_route_tag_vrf,
        "Tag value\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, argv[4]->arg, NULL, argv[6]->arg, NULL, argv[8]->arg);
+  int idx_ipv4_prefixlen = 3;
+  int idx_ipv4_ifname_null = 4;
+  int idx_number = 6;
+  int idx_name = 8;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname_null]->arg, NULL, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_flags_tag_vrf,
@@ -1578,7 +1877,12 @@ DEFUN (no_ip_route_flags_tag_vrf,
        "Tag value\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, argv[4]->arg, argv[5]->arg, argv[7]->arg, NULL, argv[9]->arg);
+  int idx_ipv4_prefixlen = 3;
+  int idx_ipv4_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 7;
+  int idx_name = 9;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_flags2_vrf,
@@ -1592,7 +1896,10 @@ DEFUN (no_ip_route_flags2_vrf,
        "Silently discard pkts when matched\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, NULL, argv[4]->arg, NULL, NULL, argv[6]->arg);
+  int idx_ipv4_prefixlen = 3;
+  int idx_reject_blackhole = 4;
+  int idx_name = 6;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, NULL, argv[idx_reject_blackhole]->arg, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_flags2_tag_vrf,
@@ -1608,7 +1915,11 @@ DEFUN (no_ip_route_flags2_tag_vrf,
        "Tag value\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, NULL, argv[4]->arg, argv[6]->arg, NULL, argv[8]->arg);
+  int idx_ipv4_prefixlen = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 6;
+  int idx_name = 8;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_mask_vrf,
@@ -1624,7 +1935,11 @@ DEFUN (no_ip_route_mask_vrf,
        "Null interface\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, NULL, NULL, argv[7]->arg);
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_ipv4_ifname_null = 5;
+  int idx_name = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname_null]->arg, NULL, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_mask_flags_vrf,
@@ -1641,7 +1956,12 @@ DEFUN (no_ip_route_mask_flags_vrf,
        "Silently discard pkts when matched\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[6]->arg, NULL, NULL, argv[8]->arg);
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_ipv4_ifname = 5;
+  int idx_reject_blackhole = 6;
+  int idx_name = 8;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_mask_tag_vrf,
@@ -1659,7 +1979,12 @@ DEFUN (no_ip_route_mask_tag_vrf,
        "Tag value\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, argv[7]->arg, NULL, argv[9]->arg);
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_ipv4_ifname_null = 5;
+  int idx_number = 7;
+  int idx_name = 9;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname_null]->arg, NULL, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_mask_flags_tag_vrf,
@@ -1678,7 +2003,13 @@ DEFUN (no_ip_route_mask_flags_tag_vrf,
        "Tag value\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[6]->arg, argv[8]->arg, NULL, argv[10]->arg);
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_ipv4_ifname = 5;
+  int idx_reject_blackhole = 6;
+  int idx_number = 8;
+  int idx_name = 10;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_mask_flags2_vrf,
@@ -1693,7 +2024,11 @@ DEFUN (no_ip_route_mask_flags2_vrf,
        "Silently discard pkts when matched\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, NULL, argv[5]->arg, NULL, NULL, argv[7]->arg);
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_reject_blackhole = 5;
+  int idx_name = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, NULL, argv[idx_reject_blackhole]->arg, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_mask_flags2_tag_vrf,
@@ -1710,7 +2045,12 @@ DEFUN (no_ip_route_mask_flags2_tag_vrf,
        "Tag value\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, NULL, argv[5]->arg, argv[7]->arg, NULL, argv[9]->arg);
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 7;
+  int idx_name = 9;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 
@@ -1727,7 +2067,11 @@ DEFUN (no_ip_route_distance_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, argv[4]->arg, NULL, NULL, argv[5]->arg, argv[7]->arg);
+  int idx_ipv4_prefixlen = 3;
+  int idx_ipv4_ifname_null = 4;
+  int idx_number = 5;
+  int idx_name = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname_null]->arg, NULL, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_tag_distance_vrf,
@@ -1745,7 +2089,12 @@ DEFUN (no_ip_route_tag_distance_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, argv[4]->arg, NULL, argv[6]->arg, argv[7]->arg, argv[9]->arg);
+  int idx_ipv4_prefixlen = 3;
+  int idx_ipv4_ifname_null = 4;
+  int idx_number = 6;
+  int idx_number_2 = 7;
+  int idx_name = 9;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname_null]->arg, NULL, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_flags_distance_vrf,
@@ -1762,7 +2111,12 @@ DEFUN (no_ip_route_flags_distance_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, argv[4]->arg, argv[5]->arg, NULL, argv[6]->arg, argv[8]->arg);
+  int idx_ipv4_prefixlen = 3;
+  int idx_ipv4_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 6;
+  int idx_name = 8;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_flags_tag_distance_vrf,
@@ -1781,7 +2135,13 @@ DEFUN (no_ip_route_flags_tag_distance_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, argv[4]->arg, argv[5]->arg, argv[7]->arg, argv[8]->arg,argv[10]->arg);
+  int idx_ipv4_prefixlen = 3;
+  int idx_ipv4_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 7;
+  int idx_number_2 = 8;
+  int idx_name = 10;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg,argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_flags_distance2_vrf,
@@ -1796,7 +2156,11 @@ DEFUN (no_ip_route_flags_distance2_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, NULL, argv[4]->arg, NULL, argv[5]->arg, argv[7]->arg);
+  int idx_ipv4_prefixlen = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 5;
+  int idx_name = 7;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, NULL, argv[idx_reject_blackhole]->arg, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_flags_tag_distance2_vrf,
@@ -1813,7 +2177,12 @@ DEFUN (no_ip_route_flags_tag_distance2_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, NULL, argv[4]->arg, argv[6]->arg , argv[7]->arg, argv[9]->arg);
+  int idx_ipv4_prefixlen = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 6;
+  int idx_number_2 = 7;
+  int idx_name = 9;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4_prefixlen]->arg, NULL, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg , argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_mask_distance_vrf,
@@ -1830,7 +2199,12 @@ DEFUN (no_ip_route_mask_distance_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, NULL, argv[6]->arg, argv[8]->arg);
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_ipv4_ifname_null = 5;
+  int idx_number = 6;
+  int idx_name = 8;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname_null]->arg, NULL, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_mask_tag_distance_vrf,
@@ -1849,7 +2223,13 @@ DEFUN (no_ip_route_mask_tag_distance_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, argv[7]->arg, argv[8]->arg, argv[10]->arg);
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_ipv4_ifname_null = 5;
+  int idx_number = 7;
+  int idx_number_2 = 8;
+  int idx_name = 10;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname_null]->arg, NULL, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_mask_flags_distance_vrf,
@@ -1867,7 +2247,13 @@ DEFUN (no_ip_route_mask_flags_distance_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[6]->arg, NULL, argv[7]->arg, argv[9]->arg);
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_ipv4_ifname = 5;
+  int idx_reject_blackhole = 6;
+  int idx_number = 7;
+  int idx_name = 9;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_mask_flags_tag_distance_vrf,
@@ -1887,7 +2273,14 @@ DEFUN (no_ip_route_mask_flags_tag_distance_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[6]->arg, argv[8]->arg, argv[9]->arg, argv[11]->arg);
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_ipv4_ifname = 5;
+  int idx_reject_blackhole = 6;
+  int idx_number = 8;
+  int idx_number_2 = 9;
+  int idx_name = 11;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, argv[idx_ipv4_ifname]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_mask_flags_distance2_vrf,
@@ -1903,7 +2296,12 @@ DEFUN (no_ip_route_mask_flags_distance2_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, NULL, argv[5]->arg, NULL, argv[6]->arg, argv[8]->arg);
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 6;
+  int idx_name = 8;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, NULL, argv[idx_reject_blackhole]->arg, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ip_route_mask_flags_tag_distance2_vrf,
@@ -1921,7 +2319,13 @@ DEFUN (no_ip_route_mask_flags_tag_distance2_vrf,
        "Distance value for this route\n"
        VRF_CMD_HELP_STR)
 {
-  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, NULL, argv[5]->arg, argv[7]->arg, argv[8]->arg, argv[10]->arg);
+  int idx_ipv4 = 3;
+  int idx_ipv4_2 = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 7;
+  int idx_number_2 = 8;
+  int idx_name = 10;
+  return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[idx_ipv4]->arg, argv[idx_ipv4_2]->arg, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 /* New RIB.  Detailed information for IPv4 route. */
@@ -2442,12 +2846,13 @@ DEFUN (show_ip_route_vrf,
        "IP routing table\n"
        VRF_CMD_HELP_STR)
 {
+  int idx_json = 5;
   u_char uj = use_json(argc, argv);
 
   if (argc == 1 && uj)
     return do_show_ip_route (vty, NULL, SAFI_UNICAST, uj);
   else
-    return do_show_ip_route (vty, argv[5]->arg, SAFI_UNICAST, uj);
+    return do_show_ip_route (vty, argv[idx_json]->arg, SAFI_UNICAST, uj);
 }
 
 /*
@@ -2626,6 +3031,7 @@ DEFUN (show_ip_route_tag,
        "Show only routes with tag\n"
        "Tag value\n")
 {
+  int idx_number = 4;
   struct route_table *table;
   struct route_node *rn;
   struct rib *rib;
@@ -2636,10 +3042,10 @@ DEFUN (show_ip_route_tag,
     if (argc > 1)
       {
         tag = atoi(argv[1]);
-        VRF_GET_ID (vrf_id, argv[4]->arg);
+        VRF_GET_ID (vrf_id, argv[idx_number]->arg);
       }
     else
-      tag = atoi(argv[4]->arg);
+      tag = atoi(argv[idx_number]->arg);
 
   table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, vrf_id);
   if (! table)
@@ -2683,6 +3089,7 @@ DEFUN (show_ip_route_prefix_longer,
        "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n"
        "Show route matching the specified Network/Mask pair only\n")
 {
+  int idx_ipv4_prefixlen = 3;
   struct route_table *table;
   struct route_node *rn;
   struct rib *rib;
@@ -2694,10 +3101,10 @@ DEFUN (show_ip_route_prefix_longer,
   if (argc > 1)
     {
       ret = str2prefix (argv[1], &p);
-      VRF_GET_ID (vrf_id, argv[3]->arg);
+      VRF_GET_ID (vrf_id, argv[idx_ipv4_prefixlen]->arg);
     }
   else
-    ret = str2prefix (argv[3]->arg, &p);
+    ret = str2prefix (argv[idx_ipv4_prefixlen]->arg, &p);
 
   if (! ret)
     {
@@ -2847,13 +3254,14 @@ DEFUN (show_ip_route_ospf_instance,
        "Open Shortest Path First (OSPFv2)\n"
        "Instance ID\n")
 {
+  int idx_number = 4;
   struct route_table *table;
   struct route_node *rn;
   struct rib *rib;
   int first = 1;
   u_short instance = 0;
 
-  VTY_GET_INTEGER ("Instance", instance, argv[4]->arg);
+  VTY_GET_INTEGER ("Instance", instance, argv[idx_number]->arg);
 
   table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, VRF_DEFAULT);
   if (! table)
@@ -2892,6 +3300,7 @@ DEFUN (show_ip_route_addr,
        "IP routing table\n"
        "Network in the IP routing table to display\n")
 {
+  int idx_ipv4 = 3;
   int ret;
   struct prefix_ipv4 p;
   struct route_table *table;
@@ -2900,11 +3309,11 @@ DEFUN (show_ip_route_addr,
 
   if (argc > 1)
     {
-      VRF_GET_ID (vrf_id, argv[3]->arg);
+      VRF_GET_ID (vrf_id, argv[idx_ipv4]->arg);
       ret = str2prefix_ipv4 (argv[1], &p);
     }
   else
-    ret = str2prefix_ipv4 (argv[3]->arg, &p);
+    ret = str2prefix_ipv4 (argv[idx_ipv4]->arg, &p);
 
   if (ret <= 0)
     {
@@ -2949,6 +3358,7 @@ DEFUN (show_ip_route_prefix,
        "IP routing table\n"
        "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n")
 {
+  int idx_ipv4_prefixlen = 3;
   int ret;
   struct prefix_ipv4 p;
   struct route_table *table;
@@ -2957,11 +3367,11 @@ DEFUN (show_ip_route_prefix,
 
   if (argc > 1)
     {
-      VRF_GET_ID (vrf_id, argv[3]->arg);
+      VRF_GET_ID (vrf_id, argv[idx_ipv4_prefixlen]->arg);
       ret = str2prefix_ipv4 (argv[1], &p);
     }
   else
-    ret = str2prefix_ipv4 (argv[3]->arg, &p);
+    ret = str2prefix_ipv4 (argv[idx_ipv4_prefixlen]->arg, &p);
 
   if (ret <= 0)
     {
@@ -3264,6 +3674,7 @@ DEFUN (show_ip_route_vrf_all_tag,
        "Show only routes with tag\n"
        "Tag value\n")
 {
+  int idx_number = 6;
   struct route_table *table;
   struct route_node *rn;
   struct rib *rib;
@@ -3273,8 +3684,8 @@ DEFUN (show_ip_route_vrf_all_tag,
   int vrf_header = 1;
   u_short tag = 0;
 
-  if (argv[6]->arg)
-    tag = atoi(argv[6]->arg);
+  if (argv[idx_number]->arg)
+    tag = atoi(argv[idx_number]->arg);
 
   for (iter = vrf_first (); iter != VRF_ITER_INVALID; iter = vrf_next (iter))
     {
@@ -3317,6 +3728,7 @@ DEFUN (show_ip_route_vrf_all_prefix_longer,
        "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n"
        "Show route matching the specified Network/Mask pair only\n")
 {
+  int idx_ipv4_prefixlen = 5;
   struct route_table *table;
   struct route_node *rn;
   struct rib *rib;
@@ -3327,7 +3739,7 @@ DEFUN (show_ip_route_vrf_all_prefix_longer,
   int first = 1;
   int vrf_header = 1;
 
-  ret = str2prefix (argv[5]->arg, &p);
+  ret = str2prefix (argv[idx_ipv4_prefixlen]->arg, &p);
   if (! ret)
     {
       vty_out (vty, "%% Malformed Prefix%s", VTY_NEWLINE);
@@ -3482,6 +3894,7 @@ DEFUN (show_ip_route_vrf_all_addr,
        VRF_ALL_CMD_HELP_STR
        "Network in the IP routing table to display\n")
 {
+  int idx_ipv4 = 5;
   int ret;
   struct prefix_ipv4 p;
   struct route_table *table;
@@ -3489,7 +3902,7 @@ DEFUN (show_ip_route_vrf_all_addr,
   struct zebra_vrf *zvrf;
   vrf_iter_t iter;
 
-  ret = str2prefix_ipv4 (argv[5]->arg, &p);
+  ret = str2prefix_ipv4 (argv[idx_ipv4]->arg, &p);
   if (ret <= 0)
     {
       vty_out (vty, "%% Malformed IPv4 address%s", VTY_NEWLINE);
@@ -3523,6 +3936,7 @@ DEFUN (show_ip_route_vrf_all_prefix,
        VRF_ALL_CMD_HELP_STR
        "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n")
 {
+  int idx_ipv4_prefixlen = 5;
   int ret;
   struct prefix_ipv4 p;
   struct route_table *table;
@@ -3530,7 +3944,7 @@ DEFUN (show_ip_route_vrf_all_prefix,
   struct zebra_vrf *zvrf;
   vrf_iter_t iter;
 
-  ret = str2prefix_ipv4 (argv[5]->arg, &p);
+  ret = str2prefix_ipv4 (argv[idx_ipv4_prefixlen]->arg, &p);
   if (ret <= 0)
     {
       vty_out (vty, "%% Malformed IPv4 address%s", VTY_NEWLINE);
@@ -3789,7 +4203,9 @@ DEFUN (ipv6_route,
        "IPv6 gateway address\n"
        "IPv6 gateway interface name\n")
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, NULL, NULL, NULL, NULL, NULL);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6_ifname = 3;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, NULL, NULL, NULL, NULL);
 }
 
 DEFUN (ipv6_route_tag,
@@ -3803,7 +4219,10 @@ DEFUN (ipv6_route_tag,
        "Set tag for this route\n"
        "Tag value\n")
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, NULL, NULL, argv[5]->arg, NULL, NULL);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6_ifname = 3;
+  int idx_number = 5;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, NULL, argv[idx_number]->arg, NULL, NULL);
 }
 
 DEFUN (ipv6_route_flags,
@@ -3817,7 +4236,10 @@ DEFUN (ipv6_route_flags,
        "Emit an ICMP unreachable when matched\n"
        "Silently discard pkts when matched\n")
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, NULL, argv[4]->arg, NULL, NULL, NULL);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6_ifname = 3;
+  int idx_reject_blackhole = 4;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, argv[idx_reject_blackhole]->arg, NULL, NULL, NULL);
 }
 
 DEFUN (ipv6_route_flags_tag,
@@ -3833,7 +4255,11 @@ DEFUN (ipv6_route_flags_tag,
        "Set tag for this route\n"
        "Tag value\n")
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, NULL, argv[4]->arg, argv[6]->arg, NULL, NULL);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6_ifname = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 6;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, NULL, NULL);
 }
 
 DEFUN (ipv6_route_ifname,
@@ -3845,7 +4271,10 @@ DEFUN (ipv6_route_ifname,
        "IPv6 gateway address\n"
        "IPv6 gateway interface name\n")
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, NULL, NULL, NULL);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6 = 3;
+  int idx_interface = 4;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, NULL, NULL, NULL, NULL);
 }
 DEFUN (ipv6_route_ifname_tag,
        ipv6_route_ifname_tag_cmd,
@@ -3858,7 +4287,11 @@ DEFUN (ipv6_route_ifname_tag,
        "Set tag for this route\n"
        "Tag value\n")
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, argv[6]->arg, NULL, NULL);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6 = 3;
+  int idx_interface = 4;
+  int idx_number = 6;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, NULL, argv[idx_number]->arg, NULL, NULL);
 }
 
 DEFUN (ipv6_route_ifname_flags,
@@ -3872,7 +4305,11 @@ DEFUN (ipv6_route_ifname_flags,
        "Emit an ICMP unreachable when matched\n"
        "Silently discard pkts when matched\n")
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, NULL, NULL);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6 = 3;
+  int idx_interface = 4;
+  int idx_reject_blackhole = 5;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, argv[idx_reject_blackhole]->arg, NULL, NULL, NULL);
 }
 
 DEFUN (ipv6_route_ifname_flags_tag,
@@ -3888,7 +4325,12 @@ DEFUN (ipv6_route_ifname_flags_tag,
        "Set tag for this route\n"
        "Tag value\n")
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[7]->arg, NULL, NULL);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6 = 3;
+  int idx_interface = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 7;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, NULL, NULL);
 }
 
 DEFUN (ipv6_route_pref,
@@ -3901,7 +4343,10 @@ DEFUN (ipv6_route_pref,
        "IPv6 gateway interface name\n"
        "Distance value for this prefix\n")
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, NULL, NULL, NULL, argv[4]->arg, NULL);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6_ifname = 3;
+  int idx_number = 4;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, NULL, NULL, argv[idx_number]->arg, NULL);
 }
 
 DEFUN (ipv6_route_pref_tag,
@@ -3916,7 +4361,11 @@ DEFUN (ipv6_route_pref_tag,
        "Tag value\n"
        "Distance value for this prefix\n")
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, NULL, NULL, argv[5]->arg, argv[6]->arg, NULL);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6_ifname = 3;
+  int idx_number = 5;
+  int idx_number_2 = 6;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, NULL, argv[idx_number]->arg, argv[idx_number_2]->arg, NULL);
 }
 
 DEFUN (ipv6_route_flags_pref,
@@ -3931,7 +4380,11 @@ DEFUN (ipv6_route_flags_pref,
        "Silently discard pkts when matched\n"
        "Distance value for this prefix\n")
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, NULL, argv[4]->arg, NULL, argv[5]->arg, NULL);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6_ifname = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 5;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, argv[idx_reject_blackhole]->arg, NULL, argv[idx_number]->arg, NULL);
 }
 
 DEFUN (ipv6_route_flags_pref_tag,
@@ -3948,7 +4401,12 @@ DEFUN (ipv6_route_flags_pref_tag,
        "Tag value\n"
        "Distance value for this prefix\n")
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, NULL, argv[4]->arg, argv[6]->arg, argv[7]->arg, NULL);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6_ifname = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 6;
+  int idx_number_2 = 7;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg, NULL);
 }
 
 DEFUN (ipv6_route_ifname_pref,
@@ -3961,7 +4419,11 @@ DEFUN (ipv6_route_ifname_pref,
        "IPv6 gateway interface name\n"
        "Distance value for this prefix\n")
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, NULL, argv[5]->arg, NULL);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6 = 3;
+  int idx_interface = 4;
+  int idx_number = 5;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, NULL, NULL, argv[idx_number]->arg, NULL);
 }
 
 DEFUN (ipv6_route_ifname_pref_tag,
@@ -3976,7 +4438,12 @@ DEFUN (ipv6_route_ifname_pref_tag,
        "Tag value\n"
        "Distance value for this prefix\n")
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, argv[6]->arg, argv[7]->arg, NULL);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6 = 3;
+  int idx_interface = 4;
+  int idx_number = 6;
+  int idx_number_2 = 7;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, NULL, argv[idx_number]->arg, argv[idx_number_2]->arg, NULL);
 }
 
 DEFUN (ipv6_route_ifname_flags_pref,
@@ -3991,7 +4458,12 @@ DEFUN (ipv6_route_ifname_flags_pref,
        "Silently discard pkts when matched\n"
        "Distance value for this prefix\n")
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, argv[6]->arg, NULL);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6 = 3;
+  int idx_interface = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 6;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, argv[idx_reject_blackhole]->arg, NULL, argv[idx_number]->arg, NULL);
 }
 
 DEFUN (ipv6_route_ifname_flags_pref_tag,
@@ -4008,7 +4480,13 @@ DEFUN (ipv6_route_ifname_flags_pref_tag,
        "Tag value\n"
        "Distance value for this prefix\n")
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[7]->arg, argv[8]->arg, NULL);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6 = 3;
+  int idx_interface = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 7;
+  int idx_number_2 = 8;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg, NULL);
 }
 
 DEFUN (no_ipv6_route,
@@ -4021,7 +4499,9 @@ DEFUN (no_ipv6_route,
        "IPv6 gateway address\n"
        "IPv6 gateway interface name\n")
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, NULL, NULL, NULL, NULL, NULL);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6_ifname = 4;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, NULL, NULL, NULL, NULL);
 }
 
 DEFUN (no_ipv6_route_tag,
@@ -4036,7 +4516,10 @@ DEFUN (no_ipv6_route_tag,
        "Set tag for this route\n"
        "Tag value\n")
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, NULL, NULL, argv[6]->arg, NULL, NULL);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6_ifname = 4;
+  int idx_number = 6;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, NULL, argv[idx_number]->arg, NULL, NULL);
 }
 
 DEFUN (no_ipv6_route_flags,
@@ -4051,7 +4534,10 @@ DEFUN (no_ipv6_route_flags,
        "Emit an ICMP unreachable when matched\n"
        "Silently discard pkts when matched\n")
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, NULL, argv[5]->arg, NULL, NULL, NULL);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6_ifname = 4;
+  int idx_reject_blackhole = 5;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, argv[idx_reject_blackhole]->arg, NULL, NULL, NULL);
 }
 
 DEFUN (no_ipv6_route_flags_tag,
@@ -4068,7 +4554,11 @@ DEFUN (no_ipv6_route_flags_tag,
        "Set tag for this route\n"
        "Tag value\n")
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, NULL, argv[5]->arg, argv[7]->arg, NULL, NULL);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 7;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, NULL, NULL);
 }
 
 DEFUN (no_ipv6_route_ifname,
@@ -4081,7 +4571,10 @@ DEFUN (no_ipv6_route_ifname,
        "IPv6 gateway address\n"
        "IPv6 gateway interface name\n")
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, NULL, NULL, NULL);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6 = 4;
+  int idx_interface = 5;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, NULL, NULL, NULL, NULL);
 }
 
 DEFUN (no_ipv6_route_ifname_tag,
@@ -4096,7 +4589,11 @@ DEFUN (no_ipv6_route_ifname_tag,
        "Set tag for this route\n"
        "Tag value\n")
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, argv[7]->arg, NULL, NULL);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6 = 4;
+  int idx_interface = 5;
+  int idx_number = 7;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, NULL, argv[idx_number]->arg, NULL, NULL);
 }
 
 DEFUN (no_ipv6_route_ifname_flags,
@@ -4111,7 +4608,11 @@ DEFUN (no_ipv6_route_ifname_flags,
        "Emit an ICMP unreachable when matched\n"
        "Silently discard pkts when matched\n")
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[6]->arg, NULL, NULL, NULL);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6 = 4;
+  int idx_interface = 5;
+  int idx_reject_blackhole = 6;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, argv[idx_reject_blackhole]->arg, NULL, NULL, NULL);
 }
 
 DEFUN (no_ipv6_route_ifname_flags_tag,
@@ -4128,7 +4629,12 @@ DEFUN (no_ipv6_route_ifname_flags_tag,
        "Set tag for this route\n"
        "Tag value\n")
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[6]->arg, argv[8]->arg, NULL, NULL);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6 = 4;
+  int idx_interface = 5;
+  int idx_reject_blackhole = 6;
+  int idx_number = 8;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, NULL, NULL);
 }
 
 DEFUN (no_ipv6_route_pref,
@@ -4142,7 +4648,10 @@ DEFUN (no_ipv6_route_pref,
        "IPv6 gateway interface name\n"
        "Distance value for this prefix\n")
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, NULL, NULL, NULL, argv[5]->arg, NULL);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6_ifname = 4;
+  int idx_number = 5;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, NULL, NULL, argv[idx_number]->arg, NULL);
 }
 
 DEFUN (no_ipv6_route_pref_tag,
@@ -4158,7 +4667,11 @@ DEFUN (no_ipv6_route_pref_tag,
        "Tag value\n"
        "Distance value for this prefix\n")
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, NULL, NULL, argv[6]->arg, argv[7]->arg, NULL);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6_ifname = 4;
+  int idx_number = 6;
+  int idx_number_2 = 7;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, NULL, argv[idx_number]->arg, argv[idx_number_2]->arg, NULL);
 }
 
 DEFUN (no_ipv6_route_flags_pref,
@@ -4174,8 +4687,12 @@ DEFUN (no_ipv6_route_flags_pref,
        "Silently discard pkts when matched\n"
        "Distance value for this prefix\n")
 {
-  /* We do not care about argv[5]->arg */
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, NULL, argv[5]->arg, NULL, argv[6]->arg, NULL);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 6;
+  /* We do not care about argv[idx_reject_blackhole]->arg */
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, argv[idx_reject_blackhole]->arg, NULL, argv[idx_number]->arg, NULL);
 }
 
 DEFUN (no_ipv6_route_flags_pref_tag,
@@ -4193,8 +4710,13 @@ DEFUN (no_ipv6_route_flags_pref_tag,
        "Tag value\n"
        "Distance value for this prefix\n")
 {
-  /* We do not care about argv[5]->arg */
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, NULL, argv[5]->arg, argv[7]->arg, argv[8]->arg, NULL);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 7;
+  int idx_number_2 = 8;
+  /* We do not care about argv[idx_reject_blackhole]->arg */
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg, NULL);
 }
 
 DEFUN (no_ipv6_route_ifname_pref,
@@ -4208,7 +4730,11 @@ DEFUN (no_ipv6_route_ifname_pref,
        "IPv6 gateway interface name\n"
        "Distance value for this prefix\n")
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, NULL, argv[6]->arg, NULL);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6 = 4;
+  int idx_interface = 5;
+  int idx_number = 6;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, NULL, NULL, argv[idx_number]->arg, NULL);
 }
 
 DEFUN (no_ipv6_route_ifname_pref_tag,
@@ -4224,7 +4750,12 @@ DEFUN (no_ipv6_route_ifname_pref_tag,
        "Tag value\n"
        "Distance value for this prefix\n")
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, argv[7]->arg, argv[8]->arg, NULL);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6 = 4;
+  int idx_interface = 5;
+  int idx_number = 7;
+  int idx_number_2 = 8;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, NULL, argv[idx_number]->arg, argv[idx_number_2]->arg, NULL);
 }
 
 DEFUN (no_ipv6_route_ifname_flags_pref,
@@ -4240,7 +4771,12 @@ DEFUN (no_ipv6_route_ifname_flags_pref,
        "Silently discard pkts when matched\n"
        "Distance value for this prefix\n")
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[6]->arg, NULL, argv[7]->arg, NULL);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6 = 4;
+  int idx_interface = 5;
+  int idx_reject_blackhole = 6;
+  int idx_number = 7;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, argv[idx_reject_blackhole]->arg, NULL, argv[idx_number]->arg, NULL);
 }
 
 DEFUN (no_ipv6_route_ifname_flags_pref_tag,
@@ -4258,7 +4794,13 @@ DEFUN (no_ipv6_route_ifname_flags_pref_tag,
        "Tag value\n"
        "Distance value for this prefix\n")
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[6]->arg, argv[8]->arg, argv[9]->arg, NULL);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6 = 4;
+  int idx_interface = 5;
+  int idx_reject_blackhole = 6;
+  int idx_number = 8;
+  int idx_number_2 = 9;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg, NULL);
 }
 
 DEFUN (ipv6_route_vrf,
@@ -4271,7 +4813,10 @@ DEFUN (ipv6_route_vrf,
        "IPv6 gateway interface name\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, NULL, NULL, NULL, NULL, argv[5]->arg);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6_ifname = 3;
+  int idx_name = 5;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, NULL, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (ipv6_route_tag_vrf,
@@ -4286,7 +4831,11 @@ DEFUN (ipv6_route_tag_vrf,
        "Tag value\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, NULL, NULL, argv[5]->arg, NULL, argv[7]->arg);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6_ifname = 3;
+  int idx_number = 5;
+  int idx_name = 7;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, NULL, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (ipv6_route_flags_vrf,
@@ -4301,7 +4850,11 @@ DEFUN (ipv6_route_flags_vrf,
        "Silently discard pkts when matched\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, NULL, argv[4]->arg, NULL, NULL, argv[6]->arg);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6_ifname = 3;
+  int idx_reject_blackhole = 4;
+  int idx_name = 6;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, argv[idx_reject_blackhole]->arg, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (ipv6_route_flags_tag_vrf,
@@ -4318,7 +4871,12 @@ DEFUN (ipv6_route_flags_tag_vrf,
        "Tag value\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, NULL, argv[4]->arg, argv[6]->arg, NULL, argv[8]->arg);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6_ifname = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 6;
+  int idx_name = 8;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (ipv6_route_ifname_vrf,
@@ -4331,7 +4889,11 @@ DEFUN (ipv6_route_ifname_vrf,
        "IPv6 gateway interface name\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, NULL, NULL, argv[6]->arg);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6 = 3;
+  int idx_interface = 4;
+  int idx_name = 6;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, NULL, NULL, NULL, argv[idx_name]->arg);
 }
 DEFUN (ipv6_route_ifname_tag_vrf,
        ipv6_route_ifname_tag_vrf_cmd,
@@ -4345,7 +4907,12 @@ DEFUN (ipv6_route_ifname_tag_vrf,
        "Tag value\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, argv[6]->arg, NULL, argv[8]->arg);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6 = 3;
+  int idx_interface = 4;
+  int idx_number = 6;
+  int idx_name = 8;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, NULL, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (ipv6_route_ifname_flags_vrf,
@@ -4360,7 +4927,12 @@ DEFUN (ipv6_route_ifname_flags_vrf,
        "Silently discard pkts when matched\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, NULL, argv[7]->arg);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6 = 3;
+  int idx_interface = 4;
+  int idx_reject_blackhole = 5;
+  int idx_name = 7;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, argv[idx_reject_blackhole]->arg, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (ipv6_route_ifname_flags_tag_vrf,
@@ -4377,7 +4949,13 @@ DEFUN (ipv6_route_ifname_flags_tag_vrf,
        "Tag value\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[7]->arg, NULL, argv[9]->arg);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6 = 3;
+  int idx_interface = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 7;
+  int idx_name = 9;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (ipv6_route_pref_vrf,
@@ -4391,7 +4969,11 @@ DEFUN (ipv6_route_pref_vrf,
        "Distance value for this prefix\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, NULL, NULL, NULL, argv[4]->arg, argv[6]->arg);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6_ifname = 3;
+  int idx_number = 4;
+  int idx_name = 6;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, NULL, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (ipv6_route_pref_tag_vrf,
@@ -4407,7 +4989,12 @@ DEFUN (ipv6_route_pref_tag_vrf,
        "Distance value for this prefix\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, NULL, NULL, argv[5]->arg, argv[6]->arg, argv[8]->arg);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6_ifname = 3;
+  int idx_number = 5;
+  int idx_number_2 = 6;
+  int idx_name = 8;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, NULL, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (ipv6_route_flags_pref_vrf,
@@ -4423,7 +5010,12 @@ DEFUN (ipv6_route_flags_pref_vrf,
        "Distance value for this prefix\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, NULL, argv[4]->arg, NULL, argv[5]->arg, argv[7]->arg);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6_ifname = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 5;
+  int idx_name = 7;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, argv[idx_reject_blackhole]->arg, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (ipv6_route_flags_pref_tag_vrf,
@@ -4441,7 +5033,13 @@ DEFUN (ipv6_route_flags_pref_tag_vrf,
        "Distance value for this prefix\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, NULL, argv[4]->arg, argv[6]->arg, argv[7]->arg, argv[9]->arg);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6_ifname = 3;
+  int idx_reject_blackhole = 4;
+  int idx_number = 6;
+  int idx_number_2 = 7;
+  int idx_name = 9;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (ipv6_route_ifname_pref_vrf,
@@ -4455,7 +5053,12 @@ DEFUN (ipv6_route_ifname_pref_vrf,
        "Distance value for this prefix\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, NULL, argv[5]->arg, argv[7]->arg);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6 = 3;
+  int idx_interface = 4;
+  int idx_number = 5;
+  int idx_name = 7;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, NULL, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (ipv6_route_ifname_pref_tag_vrf,
@@ -4471,7 +5074,13 @@ DEFUN (ipv6_route_ifname_pref_tag_vrf,
        "Distance value for this prefix\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, argv[6]->arg, argv[7]->arg, argv[9]->arg);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6 = 3;
+  int idx_interface = 4;
+  int idx_number = 6;
+  int idx_number_2 = 7;
+  int idx_name = 9;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, NULL, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (ipv6_route_ifname_flags_pref_vrf,
@@ -4487,7 +5096,13 @@ DEFUN (ipv6_route_ifname_flags_pref_vrf,
        "Distance value for this prefix\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, argv[6]->arg, argv[8]->arg);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6 = 3;
+  int idx_interface = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 6;
+  int idx_name = 8;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, argv[idx_reject_blackhole]->arg, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (ipv6_route_ifname_flags_pref_tag_vrf,
@@ -4505,7 +5120,14 @@ DEFUN (ipv6_route_ifname_flags_pref_tag_vrf,
        "Distance value for this prefix\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[7]->arg, argv[8]->arg, argv[10]->arg);
+  int idx_ipv6_prefixlen = 2;
+  int idx_ipv6 = 3;
+  int idx_interface = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 7;
+  int idx_number_2 = 8;
+  int idx_name = 10;
+  return static_ipv6_func (vty, 1, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ipv6_route_vrf,
@@ -4519,7 +5141,10 @@ DEFUN (no_ipv6_route_vrf,
        "IPv6 gateway interface name\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, NULL, NULL, NULL, NULL, argv[6]->arg);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6_ifname = 4;
+  int idx_name = 6;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, NULL, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ipv6_route_tag_vrf,
@@ -4535,7 +5160,11 @@ DEFUN (no_ipv6_route_tag_vrf,
        "Tag value\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, NULL, NULL, argv[6]->arg, NULL, argv[8]->arg);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6_ifname = 4;
+  int idx_number = 6;
+  int idx_name = 8;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, NULL, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ipv6_route_flags_vrf,
@@ -4551,7 +5180,11 @@ DEFUN (no_ipv6_route_flags_vrf,
        "Silently discard pkts when matched\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, NULL, argv[5]->arg, NULL, NULL, argv[7]->arg);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_name = 7;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, argv[idx_reject_blackhole]->arg, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ipv6_route_flags_tag_vrf,
@@ -4569,7 +5202,12 @@ DEFUN (no_ipv6_route_flags_tag_vrf,
        "Tag value\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, NULL, argv[5]->arg, argv[7]->arg, NULL, argv[9]->arg);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 7;
+  int idx_name = 9;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ipv6_route_ifname_vrf,
@@ -4583,7 +5221,11 @@ DEFUN (no_ipv6_route_ifname_vrf,
        "IPv6 gateway interface name\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, NULL, NULL, argv[7]->arg);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6 = 4;
+  int idx_interface = 5;
+  int idx_name = 7;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, NULL, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ipv6_route_ifname_tag_vrf,
@@ -4599,7 +5241,12 @@ DEFUN (no_ipv6_route_ifname_tag_vrf,
        "Tag value\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, argv[7]->arg, NULL, argv[9]->arg);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6 = 4;
+  int idx_interface = 5;
+  int idx_number = 7;
+  int idx_name = 9;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, NULL, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ipv6_route_ifname_flags_vrf,
@@ -4615,7 +5262,12 @@ DEFUN (no_ipv6_route_ifname_flags_vrf,
        "Silently discard pkts when matched\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[6]->arg, NULL, NULL, argv[8]->arg);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6 = 4;
+  int idx_interface = 5;
+  int idx_reject_blackhole = 6;
+  int idx_name = 8;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, argv[idx_reject_blackhole]->arg, NULL, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ipv6_route_ifname_flags_tag_vrf,
@@ -4633,7 +5285,13 @@ DEFUN (no_ipv6_route_ifname_flags_tag_vrf,
        "Tag value\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[6]->arg, argv[8]->arg, NULL, argv[10]->arg);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6 = 4;
+  int idx_interface = 5;
+  int idx_reject_blackhole = 6;
+  int idx_number = 8;
+  int idx_name = 10;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, NULL, argv[idx_name]->arg);
 }
 
 DEFUN (no_ipv6_route_pref_vrf,
@@ -4648,7 +5306,11 @@ DEFUN (no_ipv6_route_pref_vrf,
        "Distance value for this prefix\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, NULL, NULL, NULL, argv[5]->arg, argv[7]->arg);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6_ifname = 4;
+  int idx_number = 5;
+  int idx_name = 7;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, NULL, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ipv6_route_pref_tag_vrf,
@@ -4665,7 +5327,12 @@ DEFUN (no_ipv6_route_pref_tag_vrf,
        "Distance value for this prefix\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, NULL, NULL, argv[6]->arg, argv[7]->arg, argv[9]->arg);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6_ifname = 4;
+  int idx_number = 6;
+  int idx_number_2 = 7;
+  int idx_name = 9;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, NULL, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ipv6_route_flags_pref_vrf,
@@ -4682,8 +5349,13 @@ DEFUN (no_ipv6_route_flags_pref_vrf,
        "Distance value for this prefix\n"
        VRF_CMD_HELP_STR)
 {
-  /* We do not care about argv[5]->arg */
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, NULL, argv[5]->arg, NULL, argv[6]->arg, argv[8]->arg);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 6;
+  int idx_name = 8;
+  /* We do not care about argv[idx_reject_blackhole]->arg */
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, argv[idx_reject_blackhole]->arg, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ipv6_route_flags_pref_tag_vrf,
@@ -4702,8 +5374,14 @@ DEFUN (no_ipv6_route_flags_pref_tag_vrf,
        "Distance value for this prefix\n"
        VRF_CMD_HELP_STR)
 {
-  /* We do not care about argv[5]->arg */
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, NULL, argv[5]->arg, argv[7]->arg, argv[8]->arg, argv[10]->arg);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6_ifname = 4;
+  int idx_reject_blackhole = 5;
+  int idx_number = 7;
+  int idx_number_2 = 8;
+  int idx_name = 10;
+  /* We do not care about argv[idx_reject_blackhole]->arg */
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6_ifname]->arg, NULL, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ipv6_route_ifname_pref_vrf,
@@ -4718,7 +5396,12 @@ DEFUN (no_ipv6_route_ifname_pref_vrf,
        "Distance value for this prefix\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, NULL, argv[6]->arg, argv[8]->arg);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6 = 4;
+  int idx_interface = 5;
+  int idx_number = 6;
+  int idx_name = 8;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, NULL, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ipv6_route_ifname_pref_tag_vrf,
@@ -4735,7 +5418,13 @@ DEFUN (no_ipv6_route_ifname_pref_tag_vrf,
        "Distance value for this prefix\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, argv[7]->arg, argv[8]->arg, argv[10]->arg);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6 = 4;
+  int idx_interface = 5;
+  int idx_number = 7;
+  int idx_number_2 = 8;
+  int idx_name = 10;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, NULL, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ipv6_route_ifname_flags_pref_vrf,
@@ -4752,7 +5441,13 @@ DEFUN (no_ipv6_route_ifname_flags_pref_vrf,
        "Distance value for this prefix\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[6]->arg, NULL, argv[7]->arg, argv[9]->arg);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6 = 4;
+  int idx_interface = 5;
+  int idx_reject_blackhole = 6;
+  int idx_number = 7;
+  int idx_name = 9;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, argv[idx_reject_blackhole]->arg, NULL, argv[idx_number]->arg, argv[idx_name]->arg);
 }
 
 DEFUN (no_ipv6_route_ifname_flags_pref_tag_vrf,
@@ -4771,7 +5466,14 @@ DEFUN (no_ipv6_route_ifname_flags_pref_tag_vrf,
        "Distance value for this prefix\n"
        VRF_CMD_HELP_STR)
 {
-  return static_ipv6_func (vty, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, argv[6]->arg, argv[8]->arg, argv[9]->arg, argv[11]->arg);
+  int idx_ipv6_prefixlen = 3;
+  int idx_ipv6 = 4;
+  int idx_interface = 5;
+  int idx_reject_blackhole = 6;
+  int idx_number = 8;
+  int idx_number_2 = 9;
+  int idx_name = 11;
+  return static_ipv6_func (vty, 0, argv[idx_ipv6_prefixlen]->arg, argv[idx_ipv6]->arg, argv[idx_interface]->arg, argv[idx_reject_blackhole]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_name]->arg);
 }
 
 /*
@@ -4790,6 +5492,7 @@ DEFUN (show_ipv6_route,
        IP_STR
        "IPv6 routing table\n")
 {
+  int idx_json = 3;
   struct route_table *table;
   struct route_node *rn;
   struct rib *rib;
@@ -4801,14 +5504,14 @@ DEFUN (show_ipv6_route,
   json_object *json_prefix = NULL;
   u_char uj = use_json(argc, argv);
 
-  if (argc > 0 && argv[3]->arg && strcmp(argv[3]->arg, "json") != 0)
+  if (argc > 0 && argv[idx_json]->arg && strcmp(argv[idx_json]->arg, "json") != 0)
     {
-     if (!(zvrf = zebra_vrf_list_lookup_by_name (argv[3]->arg)))
+     if (!(zvrf = zebra_vrf_list_lookup_by_name (argv[idx_json]->arg)))
         {
           if (uj)
             vty_out (vty, "{}%s", VTY_NEWLINE);
           else
-            vty_out (vty, "vrf %s not defined%s", argv[3]->arg, VTY_NEWLINE);
+            vty_out (vty, "vrf %s not defined%s", argv[idx_json]->arg, VTY_NEWLINE);
           return CMD_SUCCESS;
         }
 
@@ -4817,7 +5520,7 @@ DEFUN (show_ipv6_route,
           if (uj)
             vty_out (vty, "{}%s", VTY_NEWLINE);
           else
-            vty_out (vty, "vrf %s inactive%s", argv[3]->arg, VTY_NEWLINE);
+            vty_out (vty, "vrf %s inactive%s", argv[idx_json]->arg, VTY_NEWLINE);
           return CMD_SUCCESS;
         }
       else
@@ -4898,6 +5601,7 @@ DEFUN (show_ipv6_route_tag,
        "Show only routes with tag\n"
        "Tag value\n")
 {
+  int idx_number = 4;
   struct route_table *table;
   struct route_node *rn;
   struct rib *rib;
@@ -4907,11 +5611,11 @@ DEFUN (show_ipv6_route_tag,
 
   if (argc > 1)
     {
-      VRF_GET_ID (vrf_id, argv[4]->arg);
+      VRF_GET_ID (vrf_id, argv[idx_number]->arg);
       tag = atoi(argv[1]);
     }
   else
-    tag = atoi(argv[4]->arg);
+    tag = atoi(argv[idx_number]->arg);
 
   table = zebra_vrf_table (AFI_IP6, SAFI_UNICAST, vrf_id);
   if (! table)
@@ -4955,6 +5659,7 @@ DEFUN (show_ipv6_route_prefix_longer,
        "IPv6 prefix\n"
        "Show route matching the specified Network/Mask pair only\n")
 {
+  int idx_ipv6_prefixlen = 3;
   struct route_table *table;
   struct route_node *rn;
   struct rib *rib;
@@ -4965,11 +5670,11 @@ DEFUN (show_ipv6_route_prefix_longer,
 
   if (argc > 1)
     {
-      VRF_GET_ID (vrf_id, argv[3]->arg);
+      VRF_GET_ID (vrf_id, argv[idx_ipv6_prefixlen]->arg);
       ret = str2prefix (argv[1], &p);
     }
   else
-    ret = str2prefix (argv[3]->arg, &p);
+    ret = str2prefix (argv[idx_ipv6_prefixlen]->arg, &p);
 
   if (! ret)
     {
@@ -5015,6 +5720,7 @@ DEFUN (show_ipv6_route_protocol,
        "IP routing table\n"
        QUAGGA_IP6_REDIST_HELP_STR_ZEBRA)
 {
+  int idx_protocol = 3;
   int type;
   struct route_table *table;
   struct route_node *rn;
@@ -5025,7 +5731,7 @@ DEFUN (show_ipv6_route_protocol,
   if ( argc >1 )
     {
       VRF_GET_ID (vrf_id, argv[4]->arg);
-      type = proto_redistnum (AFI_IP6, argv[3]->arg);
+      type = proto_redistnum (AFI_IP6, argv[idx_protocol]->arg);
     }
   else
     type = proto_redistnum (AFI_IP6, argv[4]->arg);
@@ -5074,6 +5780,7 @@ DEFUN (show_ipv6_route_addr,
        "IPv6 routing table\n"
        "IPv6 Address\n")
 {
+  int idx_ipv6 = 3;
   int ret;
   struct prefix_ipv6 p;
   struct route_table *table;
@@ -5082,11 +5789,11 @@ DEFUN (show_ipv6_route_addr,
 
   if (argc > 1 )
     {
-      VRF_GET_ID (vrf_id, argv[3]->arg);
+      VRF_GET_ID (vrf_id, argv[idx_ipv6]->arg);
       ret = str2prefix_ipv6 (argv[1], &p);
     }
   else
-    ret = str2prefix_ipv6 (argv[3]->arg, &p);
+    ret = str2prefix_ipv6 (argv[idx_ipv6]->arg, &p);
 
   if (ret <= 0)
     {
@@ -5131,6 +5838,7 @@ DEFUN (show_ipv6_route_prefix,
        "IPv6 routing table\n"
        "IPv6 prefix\n")
 {
+  int idx_ipv6_prefixlen = 3;
   int ret;
   struct prefix_ipv6 p;
   struct route_table *table;
@@ -5139,11 +5847,11 @@ DEFUN (show_ipv6_route_prefix,
 
   if (argc > 1)
     {
-      VRF_GET_ID (vrf_id, argv[3]->arg);
+      VRF_GET_ID (vrf_id, argv[idx_ipv6_prefixlen]->arg);
       ret = str2prefix_ipv6 (argv[1], &p);
     }
   else
-    ret = str2prefix_ipv6 (argv[3]->arg, &p);
+    ret = str2prefix_ipv6 (argv[idx_ipv6_prefixlen]->arg, &p);
 
   if (ret <= 0)
     {
@@ -5346,6 +6054,7 @@ DEFUN (show_ipv6_route_vrf_all_tag,
        "Show only routes with tag\n"
        "Tag value\n")
 {
+  int idx_number = 6;
   struct route_table *table;
   struct route_node *rn;
   struct rib *rib;
@@ -5355,8 +6064,8 @@ DEFUN (show_ipv6_route_vrf_all_tag,
   int vrf_header = 1;
   u_short tag = 0;
 
-  if (argv[6]->arg)
-    tag = atoi(argv[6]->arg);
+  if (argv[idx_number]->arg)
+    tag = atoi(argv[idx_number]->arg);
 
   for (iter = vrf_first (); iter != VRF_ITER_INVALID; iter = vrf_next (iter))
     {
@@ -5400,6 +6109,7 @@ DEFUN (show_ipv6_route_vrf_all_prefix_longer,
        "IPv6 prefix\n"
        "Show route matching the specified Network/Mask pair only\n")
 {
+  int idx_ipv6_prefixlen = 5;
   struct route_table *table;
   struct route_node *rn;
   struct rib *rib;
@@ -5410,7 +6120,7 @@ DEFUN (show_ipv6_route_vrf_all_prefix_longer,
   int first = 1;
   int vrf_header = 1;
 
-  ret = str2prefix (argv[5]->arg, &p);
+  ret = str2prefix (argv[idx_ipv6_prefixlen]->arg, &p);
   if (! ret)
     {
       vty_out (vty, "%% Malformed Prefix%s", VTY_NEWLINE);
@@ -5511,6 +6221,7 @@ DEFUN (show_ipv6_route_vrf_all_addr,
        VRF_ALL_CMD_HELP_STR
        "IPv6 Address\n")
 {
+  int idx_ipv6 = 5;
   int ret;
   struct prefix_ipv6 p;
   struct route_table *table;
@@ -5518,7 +6229,7 @@ DEFUN (show_ipv6_route_vrf_all_addr,
   struct zebra_vrf *zvrf;
   vrf_iter_t iter;
 
-  ret = str2prefix_ipv6 (argv[5]->arg, &p);
+  ret = str2prefix_ipv6 (argv[idx_ipv6]->arg, &p);
   if (ret <= 0)
     {
       vty_out (vty, "Malformed IPv6 address%s", VTY_NEWLINE);
@@ -5552,6 +6263,7 @@ DEFUN (show_ipv6_route_vrf_all_prefix,
        VRF_ALL_CMD_HELP_STR
        "IPv6 prefix\n")
 {
+  int idx_ipv6_prefixlen = 5;
   int ret;
   struct prefix_ipv6 p;
   struct route_table *table;
@@ -5559,7 +6271,7 @@ DEFUN (show_ipv6_route_vrf_all_prefix,
   struct zebra_vrf *zvrf;
   vrf_iter_t iter;
 
-  ret = str2prefix_ipv6 (argv[5]->arg, &p);
+  ret = str2prefix_ipv6 (argv[idx_ipv6_prefixlen]->arg, &p);
   if (ret <= 0)
     {
       vty_out (vty, "Malformed IPv6 prefix%s", VTY_NEWLINE);
@@ -5807,11 +6519,13 @@ DEFUN (ip_zebra_import_table_distance,
        "Distance for imported routes\n"
        "Default distance value\n")
 {
+  int idx_number = 2;
+  int idx_number_2 = 4;
   u_int32_t table_id = 0;
   int distance = ZEBRA_TABLE_DISTANCE_DEFAULT;
 
   if (argc)
-    VTY_GET_INTEGER("table", table_id, argv[2]->arg);
+    VTY_GET_INTEGER("table", table_id, argv[idx_number]->arg);
 
   if (!is_zebra_valid_kernel_table(table_id))
     {
@@ -5828,7 +6542,7 @@ DEFUN (ip_zebra_import_table_distance,
     }
 
   if (argc > 1)
-    VTY_GET_INTEGER_RANGE("distance", distance, argv[4]->arg, 1, 255);
+    VTY_GET_INTEGER_RANGE("distance", distance, argv[idx_number_2]->arg, 1, 255);
   return (zebra_import_table(AFI_IP, table_id, distance, NULL, 1));
 
 }
@@ -5855,12 +6569,15 @@ DEFUN (ip_zebra_import_table_distance_routemap,
        "route-map for filtering\n"
        "route-map name\n")
 {
+  int idx_number = 2;
+  int idx_number_2 = 4;
+  int idx_word = 6;
   u_int32_t table_id = 0;
   int distance = ZEBRA_TABLE_DISTANCE_DEFAULT;
   const char *rmap_name;
 
   if (argc)
-    VTY_GET_INTEGER("table", table_id, argv[2]->arg);
+    VTY_GET_INTEGER("table", table_id, argv[idx_number]->arg);
 
   if (!is_zebra_valid_kernel_table(table_id))
     {
@@ -5878,11 +6595,11 @@ DEFUN (ip_zebra_import_table_distance_routemap,
 
   if (argc > 2)
     {
-      VTY_GET_INTEGER_RANGE("distance", distance, argv[4]->arg, 1, 255);
-      rmap_name =  XSTRDUP (MTYPE_ROUTE_MAP_NAME, argv[6]->arg);
+      VTY_GET_INTEGER_RANGE("distance", distance, argv[idx_number_2]->arg, 1, 255);
+      rmap_name =  XSTRDUP (MTYPE_ROUTE_MAP_NAME, argv[idx_word]->arg);
     }
   else
-    rmap_name = XSTRDUP (MTYPE_ROUTE_MAP_NAME, argv[4]->arg);
+    rmap_name = XSTRDUP (MTYPE_ROUTE_MAP_NAME, argv[idx_number_2]->arg);
 
   return (zebra_import_table(AFI_IP, table_id, distance, rmap_name, 1));
 }
@@ -5905,10 +6622,11 @@ DEFUN (no_ip_zebra_import_table,
        "import routes from non-main kernel table\n"
        "kernel routing table id\n")
 {
+  int idx_number = 3;
   u_int32_t table_id = 0;
 
   if (argc)
-    VTY_GET_INTEGER("table", table_id, argv[3]->arg);
+    VTY_GET_INTEGER("table", table_id, argv[idx_number]->arg);
 
   if (!is_zebra_valid_kernel_table(table_id))
     {