diff options
Diffstat (limited to 'lib/plist.c')
| -rw-r--r-- | lib/plist.c | 569 |
1 files changed, 394 insertions, 175 deletions
diff --git a/lib/plist.c b/lib/plist.c index 6f19565688..41cae020de 100644 --- a/lib/plist.c +++ b/lib/plist.c @@ -20,7 +20,6 @@ */ #include <zebra.h> -#include "lib/json.h" #include "prefix.h" #include "command.h" @@ -31,6 +30,7 @@ #include "stream.h" #include "log.h" #include "routemap.h" +#include "lib/json.h" #include "plist_int.h" @@ -103,7 +103,6 @@ static struct prefix_master prefix_master_ipv4 = PLC_MAXLEVELV4, }; -#ifdef HAVE_IPV6 /* Static structure of IPv6 prefix-list's master. */ static struct prefix_master prefix_master_ipv6 = { @@ -115,7 +114,6 @@ static struct prefix_master prefix_master_ipv6 = NULL, PLC_MAXLEVELV6, }; -#endif /* HAVE_IPV6*/ /* Static structure of BGP ORF prefix_list's master. */ static struct prefix_master prefix_master_orf_v4 = @@ -412,9 +410,7 @@ void prefix_list_add_hook (void (*func) (struct prefix_list *plist)) { prefix_master_ipv4.add_hook = func; -#ifdef HAVE_IPV6 prefix_master_ipv6.add_hook = func; -#endif /* HAVE_IPV6 */ } /* Delete hook function. */ @@ -422,9 +418,7 @@ void prefix_list_delete_hook (void (*func) (struct prefix_list *plist)) { prefix_master_ipv4.delete_hook = func; -#ifdef HAVE_IPV6 prefix_master_ipv6.delete_hook = func; -#endif /* HAVE_IPVt6 */ } /* Calculate new sequential number. */ @@ -1106,7 +1100,6 @@ vty_prefix_list_uninstall (struct vty *vty, afi_t afi, const char *name, return CMD_WARNING; } } -#ifdef HAVE_IPV6 else if (afi == AFI_IP6) { if (strncmp ("any", prefix, strlen (prefix)) == 0) @@ -1124,7 +1117,6 @@ vty_prefix_list_uninstall (struct vty *vty, afi_t afi, const char *name, return CMD_WARNING; } } -#endif /* HAVE_IPV6 */ /* Lookup prefix entry. */ pentry = prefix_list_entry_lookup(plist, &p, type, seqnum, lenum, genum); @@ -1424,7 +1416,7 @@ vty_clear_prefix_list (struct vty *vty, afi_t afi, const char *name, DEFUN (ip_prefix_list, ip_prefix_list_cmd, - "ip prefix-list WORD (deny|permit) (A.B.C.D/M|any)", + "ip prefix-list WORD <deny|permit> <A.B.C.D/M|any>", IP_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -1433,13 +1425,16 @@ DEFUN (ip_prefix_list, "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n" "Any prefix match. Same as \"0.0.0.0/0 le 32\"\n") { - return vty_prefix_list_install (vty, AFI_IP, argv[0], NULL, - argv[1], argv[2], NULL, NULL); + int idx_word = 2; + int idx_permit_deny = 3; + int idx_ipv4_any = 4; + return vty_prefix_list_install (vty, AFI_IP, argv[idx_word]->arg, NULL, + argv[idx_permit_deny]->arg, argv[idx_ipv4_any]->arg, NULL, NULL); } DEFUN (ip_prefix_list_ge, ip_prefix_list_ge_cmd, - "ip prefix-list WORD (deny|permit) A.B.C.D/M ge <0-32>", + "ip prefix-list WORD <deny|permit> A.B.C.D/M ge (0-32)", IP_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -1449,13 +1444,17 @@ DEFUN (ip_prefix_list_ge, "Minimum prefix length to be matched\n" "Minimum prefix length\n") { - return vty_prefix_list_install (vty, AFI_IP, argv[0], NULL, argv[1], - argv[2], argv[3], NULL); + int idx_word = 2; + int idx_permit_deny = 3; + int idx_ipv4_prefixlen = 4; + int idx_number = 6; + return vty_prefix_list_install (vty, AFI_IP, argv[idx_word]->arg, NULL, argv[idx_permit_deny]->arg, + argv[idx_ipv4_prefixlen]->arg, argv[idx_number]->arg, NULL); } DEFUN (ip_prefix_list_ge_le, ip_prefix_list_ge_le_cmd, - "ip prefix-list WORD (deny|permit) A.B.C.D/M ge <0-32> le <0-32>", + "ip prefix-list WORD <deny|permit> A.B.C.D/M ge (0-32) le (0-32)", IP_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -1467,13 +1466,18 @@ DEFUN (ip_prefix_list_ge_le, "Maximum prefix length to be matched\n" "Maximum prefix length\n") { - return vty_prefix_list_install (vty, AFI_IP, argv[0], NULL, argv[1], - argv[2], argv[3], argv[4]); + int idx_word = 2; + int idx_permit_deny = 3; + int idx_ipv4_prefixlen = 4; + int idx_number = 6; + int idx_number_2 = 8; + return vty_prefix_list_install (vty, AFI_IP, argv[idx_word]->arg, NULL, argv[idx_permit_deny]->arg, + argv[idx_ipv4_prefixlen]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg); } DEFUN (ip_prefix_list_le, ip_prefix_list_le_cmd, - "ip prefix-list WORD (deny|permit) A.B.C.D/M le <0-32>", + "ip prefix-list WORD <deny|permit> A.B.C.D/M le (0-32)", IP_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -1483,13 +1487,17 @@ DEFUN (ip_prefix_list_le, "Maximum prefix length to be matched\n" "Maximum prefix length\n") { - return vty_prefix_list_install (vty, AFI_IP, argv[0], NULL, argv[1], - argv[2], NULL, argv[3]); + int idx_word = 2; + int idx_permit_deny = 3; + int idx_ipv4_prefixlen = 4; + int idx_number = 6; + return vty_prefix_list_install (vty, AFI_IP, argv[idx_word]->arg, NULL, argv[idx_permit_deny]->arg, + argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_number]->arg); } DEFUN (ip_prefix_list_le_ge, ip_prefix_list_le_ge_cmd, - "ip prefix-list WORD (deny|permit) A.B.C.D/M le <0-32> ge <0-32>", + "ip prefix-list WORD <deny|permit> A.B.C.D/M le (0-32) ge (0-32)", IP_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -1501,13 +1509,18 @@ DEFUN (ip_prefix_list_le_ge, "Minimum prefix length to be matched\n" "Minimum prefix length\n") { - return vty_prefix_list_install (vty, AFI_IP, argv[0], NULL, argv[1], - argv[2], argv[4], argv[3]); + int idx_word = 2; + int idx_permit_deny = 3; + int idx_ipv4_prefixlen = 4; + int idx_number = 6; + int idx_number_2 = 8; + return vty_prefix_list_install (vty, AFI_IP, argv[idx_word]->arg, NULL, argv[idx_permit_deny]->arg, + argv[idx_ipv4_prefixlen]->arg, argv[idx_number_2]->arg, argv[idx_number]->arg); } DEFUN (ip_prefix_list_seq, ip_prefix_list_seq_cmd, - "ip prefix-list WORD seq <1-4294967295> (deny|permit) (A.B.C.D/M|any)", + "ip prefix-list WORD seq (1-4294967295) <deny|permit> <A.B.C.D/M|any>", IP_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -1518,13 +1531,17 @@ DEFUN (ip_prefix_list_seq, "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n" "Any prefix match. Same as \"0.0.0.0/0 le 32\"\n") { - return vty_prefix_list_install (vty, AFI_IP, argv[0], argv[1], argv[2], - argv[3], NULL, NULL); + int idx_word = 2; + int idx_number = 4; + int idx_permit_deny = 5; + int idx_ipv4_any = 6; + return vty_prefix_list_install (vty, AFI_IP, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv4_any]->arg, NULL, NULL); } DEFUN (ip_prefix_list_seq_ge, ip_prefix_list_seq_ge_cmd, - "ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M ge <0-32>", + "ip prefix-list WORD seq (1-4294967295) <deny|permit> A.B.C.D/M ge (0-32)", IP_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -1536,13 +1553,18 @@ DEFUN (ip_prefix_list_seq_ge, "Minimum prefix length to be matched\n" "Minimum prefix length\n") { - return vty_prefix_list_install (vty, AFI_IP, argv[0], argv[1], argv[2], - argv[3], argv[4], NULL); + int idx_word = 2; + int idx_number = 4; + int idx_permit_deny = 5; + int idx_ipv4_prefixlen = 6; + int idx_number_2 = 8; + return vty_prefix_list_install (vty, AFI_IP, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv4_prefixlen]->arg, argv[idx_number_2]->arg, NULL); } DEFUN (ip_prefix_list_seq_ge_le, ip_prefix_list_seq_ge_le_cmd, - "ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M ge <0-32> le <0-32>", + "ip prefix-list WORD seq (1-4294967295) <deny|permit> A.B.C.D/M ge (0-32) le (0-32)", IP_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -1556,13 +1578,19 @@ DEFUN (ip_prefix_list_seq_ge_le, "Maximum prefix length to be matched\n" "Maximum prefix length\n") { - return vty_prefix_list_install (vty, AFI_IP, argv[0], argv[1], argv[2], - argv[3], argv[4], argv[5]); + int idx_word = 2; + int idx_number = 4; + int idx_permit_deny = 5; + int idx_ipv4_prefixlen = 6; + int idx_number_2 = 8; + int idx_number_3 = 10; + return vty_prefix_list_install (vty, AFI_IP, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv4_prefixlen]->arg, argv[idx_number_2]->arg, argv[idx_number_3]->arg); } DEFUN (ip_prefix_list_seq_le, ip_prefix_list_seq_le_cmd, - "ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M le <0-32>", + "ip prefix-list WORD seq (1-4294967295) <deny|permit> A.B.C.D/M le (0-32)", IP_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -1574,13 +1602,18 @@ DEFUN (ip_prefix_list_seq_le, "Maximum prefix length to be matched\n" "Maximum prefix length\n") { - return vty_prefix_list_install (vty, AFI_IP, argv[0], argv[1], argv[2], - argv[3], NULL, argv[4]); + int idx_word = 2; + int idx_number = 4; + int idx_permit_deny = 5; + int idx_ipv4_prefixlen = 6; + int idx_number_2 = 8; + return vty_prefix_list_install (vty, AFI_IP, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_number_2]->arg); } DEFUN (ip_prefix_list_seq_le_ge, ip_prefix_list_seq_le_ge_cmd, - "ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M le <0-32> ge <0-32>", + "ip prefix-list WORD seq (1-4294967295) <deny|permit> A.B.C.D/M le (0-32) ge (0-32)", IP_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -1594,8 +1627,14 @@ DEFUN (ip_prefix_list_seq_le_ge, "Minimum prefix length to be matched\n" "Minimum prefix length\n") { - return vty_prefix_list_install (vty, AFI_IP, argv[0], argv[1], argv[2], - argv[3], argv[5], argv[4]); + int idx_word = 2; + int idx_number = 4; + int idx_permit_deny = 5; + int idx_ipv4_prefixlen = 6; + int idx_number_2 = 8; + int idx_number_3 = 10; + return vty_prefix_list_install (vty, AFI_IP, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv4_prefixlen]->arg, argv[idx_number_3]->arg, argv[idx_number_2]->arg); } DEFUN (no_ip_prefix_list, @@ -1606,13 +1645,14 @@ DEFUN (no_ip_prefix_list, PREFIX_LIST_STR "Name of a prefix list\n") { - return vty_prefix_list_uninstall (vty, AFI_IP, argv[0], NULL, NULL, + int idx_word = 3; + return vty_prefix_list_uninstall (vty, AFI_IP, argv[idx_word]->arg, NULL, NULL, NULL, NULL, NULL); } DEFUN (no_ip_prefix_list_prefix, no_ip_prefix_list_prefix_cmd, - "no ip prefix-list WORD (deny|permit) (A.B.C.D/M|any)", + "no ip prefix-list WORD <deny|permit> <A.B.C.D/M|any>", NO_STR IP_STR PREFIX_LIST_STR @@ -1622,13 +1662,16 @@ DEFUN (no_ip_prefix_list_prefix, "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n" "Any prefix match. Same as \"0.0.0.0/0 le 32\"\n") { - return vty_prefix_list_uninstall (vty, AFI_IP, argv[0], NULL, argv[1], - argv[2], NULL, NULL); + int idx_word = 3; + int idx_permit_deny = 4; + int idx_ipv4_any = 5; + return vty_prefix_list_uninstall (vty, AFI_IP, argv[idx_word]->arg, NULL, argv[idx_permit_deny]->arg, + argv[idx_ipv4_any]->arg, NULL, NULL); } DEFUN (no_ip_prefix_list_ge, no_ip_prefix_list_ge_cmd, - "no ip prefix-list WORD (deny|permit) A.B.C.D/M ge <0-32>", + "no ip prefix-list WORD <deny|permit> A.B.C.D/M ge (0-32)", NO_STR IP_STR PREFIX_LIST_STR @@ -1639,13 +1682,17 @@ DEFUN (no_ip_prefix_list_ge, "Minimum prefix length to be matched\n" "Minimum prefix length\n") { - return vty_prefix_list_uninstall (vty, AFI_IP, argv[0], NULL, argv[1], - argv[2], argv[3], NULL); + int idx_word = 3; + int idx_permit_deny = 4; + int idx_ipv4_prefixlen = 5; + int idx_number = 7; + return vty_prefix_list_uninstall (vty, AFI_IP, argv[idx_word]->arg, NULL, argv[idx_permit_deny]->arg, + argv[idx_ipv4_prefixlen]->arg, argv[idx_number]->arg, NULL); } DEFUN (no_ip_prefix_list_ge_le, no_ip_prefix_list_ge_le_cmd, - "no ip prefix-list WORD (deny|permit) A.B.C.D/M ge <0-32> le <0-32>", + "no ip prefix-list WORD <deny|permit> A.B.C.D/M ge (0-32) le (0-32)", NO_STR IP_STR PREFIX_LIST_STR @@ -1658,13 +1705,18 @@ DEFUN (no_ip_prefix_list_ge_le, "Maximum prefix length to be matched\n" "Maximum prefix length\n") { - return vty_prefix_list_uninstall (vty, AFI_IP, argv[0], NULL, argv[1], - argv[2], argv[3], argv[4]); + int idx_word = 3; + int idx_permit_deny = 4; + int idx_ipv4_prefixlen = 5; + int idx_number = 7; + int idx_number_2 = 9; + return vty_prefix_list_uninstall (vty, AFI_IP, argv[idx_word]->arg, NULL, argv[idx_permit_deny]->arg, + argv[idx_ipv4_prefixlen]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg); } DEFUN (no_ip_prefix_list_le, no_ip_prefix_list_le_cmd, - "no ip prefix-list WORD (deny|permit) A.B.C.D/M le <0-32>", + "no ip prefix-list WORD <deny|permit> A.B.C.D/M le (0-32)", NO_STR IP_STR PREFIX_LIST_STR @@ -1675,13 +1727,17 @@ DEFUN (no_ip_prefix_list_le, "Maximum prefix length to be matched\n" "Maximum prefix length\n") { - return vty_prefix_list_uninstall (vty, AFI_IP, argv[0], NULL, argv[1], - argv[2], NULL, argv[3]); + int idx_word = 3; + int idx_permit_deny = 4; + int idx_ipv4_prefixlen = 5; + int idx_number = 7; + return vty_prefix_list_uninstall (vty, AFI_IP, argv[idx_word]->arg, NULL, argv[idx_permit_deny]->arg, + argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_number]->arg); } DEFUN (no_ip_prefix_list_le_ge, no_ip_prefix_list_le_ge_cmd, - "no ip prefix-list WORD (deny|permit) A.B.C.D/M le <0-32> ge <0-32>", + "no ip prefix-list WORD <deny|permit> A.B.C.D/M le (0-32) ge (0-32)", NO_STR IP_STR PREFIX_LIST_STR @@ -1694,13 +1750,18 @@ DEFUN (no_ip_prefix_list_le_ge, "Minimum prefix length to be matched\n" "Minimum prefix length\n") { - return vty_prefix_list_uninstall (vty, AFI_IP, argv[0], NULL, argv[1], - argv[2], argv[4], argv[3]); + int idx_word = 3; + int idx_permit_deny = 4; + int idx_ipv4_prefixlen = 5; + int idx_number = 7; + int idx_number_2 = 9; + return vty_prefix_list_uninstall (vty, AFI_IP, argv[idx_word]->arg, NULL, argv[idx_permit_deny]->arg, + argv[idx_ipv4_prefixlen]->arg, argv[idx_number_2]->arg, argv[idx_number]->arg); } DEFUN (no_ip_prefix_list_seq, no_ip_prefix_list_seq_cmd, - "no ip prefix-list WORD seq <1-4294967295> (deny|permit) (A.B.C.D/M|any)", + "no ip prefix-list WORD seq (1-4294967295) <deny|permit> <A.B.C.D/M|any>", NO_STR IP_STR PREFIX_LIST_STR @@ -1712,13 +1773,17 @@ DEFUN (no_ip_prefix_list_seq, "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n" "Any prefix match. Same as \"0.0.0.0/0 le 32\"\n") { - return vty_prefix_list_uninstall (vty, AFI_IP, argv[0], argv[1], argv[2], - argv[3], NULL, NULL); + int idx_word = 3; + int idx_number = 5; + int idx_permit_deny = 6; + int idx_ipv4_any = 7; + return vty_prefix_list_uninstall (vty, AFI_IP, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv4_any]->arg, NULL, NULL); } DEFUN (no_ip_prefix_list_seq_ge, no_ip_prefix_list_seq_ge_cmd, - "no ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M ge <0-32>", + "no ip prefix-list WORD seq (1-4294967295) <deny|permit> A.B.C.D/M ge (0-32)", NO_STR IP_STR PREFIX_LIST_STR @@ -1731,13 +1796,18 @@ DEFUN (no_ip_prefix_list_seq_ge, "Minimum prefix length to be matched\n" "Minimum prefix length\n") { - return vty_prefix_list_uninstall (vty, AFI_IP, argv[0], argv[1], argv[2], - argv[3], argv[4], NULL); + int idx_word = 3; + int idx_number = 5; + int idx_permit_deny = 6; + int idx_ipv4_prefixlen = 7; + int idx_number_2 = 9; + return vty_prefix_list_uninstall (vty, AFI_IP, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv4_prefixlen]->arg, argv[idx_number_2]->arg, NULL); } DEFUN (no_ip_prefix_list_seq_ge_le, no_ip_prefix_list_seq_ge_le_cmd, - "no ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M ge <0-32> le <0-32>", + "no ip prefix-list WORD seq (1-4294967295) <deny|permit> A.B.C.D/M ge (0-32) le (0-32)", NO_STR IP_STR PREFIX_LIST_STR @@ -1752,13 +1822,19 @@ DEFUN (no_ip_prefix_list_seq_ge_le, "Maximum prefix length to be matched\n" "Maximum prefix length\n") { - return vty_prefix_list_uninstall (vty, AFI_IP, argv[0], argv[1], argv[2], - argv[3], argv[4], argv[5]); + int idx_word = 3; + int idx_number = 5; + int idx_permit_deny = 6; + int idx_ipv4_prefixlen = 7; + int idx_number_2 = 9; + int idx_number_3 = 11; + return vty_prefix_list_uninstall (vty, AFI_IP, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv4_prefixlen]->arg, argv[idx_number_2]->arg, argv[idx_number_3]->arg); } DEFUN (no_ip_prefix_list_seq_le, no_ip_prefix_list_seq_le_cmd, - "no ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M le <0-32>", + "no ip prefix-list WORD seq (1-4294967295) <deny|permit> A.B.C.D/M le (0-32)", NO_STR IP_STR PREFIX_LIST_STR @@ -1771,13 +1847,18 @@ DEFUN (no_ip_prefix_list_seq_le, "Maximum prefix length to be matched\n" "Maximum prefix length\n") { - return vty_prefix_list_uninstall (vty, AFI_IP, argv[0], argv[1], argv[2], - argv[3], NULL, argv[4]); + int idx_word = 3; + int idx_number = 5; + int idx_permit_deny = 6; + int idx_ipv4_prefixlen = 7; + int idx_number_2 = 9; + return vty_prefix_list_uninstall (vty, AFI_IP, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv4_prefixlen]->arg, NULL, argv[idx_number_2]->arg); } DEFUN (no_ip_prefix_list_seq_le_ge, no_ip_prefix_list_seq_le_ge_cmd, - "no ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M le <0-32> ge <0-32>", + "no ip prefix-list WORD seq (1-4294967295) <deny|permit> A.B.C.D/M le (0-32) ge (0-32)", NO_STR IP_STR PREFIX_LIST_STR @@ -1792,8 +1873,14 @@ DEFUN (no_ip_prefix_list_seq_le_ge, "Minimum prefix length to be matched\n" "Minimum prefix length\n") { - return vty_prefix_list_uninstall (vty, AFI_IP, argv[0], argv[1], argv[2], - argv[3], argv[5], argv[4]); + int idx_word = 3; + int idx_number = 5; + int idx_permit_deny = 6; + int idx_ipv4_prefixlen = 7; + int idx_number_2 = 9; + int idx_number_3 = 11; + return vty_prefix_list_uninstall (vty, AFI_IP, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv4_prefixlen]->arg, argv[idx_number_3]->arg, argv[idx_number_2]->arg); } DEFUN (ip_prefix_list_sequence_number, @@ -1821,26 +1908,28 @@ DEFUN (no_ip_prefix_list_sequence_number, DEFUN (ip_prefix_list_description, ip_prefix_list_description_cmd, - "ip prefix-list WORD description .LINE", + "ip prefix-list WORD description LINE...", IP_STR PREFIX_LIST_STR "Name of a prefix list\n" "Prefix-list specific description\n" "Up to 80 characters describing this prefix-list\n") { + int idx_word = 2; + int idx_line = 4; struct prefix_list *plist; - plist = prefix_list_get (AFI_IP, 0, argv[0]); + plist = prefix_list_get (AFI_IP, 0, argv[idx_word]->arg); if (plist->desc) { XFREE (MTYPE_TMP, plist->desc); plist->desc = NULL; } - plist->desc = argv_concat(argv, argc, 1); + plist->desc = argv_concat(argv, argc, idx_line); return CMD_SUCCESS; -} +} DEFUN (no_ip_prefix_list_description, no_ip_prefix_list_description_cmd, @@ -1851,18 +1940,23 @@ DEFUN (no_ip_prefix_list_description, "Name of a prefix list\n" "Prefix-list specific description\n") { - return vty_prefix_list_desc_unset (vty, AFI_IP, argv[0]); + int idx_word = 3; + return vty_prefix_list_desc_unset (vty, AFI_IP, argv[idx_word]->arg); } -ALIAS (no_ip_prefix_list_description, - no_ip_prefix_list_description_arg_cmd, - "no ip prefix-list WORD description .LINE", +/* ALIAS_FIXME */ +DEFUN (no_ip_prefix_list_description_comment, + no_ip_prefix_list_description_comment_cmd, + "no ip prefix-list WORD description LINE...", NO_STR IP_STR PREFIX_LIST_STR "Name of a prefix list\n" "Prefix-list specific description\n" "Up to 80 characters describing this prefix-list\n") +{ + return no_ip_prefix_list_description (self, vty, argc, argv); +} DEFUN (show_ip_prefix_list, show_ip_prefix_list_cmd, @@ -1882,12 +1976,13 @@ DEFUN (show_ip_prefix_list_name, PREFIX_LIST_STR "Name of a prefix list\n") { - return vty_show_prefix_list (vty, AFI_IP, argv[0], NULL, normal_display); + int idx_word = 3; + return vty_show_prefix_list (vty, AFI_IP, argv[idx_word]->arg, NULL, normal_display); } DEFUN (show_ip_prefix_list_name_seq, show_ip_prefix_list_name_seq_cmd, - "show ip prefix-list WORD seq <1-4294967295>", + "show ip prefix-list WORD seq (1-4294967295)", SHOW_STR IP_STR PREFIX_LIST_STR @@ -1895,7 +1990,9 @@ DEFUN (show_ip_prefix_list_name_seq, "sequence number of an entry\n" "Sequence number\n") { - return vty_show_prefix_list (vty, AFI_IP, argv[0], argv[1], sequential_display); + int idx_word = 3; + int idx_number = 5; + return vty_show_prefix_list (vty, AFI_IP, argv[idx_word]->arg, argv[idx_number]->arg, sequential_display); } DEFUN (show_ip_prefix_list_prefix, @@ -1907,7 +2004,9 @@ DEFUN (show_ip_prefix_list_prefix, "Name of a prefix list\n" "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n") { - return vty_show_prefix_list_prefix (vty, AFI_IP, argv[0], argv[1], normal_display); + int idx_word = 3; + int idx_ipv4_prefixlen = 4; + return vty_show_prefix_list_prefix (vty, AFI_IP, argv[idx_word]->arg, argv[idx_ipv4_prefixlen]->arg, normal_display); } DEFUN (show_ip_prefix_list_prefix_longer, @@ -1920,7 +2019,9 @@ DEFUN (show_ip_prefix_list_prefix_longer, "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n" "Lookup longer prefix\n") { - return vty_show_prefix_list_prefix (vty, AFI_IP, argv[0], argv[1], longer_display); + int idx_word = 3; + int idx_ipv4_prefixlen = 4; + return vty_show_prefix_list_prefix (vty, AFI_IP, argv[idx_word]->arg, argv[idx_ipv4_prefixlen]->arg, longer_display); } DEFUN (show_ip_prefix_list_prefix_first_match, @@ -1933,7 +2034,9 @@ DEFUN (show_ip_prefix_list_prefix_first_match, "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n" "First matched prefix\n") { - return vty_show_prefix_list_prefix (vty, AFI_IP, argv[0], argv[1], first_match_display); + int idx_word = 3; + int idx_ipv4_prefixlen = 4; + return vty_show_prefix_list_prefix (vty, AFI_IP, argv[idx_word]->arg, argv[idx_ipv4_prefixlen]->arg, first_match_display); } DEFUN (show_ip_prefix_list_summary, @@ -1956,7 +2059,8 @@ DEFUN (show_ip_prefix_list_summary_name, "Summary of prefix lists\n" "Name of a prefix list\n") { - return vty_show_prefix_list (vty, AFI_IP, argv[0], NULL, summary_display); + int idx_word = 4; + return vty_show_prefix_list (vty, AFI_IP, argv[idx_word]->arg, NULL, summary_display); } @@ -1980,7 +2084,8 @@ DEFUN (show_ip_prefix_list_detail_name, "Detail of prefix lists\n" "Name of a prefix list\n") { - return vty_show_prefix_list (vty, AFI_IP, argv[0], NULL, detail_display); + int idx_word = 4; + return vty_show_prefix_list (vty, AFI_IP, argv[idx_word]->arg, NULL, detail_display); } DEFUN (clear_ip_prefix_list, @@ -2001,7 +2106,8 @@ DEFUN (clear_ip_prefix_list_name, PREFIX_LIST_STR "Name of a prefix list\n") { - return vty_clear_prefix_list (vty, AFI_IP, argv[0], NULL); + int idx_word = 3; + return vty_clear_prefix_list (vty, AFI_IP, argv[idx_word]->arg, NULL); } DEFUN (clear_ip_prefix_list_name_prefix, @@ -2013,13 +2119,14 @@ DEFUN (clear_ip_prefix_list_name_prefix, "Name of a prefix list\n" "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n") { - return vty_clear_prefix_list (vty, AFI_IP, argv[0], argv[1]); + int idx_word = 3; + int idx_ipv4_prefixlen = 4; + return vty_clear_prefix_list (vty, AFI_IP, argv[idx_word]->arg, argv[idx_ipv4_prefixlen]->arg); } -#ifdef HAVE_IPV6 DEFUN (ipv6_prefix_list, ipv6_prefix_list_cmd, - "ipv6 prefix-list WORD (deny|permit) (X:X::X:X/M|any)", + "ipv6 prefix-list WORD <deny|permit> <X:X::X:X/M|any>", IPV6_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -2028,13 +2135,16 @@ DEFUN (ipv6_prefix_list, "IPv6 prefix <network>/<length>, e.g., 3ffe::/16\n" "Any prefix match. Same as \"::0/0 le 128\"\n") { - return vty_prefix_list_install (vty, AFI_IP6, argv[0], NULL, - argv[1], argv[2], NULL, NULL); + int idx_word = 2; + int idx_permit_deny = 3; + int idx_ipv6_any = 4; + return vty_prefix_list_install (vty, AFI_IP6, argv[idx_word]->arg, NULL, + argv[idx_permit_deny]->arg, argv[idx_ipv6_any]->arg, NULL, NULL); } DEFUN (ipv6_prefix_list_ge, ipv6_prefix_list_ge_cmd, - "ipv6 prefix-list WORD (deny|permit) X:X::X:X/M ge <0-128>", + "ipv6 prefix-list WORD <deny|permit> X:X::X:X/M ge (0-128)", IPV6_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -2044,13 +2154,17 @@ DEFUN (ipv6_prefix_list_ge, "Minimum prefix length to be matched\n" "Minimum prefix length\n") { - return vty_prefix_list_install (vty, AFI_IP6, argv[0], NULL, argv[1], - argv[2], argv[3], NULL); + int idx_word = 2; + int idx_permit_deny = 3; + int idx_ipv6_prefixlen = 4; + int idx_number = 6; + return vty_prefix_list_install (vty, AFI_IP6, argv[idx_word]->arg, NULL, argv[idx_permit_deny]->arg, + argv[idx_ipv6_prefixlen]->arg, argv[idx_number]->arg, NULL); } DEFUN (ipv6_prefix_list_ge_le, ipv6_prefix_list_ge_le_cmd, - "ipv6 prefix-list WORD (deny|permit) X:X::X:X/M ge <0-128> le <0-128>", + "ipv6 prefix-list WORD <deny|permit> X:X::X:X/M ge (0-128) le (0-128)", IPV6_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -2063,13 +2177,18 @@ DEFUN (ipv6_prefix_list_ge_le, "Maximum prefix length\n") { - return vty_prefix_list_install (vty, AFI_IP6, argv[0], NULL, argv[1], - argv[2], argv[3], argv[4]); + int idx_word = 2; + int idx_permit_deny = 3; + int idx_ipv6_prefixlen = 4; + int idx_number = 6; + int idx_number_2 = 8; + return vty_prefix_list_install (vty, AFI_IP6, argv[idx_word]->arg, NULL, argv[idx_permit_deny]->arg, + argv[idx_ipv6_prefixlen]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg); } DEFUN (ipv6_prefix_list_le, ipv6_prefix_list_le_cmd, - "ipv6 prefix-list WORD (deny|permit) X:X::X:X/M le <0-128>", + "ipv6 prefix-list WORD <deny|permit> X:X::X:X/M le (0-128)", IPV6_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -2079,13 +2198,17 @@ DEFUN (ipv6_prefix_list_le, "Maximum prefix length to be matched\n" "Maximum prefix length\n") { - return vty_prefix_list_install (vty, AFI_IP6, argv[0], NULL, argv[1], - argv[2], NULL, argv[3]); + int idx_word = 2; + int idx_permit_deny = 3; + int idx_ipv6_prefixlen = 4; + int idx_number = 6; + return vty_prefix_list_install (vty, AFI_IP6, argv[idx_word]->arg, NULL, argv[idx_permit_deny]->arg, + argv[idx_ipv6_prefixlen]->arg, NULL, argv[idx_number]->arg); } DEFUN (ipv6_prefix_list_le_ge, ipv6_prefix_list_le_ge_cmd, - "ipv6 prefix-list WORD (deny|permit) X:X::X:X/M le <0-128> ge <0-128>", + "ipv6 prefix-list WORD <deny|permit> X:X::X:X/M le (0-128) ge (0-128)", IPV6_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -2097,13 +2220,18 @@ DEFUN (ipv6_prefix_list_le_ge, "Minimum prefix length to be matched\n" "Minimum prefix length\n") { - return vty_prefix_list_install (vty, AFI_IP6, argv[0], NULL, argv[1], - argv[2], argv[4], argv[3]); + int idx_word = 2; + int idx_permit_deny = 3; + int idx_ipv6_prefixlen = 4; + int idx_number = 6; + int idx_number_2 = 8; + return vty_prefix_list_install (vty, AFI_IP6, argv[idx_word]->arg, NULL, argv[idx_permit_deny]->arg, + argv[idx_ipv6_prefixlen]->arg, argv[idx_number_2]->arg, argv[idx_number]->arg); } DEFUN (ipv6_prefix_list_seq, ipv6_prefix_list_seq_cmd, - "ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) (X:X::X:X/M|any)", + "ipv6 prefix-list WORD seq (1-4294967295) <deny|permit> <X:X::X:X/M|any>", IPV6_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -2114,13 +2242,17 @@ DEFUN (ipv6_prefix_list_seq, "IPv6 prefix <network>/<length>, e.g., 3ffe::/16\n" "Any prefix match. Same as \"::0/0 le 128\"\n") { - return vty_prefix_list_install (vty, AFI_IP6, argv[0], argv[1], argv[2], - argv[3], NULL, NULL); + int idx_word = 2; + int idx_number = 4; + int idx_permit_deny = 5; + int idx_ipv6_any = 6; + return vty_prefix_list_install (vty, AFI_IP6, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv6_any]->arg, NULL, NULL); } DEFUN (ipv6_prefix_list_seq_ge, ipv6_prefix_list_seq_ge_cmd, - "ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M ge <0-128>", + "ipv6 prefix-list WORD seq (1-4294967295) <deny|permit> X:X::X:X/M ge (0-128)", IPV6_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -2132,13 +2264,18 @@ DEFUN (ipv6_prefix_list_seq_ge, "Minimum prefix length to be matched\n" "Minimum prefix length\n") { - return vty_prefix_list_install (vty, AFI_IP6, argv[0], argv[1], argv[2], - argv[3], argv[4], NULL); + int idx_word = 2; + int idx_number = 4; + int idx_permit_deny = 5; + int idx_ipv6_prefixlen = 6; + int idx_number_2 = 8; + return vty_prefix_list_install (vty, AFI_IP6, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv6_prefixlen]->arg, argv[idx_number_2]->arg, NULL); } DEFUN (ipv6_prefix_list_seq_ge_le, ipv6_prefix_list_seq_ge_le_cmd, - "ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M ge <0-128> le <0-128>", + "ipv6 prefix-list WORD seq (1-4294967295) <deny|permit> X:X::X:X/M ge (0-128) le (0-128)", IPV6_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -2152,13 +2289,19 @@ DEFUN (ipv6_prefix_list_seq_ge_le, "Maximum prefix length to be matched\n" "Maximum prefix length\n") { - return vty_prefix_list_install (vty, AFI_IP6, argv[0], argv[1], argv[2], - argv[3], argv[4], argv[5]); + int idx_word = 2; + int idx_number = 4; + int idx_permit_deny = 5; + int idx_ipv6_prefixlen = 6; + int idx_number_2 = 8; + int idx_number_3 = 10; + return vty_prefix_list_install (vty, AFI_IP6, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv6_prefixlen]->arg, argv[idx_number_2]->arg, argv[idx_number_3]->arg); } DEFUN (ipv6_prefix_list_seq_le, ipv6_prefix_list_seq_le_cmd, - "ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M le <0-128>", + "ipv6 prefix-list WORD seq (1-4294967295) <deny|permit> X:X::X:X/M le (0-128)", IPV6_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -2170,13 +2313,18 @@ DEFUN (ipv6_prefix_list_seq_le, "Maximum prefix length to be matched\n" "Maximum prefix length\n") { - return vty_prefix_list_install (vty, AFI_IP6, argv[0], argv[1], argv[2], - argv[3], NULL, argv[4]); + int idx_word = 2; + int idx_number = 4; + int idx_permit_deny = 5; + int idx_ipv6_prefixlen = 6; + int idx_number_2 = 8; + return vty_prefix_list_install (vty, AFI_IP6, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv6_prefixlen]->arg, NULL, argv[idx_number_2]->arg); } DEFUN (ipv6_prefix_list_seq_le_ge, ipv6_prefix_list_seq_le_ge_cmd, - "ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M le <0-128> ge <0-128>", + "ipv6 prefix-list WORD seq (1-4294967295) <deny|permit> X:X::X:X/M le (0-128) ge (0-128)", IPV6_STR PREFIX_LIST_STR "Name of a prefix list\n" @@ -2190,8 +2338,14 @@ DEFUN (ipv6_prefix_list_seq_le_ge, "Minimum prefix length to be matched\n" "Minimum prefix length\n") { - return vty_prefix_list_install (vty, AFI_IP6, argv[0], argv[1], argv[2], - argv[3], argv[5], argv[4]); + int idx_word = 2; + int idx_number = 4; + int idx_permit_deny = 5; + int idx_ipv6_prefixlen = 6; + int idx_number_2 = 8; + int idx_number_3 = 10; + return vty_prefix_list_install (vty, AFI_IP6, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv6_prefixlen]->arg, argv[idx_number_3]->arg, argv[idx_number_2]->arg); } DEFUN (no_ipv6_prefix_list, @@ -2202,13 +2356,14 @@ DEFUN (no_ipv6_prefix_list, PREFIX_LIST_STR "Name of a prefix list\n") { - return vty_prefix_list_uninstall (vty, AFI_IP6, argv[0], NULL, NULL, + int idx_word = 3; + return vty_prefix_list_uninstall (vty, AFI_IP6, argv[idx_word]->arg, NULL, NULL, NULL, NULL, NULL); } DEFUN (no_ipv6_prefix_list_prefix, no_ipv6_prefix_list_prefix_cmd, - "no ipv6 prefix-list WORD (deny|permit) (X:X::X:X/M|any)", + "no ipv6 prefix-list WORD <deny|permit> <X:X::X:X/M|any>", NO_STR IPV6_STR PREFIX_LIST_STR @@ -2218,13 +2373,16 @@ DEFUN (no_ipv6_prefix_list_prefix, "IPv6 prefix <network>/<length>, e.g., 3ffe::/16\n" "Any prefix match. Same as \"::0/0 le 128\"\n") { - return vty_prefix_list_uninstall (vty, AFI_IP6, argv[0], NULL, argv[1], - argv[2], NULL, NULL); + int idx_word = 3; + int idx_permit_deny = 4; + int idx_ipv6_any = 5; + return vty_prefix_list_uninstall (vty, AFI_IP6, argv[idx_word]->arg, NULL, argv[idx_permit_deny]->arg, + argv[idx_ipv6_any]->arg, NULL, NULL); } DEFUN (no_ipv6_prefix_list_ge, no_ipv6_prefix_list_ge_cmd, - "no ipv6 prefix-list WORD (deny|permit) X:X::X:X/M ge <0-128>", + "no ipv6 prefix-list WORD <deny|permit> X:X::X:X/M ge (0-128)", NO_STR IPV6_STR PREFIX_LIST_STR @@ -2235,13 +2393,17 @@ DEFUN (no_ipv6_prefix_list_ge, "Minimum prefix length to be matched\n" "Minimum prefix length\n") { - return vty_prefix_list_uninstall (vty, AFI_IP6, argv[0], NULL, argv[1], - argv[2], argv[3], NULL); + int idx_word = 3; + int idx_permit_deny = 4; + int idx_ipv6_prefixlen = 5; + int idx_number = 7; + return vty_prefix_list_uninstall (vty, AFI_IP6, argv[idx_word]->arg, NULL, argv[idx_permit_deny]->arg, + argv[idx_ipv6_prefixlen]->arg, argv[idx_number]->arg, NULL); } DEFUN (no_ipv6_prefix_list_ge_le, no_ipv6_prefix_list_ge_le_cmd, - "no ipv6 prefix-list WORD (deny|permit) X:X::X:X/M ge <0-128> le <0-128>", + "no ipv6 prefix-list WORD <deny|permit> X:X::X:X/M ge (0-128) le (0-128)", NO_STR IPV6_STR PREFIX_LIST_STR @@ -2254,13 +2416,18 @@ DEFUN (no_ipv6_prefix_list_ge_le, "Maximum prefix length to be matched\n" "Maximum prefix length\n") { - return vty_prefix_list_uninstall (vty, AFI_IP6, argv[0], NULL, argv[1], - argv[2], argv[3], argv[4]); + int idx_word = 3; + int idx_permit_deny = 4; + int idx_ipv6_prefixlen = 5; + int idx_number = 7; + int idx_number_2 = 9; + return vty_prefix_list_uninstall (vty, AFI_IP6, argv[idx_word]->arg, NULL, argv[idx_permit_deny]->arg, + argv[idx_ipv6_prefixlen]->arg, argv[idx_number]->arg, argv[idx_number_2]->arg); } DEFUN (no_ipv6_prefix_list_le, no_ipv6_prefix_list_le_cmd, - "no ipv6 prefix-list WORD (deny|permit) X:X::X:X/M le <0-128>", + "no ipv6 prefix-list WORD <deny|permit> X:X::X:X/M le (0-128)", NO_STR IPV6_STR PREFIX_LIST_STR @@ -2271,13 +2438,17 @@ DEFUN (no_ipv6_prefix_list_le, "Maximum prefix length to be matched\n" "Maximum prefix length\n") { - return vty_prefix_list_uninstall (vty, AFI_IP6, argv[0], NULL, argv[1], - argv[2], NULL, argv[3]); + int idx_word = 3; + int idx_permit_deny = 4; + int idx_ipv6_prefixlen = 5; + int idx_number = 7; + return vty_prefix_list_uninstall (vty, AFI_IP6, argv[idx_word]->arg, NULL, argv[idx_permit_deny]->arg, + argv[idx_ipv6_prefixlen]->arg, NULL, argv[idx_number]->arg); } DEFUN (no_ipv6_prefix_list_le_ge, no_ipv6_prefix_list_le_ge_cmd, - "no ipv6 prefix-list WORD (deny|permit) X:X::X:X/M le <0-128> ge <0-128>", + "no ipv6 prefix-list WORD <deny|permit> X:X::X:X/M le (0-128) ge (0-128)", NO_STR IPV6_STR PREFIX_LIST_STR @@ -2290,13 +2461,18 @@ DEFUN (no_ipv6_prefix_list_le_ge, "Minimum prefix length to be matched\n" "Minimum prefix length\n") { - return vty_prefix_list_uninstall (vty, AFI_IP6, argv[0], NULL, argv[1], - argv[2], argv[4], argv[3]); + int idx_word = 3; + int idx_permit_deny = 4; + int idx_ipv6_prefixlen = 5; + int idx_number = 7; + int idx_number_2 = 9; + return vty_prefix_list_uninstall (vty, AFI_IP6, argv[idx_word]->arg, NULL, argv[idx_permit_deny]->arg, + argv[idx_ipv6_prefixlen]->arg, argv[idx_number_2]->arg, argv[idx_number]->arg); } DEFUN (no_ipv6_prefix_list_seq, no_ipv6_prefix_list_seq_cmd, - "no ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) (X:X::X:X/M|any)", + "no ipv6 prefix-list WORD seq (1-4294967295) <deny|permit> <X:X::X:X/M|any>", NO_STR IPV6_STR PREFIX_LIST_STR @@ -2308,13 +2484,17 @@ DEFUN (no_ipv6_prefix_list_seq, "IPv6 prefix <network>/<length>, e.g., 3ffe::/16\n" "Any prefix match. Same as \"::0/0 le 128\"\n") { - return vty_prefix_list_uninstall (vty, AFI_IP6, argv[0], argv[1], argv[2], - argv[3], NULL, NULL); + int idx_word = 3; + int idx_number = 5; + int idx_permit_deny = 6; + int idx_ipv6_any = 7; + return vty_prefix_list_uninstall (vty, AFI_IP6, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv6_any]->arg, NULL, NULL); } DEFUN (no_ipv6_prefix_list_seq_ge, no_ipv6_prefix_list_seq_ge_cmd, - "no ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M ge <0-128>", + "no ipv6 prefix-list WORD seq (1-4294967295) <deny|permit> X:X::X:X/M ge (0-128)", NO_STR IPV6_STR PREFIX_LIST_STR @@ -2327,13 +2507,18 @@ DEFUN (no_ipv6_prefix_list_seq_ge, "Minimum prefix length to be matched\n" "Minimum prefix length\n") { - return vty_prefix_list_uninstall (vty, AFI_IP6, argv[0], argv[1], argv[2], - argv[3], argv[4], NULL); + int idx_word = 3; + int idx_number = 5; + int idx_permit_deny = 6; + int idx_ipv6_prefixlen = 7; + int idx_number_2 = 9; + return vty_prefix_list_uninstall (vty, AFI_IP6, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv6_prefixlen]->arg, argv[idx_number_2]->arg, NULL); } DEFUN (no_ipv6_prefix_list_seq_ge_le, no_ipv6_prefix_list_seq_ge_le_cmd, - "no ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M ge <0-128> le <0-128>", + "no ipv6 prefix-list WORD seq (1-4294967295) <deny|permit> X:X::X:X/M ge (0-128) le (0-128)", NO_STR IPV6_STR PREFIX_LIST_STR @@ -2348,13 +2533,19 @@ DEFUN (no_ipv6_prefix_list_seq_ge_le, "Maximum prefix length to be matched\n" "Maximum prefix length\n") { - return vty_prefix_list_uninstall (vty, AFI_IP6, argv[0], argv[1], argv[2], - argv[3], argv[4], argv[5]); + int idx_word = 3; + int idx_number = 5; + int idx_permit_deny = 6; + int idx_ipv6_prefixlen = 7; + int idx_number_2 = 9; + int idx_number_3 = 11; + return vty_prefix_list_uninstall (vty, AFI_IP6, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv6_prefixlen]->arg, argv[idx_number_2]->arg, argv[idx_number_3]->arg); } DEFUN (no_ipv6_prefix_list_seq_le, no_ipv6_prefix_list_seq_le_cmd, - "no ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M le <0-128>", + "no ipv6 prefix-list WORD seq (1-4294967295) <deny|permit> X:X::X:X/M le (0-128)", NO_STR IPV6_STR PREFIX_LIST_STR @@ -2367,13 +2558,18 @@ DEFUN (no_ipv6_prefix_list_seq_le, "Maximum prefix length to be matched\n" "Maximum prefix length\n") { - return vty_prefix_list_uninstall (vty, AFI_IP6, argv[0], argv[1], argv[2], - argv[3], NULL, argv[4]); + int idx_word = 3; + int idx_number = 5; + int idx_permit_deny = 6; + int idx_ipv6_prefixlen = 7; + int idx_number_2 = 9; + return vty_prefix_list_uninstall (vty, AFI_IP6, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv6_prefixlen]->arg, NULL, argv[idx_number_2]->arg); } DEFUN (no_ipv6_prefix_list_seq_le_ge, no_ipv6_prefix_list_seq_le_ge_cmd, - "no ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M le <0-128> ge <0-128>", + "no ipv6 prefix-list WORD seq (1-4294967295) <deny|permit> X:X::X:X/M le (0-128) ge (0-128)", NO_STR IPV6_STR PREFIX_LIST_STR @@ -2388,8 +2584,14 @@ DEFUN (no_ipv6_prefix_list_seq_le_ge, "Minimum prefix length to be matched\n" "Minimum prefix length\n") { - return vty_prefix_list_uninstall (vty, AFI_IP6, argv[0], argv[1], argv[2], - argv[3], argv[5], argv[4]); + int idx_word = 3; + int idx_number = 5; + int idx_permit_deny = 6; + int idx_ipv6_prefixlen = 7; + int idx_number_2 = 9; + int idx_number_3 = 11; + return vty_prefix_list_uninstall (vty, AFI_IP6, argv[idx_word]->arg, argv[idx_number]->arg, argv[idx_permit_deny]->arg, + argv[idx_ipv6_prefixlen]->arg, argv[idx_number_3]->arg, argv[idx_number_2]->arg); } DEFUN (ipv6_prefix_list_sequence_number, @@ -2417,26 +2619,28 @@ DEFUN (no_ipv6_prefix_list_sequence_number, DEFUN (ipv6_prefix_list_description, ipv6_prefix_list_description_cmd, - "ipv6 prefix-list WORD description .LINE", + "ipv6 prefix-list WORD description LINE...", IPV6_STR PREFIX_LIST_STR "Name of a prefix list\n" "Prefix-list specific description\n" "Up to 80 characters describing this prefix-list\n") { + int idx_word = 2; + int iddx_line = 4; struct prefix_list *plist; - plist = prefix_list_get (AFI_IP6, 0, argv[0]); + plist = prefix_list_get (AFI_IP6, 0, argv[idx_word]->arg); if (plist->desc) { XFREE (MTYPE_TMP, plist->desc); plist->desc = NULL; } - plist->desc = argv_concat(argv, argc, 1); + plist->desc = argv_concat(argv, argc, iddx_line); return CMD_SUCCESS; -} +} DEFUN (no_ipv6_prefix_list_description, no_ipv6_prefix_list_description_cmd, @@ -2447,18 +2651,24 @@ DEFUN (no_ipv6_prefix_list_description, "Name of a prefix list\n" "Prefix-list specific description\n") { - return vty_prefix_list_desc_unset (vty, AFI_IP6, argv[0]); + int idx_word = 3; + return vty_prefix_list_desc_unset (vty, AFI_IP6, argv[idx_word]->arg); } -ALIAS (no_ipv6_prefix_list_description, - no_ipv6_prefix_list_description_arg_cmd, - "no ipv6 prefix-list WORD description .LINE", +/* ALIAS_FIXME */ +DEFUN (no_ipv6_prefix_list_description_comment, + no_ipv6_prefix_list_description_comment_cmd, + "no ipv6 prefix-list WORD description LINE...", NO_STR IPV6_STR PREFIX_LIST_STR "Name of a prefix list\n" "Prefix-list specific description\n" "Up to 80 characters describing this prefix-list\n") +{ + return no_ipv6_prefix_list_description (self, vty, argc, argv); +} + DEFUN (show_ipv6_prefix_list, show_ipv6_prefix_list_cmd, @@ -2478,12 +2688,13 @@ DEFUN (show_ipv6_prefix_list_name, PREFIX_LIST_STR "Name of a prefix list\n") { - return vty_show_prefix_list (vty, AFI_IP6, argv[0], NULL, normal_display); + int idx_word = 3; + return vty_show_prefix_list (vty, AFI_IP6, argv[idx_word]->arg, NULL, normal_display); } DEFUN (show_ipv6_prefix_list_name_seq, show_ipv6_prefix_list_name_seq_cmd, - "show ipv6 prefix-list WORD seq <1-4294967295>", + "show ipv6 prefix-list WORD seq (1-4294967295)", SHOW_STR IPV6_STR PREFIX_LIST_STR @@ -2491,7 +2702,9 @@ DEFUN (show_ipv6_prefix_list_name_seq, "sequence number of an entry\n" "Sequence number\n") { - return vty_show_prefix_list (vty, AFI_IP6, argv[0], argv[1], sequential_display); + int idx_word = 3; + int idx_number = 5; + return vty_show_prefix_list (vty, AFI_IP6, argv[idx_word]->arg, argv[idx_number]->arg, sequential_display); } DEFUN (show_ipv6_prefix_list_prefix, @@ -2503,7 +2716,9 @@ DEFUN (show_ipv6_prefix_list_prefix, "Name of a prefix list\n" "IPv6 prefix <network>/<length>, e.g., 3ffe::/16\n") { - return vty_show_prefix_list_prefix (vty, AFI_IP6, argv[0], argv[1], normal_display); + int idx_word = 3; + int idx_ipv6_prefixlen = 4; + return vty_show_prefix_list_prefix (vty, AFI_IP6, argv[idx_word]->arg, argv[idx_ipv6_prefixlen]->arg, normal_display); } DEFUN (show_ipv6_prefix_list_prefix_longer, @@ -2516,7 +2731,9 @@ DEFUN (show_ipv6_prefix_list_prefix_longer, "IPv6 prefix <network>/<length>, e.g., 3ffe::/16\n" "Lookup longer prefix\n") { - return vty_show_prefix_list_prefix (vty, AFI_IP6, argv[0], argv[1], longer_display); + int idx_word = 3; + int idx_ipv6_prefixlen = 4; + return vty_show_prefix_list_prefix (vty, AFI_IP6, argv[idx_word]->arg, argv[idx_ipv6_prefixlen]->arg, longer_display); } DEFUN (show_ipv6_prefix_list_prefix_first_match, @@ -2529,7 +2746,9 @@ DEFUN (show_ipv6_prefix_list_prefix_first_match, "IPv6 prefix <network>/<length>, e.g., 3ffe::/16\n" "First matched prefix\n") { - return vty_show_prefix_list_prefix (vty, AFI_IP6, argv[0], argv[1], first_match_display); + int idx_word = 3; + int idx_ipv6_prefixlen = 4; + return vty_show_prefix_list_prefix (vty, AFI_IP6, argv[idx_word]->arg, argv[idx_ipv6_prefixlen]->arg, first_match_display); } DEFUN (show_ipv6_prefix_list_summary, @@ -2552,7 +2771,8 @@ DEFUN (show_ipv6_prefix_list_summary_name, "Summary of prefix lists\n" "Name of a prefix list\n") { - return vty_show_prefix_list (vty, AFI_IP6, argv[0], NULL, summary_display); + int idx_word = 4; + return vty_show_prefix_list (vty, AFI_IP6, argv[idx_word]->arg, NULL, summary_display); } DEFUN (show_ipv6_prefix_list_detail, @@ -2575,7 +2795,8 @@ DEFUN (show_ipv6_prefix_list_detail_name, "Detail of prefix lists\n" "Name of a prefix list\n") { - return vty_show_prefix_list (vty, AFI_IP6, argv[0], NULL, detail_display); + int idx_word = 4; + return vty_show_prefix_list (vty, AFI_IP6, argv[idx_word]->arg, NULL, detail_display); } DEFUN (clear_ipv6_prefix_list, @@ -2596,7 +2817,8 @@ DEFUN (clear_ipv6_prefix_list_name, PREFIX_LIST_STR "Name of a prefix list\n") { - return vty_clear_prefix_list (vty, AFI_IP6, argv[0], NULL); + int idx_word = 3; + return vty_clear_prefix_list (vty, AFI_IP6, argv[idx_word]->arg, NULL); } DEFUN (clear_ipv6_prefix_list_name_prefix, @@ -2608,9 +2830,10 @@ DEFUN (clear_ipv6_prefix_list_name_prefix, "Name of a prefix list\n" "IPv6 prefix <network>/<length>, e.g., 3ffe::/16\n") { - return vty_clear_prefix_list (vty, AFI_IP6, argv[0], argv[1]); + int idx_word = 3; + int idx_ipv6_prefixlen = 4; + return vty_clear_prefix_list (vty, AFI_IP6, argv[idx_word]->arg, argv[idx_ipv6_prefixlen]->arg); } -#endif /* HAVE_IPV6 */ /* Configuration write function. */ static int @@ -2964,7 +3187,7 @@ prefix_list_init_ipv4 (void) install_element (CONFIG_NODE, &ip_prefix_list_description_cmd); install_element (CONFIG_NODE, &no_ip_prefix_list_description_cmd); - install_element (CONFIG_NODE, &no_ip_prefix_list_description_arg_cmd); + install_element (CONFIG_NODE, &no_ip_prefix_list_description_comment_cmd); install_element (CONFIG_NODE, &ip_prefix_list_sequence_number_cmd); install_element (CONFIG_NODE, &no_ip_prefix_list_sequence_number_cmd); @@ -2985,7 +3208,6 @@ prefix_list_init_ipv4 (void) install_element (ENABLE_NODE, &clear_ip_prefix_list_name_prefix_cmd); } -#ifdef HAVE_IPV6 /* Prefix-list node. */ static struct cmd_node prefix_ipv6_node = { @@ -3030,7 +3252,7 @@ prefix_list_init_ipv6 (void) install_element (CONFIG_NODE, &ipv6_prefix_list_description_cmd); install_element (CONFIG_NODE, &no_ipv6_prefix_list_description_cmd); - install_element (CONFIG_NODE, &no_ipv6_prefix_list_description_arg_cmd); + install_element (CONFIG_NODE, &no_ipv6_prefix_list_description_comment_cmd); install_element (CONFIG_NODE, &ipv6_prefix_list_sequence_number_cmd); install_element (CONFIG_NODE, &no_ipv6_prefix_list_sequence_number_cmd); @@ -3050,15 +3272,12 @@ prefix_list_init_ipv6 (void) install_element (ENABLE_NODE, &clear_ipv6_prefix_list_name_cmd); install_element (ENABLE_NODE, &clear_ipv6_prefix_list_name_prefix_cmd); } -#endif /* HAVE_IPV6 */ void prefix_list_init () { prefix_list_init_ipv4 (); -#ifdef HAVE_IPV6 prefix_list_init_ipv6 (); -#endif /* HAVE_IPV6 */ } void |
