]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/plist.c
frr: Remove HAVE_IPV6 from code base
[mirror_frr.git] / lib / plist.c
index 7bb80fa2a4608e66aeab98b0f2a11da5825c44a5..279c85d6d6e416864b29dbdcd8cc713e966c9dfd 100644 (file)
@@ -20,7 +20,6 @@
  */
 
 #include <zebra.h>
-#include "lib/json.h"
 
 #include "prefix.h"
 #include "command.h"
 #include "stream.h"
 #include "log.h"
 #include "routemap.h"
+#include "lib/json.h"
 
 #include "plist_int.h"
 
+DEFINE_MTYPE_STATIC(LIB, PREFIX_LIST,       "Prefix List")
+DEFINE_MTYPE_STATIC(LIB, MPREFIX_LIST_STR,  "Prefix List Str")
+DEFINE_MTYPE_STATIC(LIB, PREFIX_LIST_ENTRY, "Prefix List Entry")
+DEFINE_MTYPE_STATIC(LIB, PREFIX_LIST_TRIE,  "Prefix List Trie Table")
+
 /* not currently changeable, code assumes bytes further down */
 #define PLC_BITS       8
 #define PLC_LEN                (1 << PLC_BITS)
@@ -98,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 = 
 { 
@@ -110,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 =
@@ -236,7 +239,7 @@ prefix_list_insert (afi_t afi, int orf, const char *name)
 
   /* Allocate new prefix_list and copy given name. */
   plist = prefix_list_new ();
-  plist->name = XSTRDUP (MTYPE_PREFIX_LIST_STR, name);
+  plist->name = XSTRDUP (MTYPE_MPREFIX_LIST_STR, name);
   plist->master = master;
   plist->trie = XCALLOC (MTYPE_PREFIX_LIST_TRIE, sizeof (struct pltrie_table));
 
@@ -370,7 +373,7 @@ prefix_list_delete (struct prefix_list *plist)
     (*master->delete_hook) (plist);
 
   if (plist->name)
-    XFREE (MTYPE_PREFIX_LIST_STR, plist->name);
+    XFREE (MTYPE_MPREFIX_LIST_STR, plist->name);
 
   XFREE (MTYPE_PREFIX_LIST_TRIE, plist->trie);
 
@@ -403,9 +406,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. */
@@ -413,9 +414,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. */
@@ -894,7 +893,7 @@ vty_prefix_list_install (struct vty *vty, afi_t afi, const char *name,
   struct prefix_list *plist;
   struct prefix_list_entry *pentry;
   struct prefix_list_entry *dup;
-  struct prefix p;
+  struct prefix p, p_tmp;
   int any = 0;
   int seqnum = -1;
   int lenum = 0;
@@ -940,6 +939,11 @@ vty_prefix_list_install (struct vty *vty, afi_t afi, const char *name,
          vty_out (vty, "%% Malformed IPv4 prefix%s", VTY_NEWLINE);
          return CMD_WARNING;
        }
+
+      /* make a copy to verify prefix matches mask length */
+      prefix_copy (&p_tmp, &p);
+      apply_mask_ipv4 ((struct prefix_ipv4 *) &p_tmp);
+
       break;
     case AFI_IP6:
       if (strncmp ("any", prefix, strlen (prefix)) == 0)
@@ -957,6 +961,11 @@ vty_prefix_list_install (struct vty *vty, afi_t afi, const char *name,
          vty_out (vty, "%% Malformed IPv6 prefix%s", VTY_NEWLINE);
          return CMD_WARNING;
        }
+
+      /* make a copy to verify prefix matches mask length */
+      prefix_copy (&p_tmp, &p);
+      apply_mask_ipv6 ((struct prefix_ipv6 *) &p_tmp);
+
       break;
     case AFI_ETHER:
     default:
@@ -965,6 +974,18 @@ vty_prefix_list_install (struct vty *vty, afi_t afi, const char *name,
       break;
     }
 
+  /* If prefix has bits not under the mask, adjust it to fit */
+  if (!prefix_same (&p_tmp, &p))
+    {
+      char buf[PREFIX2STR_BUFFER];
+      char buf_tmp[PREFIX2STR_BUFFER];
+      prefix2str(&p, buf, sizeof(buf));
+      prefix2str(&p_tmp, buf_tmp, sizeof(buf_tmp));
+      zlog_warn ("Prefix-list %s prefix changed from %s to %s to match length",
+                 name, buf, buf_tmp);
+      p = p_tmp;
+    }
+
   /* ge and le check. */
   if (genum && (genum <= p.prefixlen))
     return vty_invalid_prefix_range (vty, prefix);
@@ -990,14 +1011,6 @@ vty_prefix_list_install (struct vty *vty, afi_t afi, const char *name,
   if (dup)
     {
       prefix_list_entry_free (pentry);
-      vty_out (vty, "%% Insertion failed - prefix-list entry exists:%s",
-              VTY_NEWLINE);
-      vty_out (vty, "   seq %u %s %s", dup->seq, typestr, prefix);
-      if (! any && genum)
-       vty_out (vty, " ge %d", genum);
-      if (! any && lenum)
-       vty_out (vty, " le %d", lenum);
-      vty_out (vty, "%s", VTY_NEWLINE);
       return CMD_SUCCESS;
     }
 
@@ -1083,7 +1096,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)
@@ -1101,7 +1113,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);
@@ -1401,7 +1412,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"
@@ -1410,13 +1421,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"
@@ -1426,13 +1440,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"
@@ -1444,13 +1462,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"
@@ -1460,13 +1483,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"
@@ -1478,13 +1505,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"
@@ -1495,13 +1527,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"
@@ -1513,13 +1549,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"
@@ -1533,13 +1574,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"
@@ -1551,13 +1598,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"
@@ -1571,8 +1623,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,
@@ -1583,13 +1641,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
@@ -1599,13 +1658,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
@@ -1616,13 +1678,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
@@ -1635,13 +1701,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
@@ -1652,13 +1723,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
@@ -1671,13 +1746,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
@@ -1689,13 +1769,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
@@ -1708,13 +1792,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
@@ -1729,13 +1818,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
@@ -1748,13 +1843,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
@@ -1769,8 +1869,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,
@@ -1798,26 +1904,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,
@@ -1828,18 +1936,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,
@@ -1859,12 +1972,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
@@ -1872,7 +1986,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,
@@ -1884,7 +2000,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,
@@ -1897,7 +2015,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,
@@ -1910,7 +2030,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,
@@ -1933,7 +2055,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);
 }
 
 
@@ -1957,7 +2080,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,
@@ -1978,7 +2102,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,
@@ -1990,13 +2115,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"
@@ -2005,13 +2131,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"
@@ -2021,13 +2150,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"
@@ -2040,13 +2173,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"
@@ -2056,13 +2194,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"
@@ -2074,13 +2216,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"
@@ -2091,13 +2238,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"
@@ -2109,13 +2260,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"
@@ -2129,13 +2285,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"
@@ -2147,13 +2309,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"
@@ -2167,8 +2334,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,
@@ -2179,13 +2352,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
@@ -2195,13 +2369,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
@@ -2212,13 +2389,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
@@ -2231,13 +2412,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
@@ -2248,13 +2434,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
@@ -2267,13 +2457,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
@@ -2285,13 +2480,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
@@ -2304,13 +2503,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
@@ -2325,13 +2529,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
@@ -2344,13 +2554,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
@@ -2365,8 +2580,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,
@@ -2394,26 +2615,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,
@@ -2424,18 +2647,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,
@@ -2455,12 +2684,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
@@ -2468,7 +2698,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,
@@ -2480,7 +2712,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,
@@ -2493,7 +2727,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,
@@ -2506,7 +2742,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,
@@ -2529,7 +2767,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,
@@ -2552,7 +2791,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,
@@ -2573,7 +2813,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,
@@ -2585,9 +2826,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
@@ -2834,7 +3076,7 @@ prefix_bgp_show_prefix_list (struct vty *vty, afi_t afi, char *name, u_char use_
       else
         json_object_object_add(json, "ipv6PrefixList", json_prefix);
 
-      vty_out (vty, "%s%s", json_object_to_json_string(json), VTY_NEWLINE);
+      vty_out (vty, "%s%s", json_object_to_json_string_ext(json, JSON_C_TO_STRING_PRETTY), VTY_NEWLINE);
       json_object_free(json);
     }
   else
@@ -2941,7 +3183,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);
@@ -2957,23 +3199,11 @@ prefix_list_init_ipv4 (void)
   install_element (VIEW_NODE, &show_ip_prefix_list_detail_cmd);
   install_element (VIEW_NODE, &show_ip_prefix_list_detail_name_cmd);
 
-  install_element (ENABLE_NODE, &show_ip_prefix_list_cmd);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_name_cmd);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_name_seq_cmd);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_prefix_cmd);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_prefix_longer_cmd);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_prefix_first_match_cmd);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_summary_cmd);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_summary_name_cmd);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_detail_cmd);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_detail_name_cmd);
-
   install_element (ENABLE_NODE, &clear_ip_prefix_list_cmd);
   install_element (ENABLE_NODE, &clear_ip_prefix_list_name_cmd);
   install_element (ENABLE_NODE, &clear_ip_prefix_list_name_prefix_cmd);
 }
 
-#ifdef HAVE_IPV6
 /* Prefix-list node. */
 static struct cmd_node prefix_ipv6_node =
 {
@@ -3018,7 +3248,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);
@@ -3034,30 +3264,16 @@ prefix_list_init_ipv6 (void)
   install_element (VIEW_NODE, &show_ipv6_prefix_list_detail_cmd);
   install_element (VIEW_NODE, &show_ipv6_prefix_list_detail_name_cmd);
 
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_cmd);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_name_cmd);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_name_seq_cmd);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_prefix_cmd);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_prefix_longer_cmd);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_prefix_first_match_cmd);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_summary_cmd);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_summary_name_cmd);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_detail_cmd);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_detail_name_cmd);
-
   install_element (ENABLE_NODE, &clear_ipv6_prefix_list_cmd);
   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