Diff for /embedaddon/quagga/bgpd/bgp_vty.c between versions 1.1.1.1 and 1.1.1.3

version 1.1.1.1, 2012/02/21 17:26:11 version 1.1.1.3, 2013/07/21 23:54:38
Line 48  Software Foundation, Inc., 59 Temple Place - Suite 330 Line 48  Software Foundation, Inc., 59 Temple Place - Suite 330
 #include "bgpd/bgp_zebra.h"  #include "bgpd/bgp_zebra.h"
 #include "bgpd/bgp_table.h"  #include "bgpd/bgp_table.h"
 #include "bgpd/bgp_vty.h"  #include "bgpd/bgp_vty.h"
   #include "bgpd/bgp_mpath.h"
   
 extern struct in_addr router_id_zebra;  extern struct in_addr router_id_zebra;
   
Line 650  DEFUN (no_bgp_confederation_peers, Line 651  DEFUN (no_bgp_confederation_peers,
   return CMD_SUCCESS;    return CMD_SUCCESS;
 }  }
   
   /* Maximum-paths configuration */
   DEFUN (bgp_maxpaths,
          bgp_maxpaths_cmd,
          "maximum-paths <1-255>",
          "Forward packets over multiple paths\n"
          "Number of paths\n")
   {
     struct bgp *bgp;
     u_int16_t maxpaths;
     int ret;
   
     bgp = vty->index;
   
     VTY_GET_INTEGER_RANGE ("maximum-paths", maxpaths, argv[0], 1, 255);
   
     ret = bgp_maximum_paths_set (bgp, bgp_node_afi (vty), bgp_node_safi(vty),
                                  BGP_PEER_EBGP, maxpaths);
     if (ret < 0)
       {
         vty_out (vty,
                  "%% Failed to set maximum-paths %u for afi %u, safi %u%s",
                  maxpaths, bgp_node_afi (vty), bgp_node_safi(vty), VTY_NEWLINE);
         return CMD_WARNING;
       }
   
     return CMD_SUCCESS;
   }
   
   DEFUN (bgp_maxpaths_ibgp,
          bgp_maxpaths_ibgp_cmd,
          "maximum-paths ibgp <1-255>",
          "Forward packets over multiple paths\n"
          "iBGP-multipath\n"
          "Number of paths\n")
   {
     struct bgp *bgp;
     u_int16_t maxpaths;
     int ret;
   
     bgp = vty->index;
   
     VTY_GET_INTEGER_RANGE ("maximum-paths", maxpaths, argv[0], 1, 255);
   
     ret = bgp_maximum_paths_set (bgp, bgp_node_afi (vty), bgp_node_safi(vty),
                                  BGP_PEER_IBGP, maxpaths);
     if (ret < 0)
       {
         vty_out (vty,
                  "%% Failed to set maximum-paths ibgp %u for afi %u, safi %u%s",
                  maxpaths, bgp_node_afi (vty), bgp_node_safi(vty), VTY_NEWLINE);
         return CMD_WARNING;
       }
   
     return CMD_SUCCESS;
   }
   
   DEFUN (no_bgp_maxpaths,
          no_bgp_maxpaths_cmd,
          "no maximum-paths",
          NO_STR
          "Forward packets over multiple paths\n"
          "Number of paths\n")
   {
     struct bgp *bgp;
     int ret;
   
     bgp = vty->index;
   
     ret = bgp_maximum_paths_unset (bgp, bgp_node_afi (vty), bgp_node_safi(vty),
                                    BGP_PEER_EBGP);
     if (ret < 0)
       {
         vty_out (vty,
                  "%% Failed to unset maximum-paths for afi %u, safi %u%s",
                  bgp_node_afi (vty), bgp_node_safi(vty), VTY_NEWLINE);
         return CMD_WARNING;
       }
   
     return CMD_SUCCESS;
   }
   
   ALIAS (no_bgp_maxpaths,
          no_bgp_maxpaths_arg_cmd,
          "no maximum-paths <1-255>",
          NO_STR
          "Forward packets over multiple paths\n"
          "Number of paths\n")
   
   DEFUN (no_bgp_maxpaths_ibgp,
          no_bgp_maxpaths_ibgp_cmd,
          "no maximum-paths ibgp",
          NO_STR
          "Forward packets over multiple paths\n"
          "iBGP-multipath\n"
          "Number of paths\n")
   {
     struct bgp *bgp;
     int ret;
   
     bgp = vty->index;
   
     ret = bgp_maximum_paths_unset (bgp, bgp_node_afi (vty), bgp_node_safi(vty),
                                    BGP_PEER_IBGP);
     if (ret < 0)
       {
         vty_out (vty,
                  "%% Failed to unset maximum-paths ibgp for afi %u, safi %u%s",
                  bgp_node_afi (vty), bgp_node_safi(vty), VTY_NEWLINE);
         return CMD_WARNING;
       }
   
     return CMD_SUCCESS;
   }
   
   ALIAS (no_bgp_maxpaths_ibgp,
          no_bgp_maxpaths_ibgp_arg_cmd,
          "no maximum-paths ibgp <1-255>",
          NO_STR
          "Forward packets over multiple paths\n"
          "iBGP-multipath\n"
          "Number of paths\n")
   
   int
   bgp_config_write_maxpaths (struct vty *vty, struct bgp *bgp, afi_t afi,
                              safi_t safi, int *write)
   {
     if (bgp->maxpaths[afi][safi].maxpaths_ebgp != BGP_DEFAULT_MAXPATHS)
       {
         bgp_config_write_family_header (vty, afi, safi, write);
         vty_out (vty, " maximum-paths %d%s",
                  bgp->maxpaths[afi][safi].maxpaths_ebgp, VTY_NEWLINE);
       }
   
     if (bgp->maxpaths[afi][safi].maxpaths_ibgp != BGP_DEFAULT_MAXPATHS)
       {
         bgp_config_write_family_header (vty, afi, safi, write);
         vty_out (vty, " maximum-paths ibgp %d%s",
                  bgp->maxpaths[afi][safi].maxpaths_ibgp, VTY_NEWLINE);
       }
   
     return 0;
   }
   
 /* BGP timers.  */  /* BGP timers.  */
   
 DEFUN (bgp_timers,  DEFUN (bgp_timers,
Line 1426  DEFUN (neighbor_local_as, Line 1570  DEFUN (neighbor_local_as,
   if (! peer)    if (! peer)
     return CMD_WARNING;      return CMD_WARNING;
   
  ret = peer_local_as_set (peer, atoi (argv[1]), 0);  ret = peer_local_as_set (peer, atoi (argv[1]), 0, 0);
   return bgp_vty_return (vty, ret);    return bgp_vty_return (vty, ret);
 }  }
   
Line 1446  DEFUN (neighbor_local_as_no_prepend, Line 1590  DEFUN (neighbor_local_as_no_prepend,
   if (! peer)    if (! peer)
     return CMD_WARNING;      return CMD_WARNING;
   
  ret = peer_local_as_set (peer, atoi (argv[1]), 1);  ret = peer_local_as_set (peer, atoi (argv[1]), 1, 0);
   return bgp_vty_return (vty, ret);    return bgp_vty_return (vty, ret);
 }  }
   
   DEFUN (neighbor_local_as_no_prepend_replace_as,
          neighbor_local_as_no_prepend_replace_as_cmd,
          NEIGHBOR_CMD2 "local-as " CMD_AS_RANGE " no-prepend replace-as",
          NEIGHBOR_STR
          NEIGHBOR_ADDR_STR2
          "Specify a local-as number\n"
          "AS number used as local AS\n"
          "Do not prepend local-as to updates from ebgp peers\n"
          "Do not prepend local-as to updates from ibgp peers\n")
   {
     struct peer *peer;
     int ret;
   
     peer = peer_and_group_lookup_vty (vty, argv[0]);
     if (! peer)
       return CMD_WARNING;
   
     ret = peer_local_as_set (peer, atoi (argv[1]), 1, 1);
     return bgp_vty_return (vty, ret);
   }
   
   
 DEFUN (no_neighbor_local_as,  DEFUN (no_neighbor_local_as,
        no_neighbor_local_as_cmd,         no_neighbor_local_as_cmd,
        NO_NEIGHBOR_CMD2 "local-as",         NO_NEIGHBOR_CMD2 "local-as",
Line 1487  ALIAS (no_neighbor_local_as, Line 1653  ALIAS (no_neighbor_local_as,
        "Specify a local-as number\n"         "Specify a local-as number\n"
        "AS number used as local AS\n"         "AS number used as local AS\n"
        "Do not prepend local-as to updates from ebgp peers\n")         "Do not prepend local-as to updates from ebgp peers\n")
   
   ALIAS (no_neighbor_local_as,
          no_neighbor_local_as_val3_cmd,
          NO_NEIGHBOR_CMD2 "local-as " CMD_AS_RANGE " no-prepend replace-as",
          NO_STR
          NEIGHBOR_STR
          NEIGHBOR_ADDR_STR2
          "Specify a local-as number\n"
          "AS number used as local AS\n"
          "Do not prepend local-as to updates from ebgp peers\n"
          "Do not prepend local-as to updates from ibgp peers\n")
   
 DEFUN (neighbor_password,  DEFUN (neighbor_password,
        neighbor_password_cmd,         neighbor_password_cmd,
Line 2799  peer_update_source_vty (struct vty *vty, const char *p Line 2976  peer_update_source_vty (struct vty *vty, const char *p
                         const char *source_str)                          const char *source_str)
 {  {
   struct peer *peer;    struct peer *peer;
   union sockunion *su;  
   
   peer = peer_and_group_lookup_vty (vty, peer_str);    peer = peer_and_group_lookup_vty (vty, peer_str);
   if (! peer)    if (! peer)
Line 2807  peer_update_source_vty (struct vty *vty, const char *p Line 2983  peer_update_source_vty (struct vty *vty, const char *p
   
   if (source_str)    if (source_str)
     {      {
      su = sockunion_str2su (source_str);      union sockunion su;
      if (su)      int ret = str2sockunion (source_str, &su);
        {
          peer_update_source_addr_set (peer, su);      if (ret == 0)
          sockunion_free (su);        peer_update_source_addr_set (peer, &su);
        } 
       else        else
         peer_update_source_if_set (peer, source_str);          peer_update_source_if_set (peer, source_str);
     }      }
Line 4198  bgp_clear (struct vty *vty, struct bgp *bgp,  afi_t af Line 4373  bgp_clear (struct vty *vty, struct bgp *bgp,  afi_t af
     {      {
       for (ALL_LIST_ELEMENTS (bgp->peer, node, nnode, peer))        for (ALL_LIST_ELEMENTS (bgp->peer, node, nnode, peer))
         {          {
          if (peer_sort (peer) == BGP_PEER_IBGP)           if (peer->sort == BGP_PEER_IBGP)
             continue;              continue;
   
           if (stype == BGP_CLEAR_SOFT_NONE)            if (stype == BGP_CLEAR_SOFT_NONE)
Line 4215  bgp_clear (struct vty *vty, struct bgp *bgp,  afi_t af Line 4390  bgp_clear (struct vty *vty, struct bgp *bgp,  afi_t af
   if (sort == clear_as)    if (sort == clear_as)
     {      {
       as_t as;        as_t as;
       unsigned long as_ul;  
       int find = 0;        int find = 0;
   
      VTY_GET_LONG ("AS", as_ul, arg);      VTY_GET_INTEGER_RANGE ("AS", as, arg, 1, BGP_AS4_MAX);
               
       if (!as_ul)  
         {  
           vty_out (vty, "Invalid AS number%s", VTY_NEWLINE);   
           return CMD_WARNING;  
         }  
       as = (as_t) as_ul;  
   
       for (ALL_LIST_ELEMENTS (bgp->peer, node, nnode, peer))        for (ALL_LIST_ELEMENTS (bgp->peer, node, nnode, peer))
         {          {
           if (peer->as != as)             if (peer->as != as) 
Line 7360  bgp_show_peer (struct vty *vty, struct peer *p) Line 7527  bgp_show_peer (struct vty *vty, struct peer *p)
   /* Configured IP address. */    /* Configured IP address. */
   vty_out (vty, "BGP neighbor is %s, ", p->host);    vty_out (vty, "BGP neighbor is %s, ", p->host);
   vty_out (vty, "remote AS %u, ", p->as);    vty_out (vty, "remote AS %u, ", p->as);
  vty_out (vty, "local AS %u%s, ",  vty_out (vty, "local AS %u%s%s, ",
            p->change_local_as ? p->change_local_as : p->local_as,             p->change_local_as ? p->change_local_as : p->local_as,
            CHECK_FLAG (p->flags, PEER_FLAG_LOCAL_AS_NO_PREPEND) ?             CHECK_FLAG (p->flags, PEER_FLAG_LOCAL_AS_NO_PREPEND) ?
           " no-prepend" : "");           " no-prepend" : "",
            CHECK_FLAG (p->flags, PEER_FLAG_LOCAL_AS_REPLACE_AS) ?
            " replace-as" : "");
   vty_out (vty, "%s link%s",    vty_out (vty, "%s link%s",
            p->as == p->local_as ? "internal" : "external",             p->as == p->local_as ? "internal" : "external",
            VTY_NEWLINE);             VTY_NEWLINE);
Line 7647  bgp_show_peer (struct vty *vty, struct peer *p) Line 7816  bgp_show_peer (struct vty *vty, struct peer *p)
     }      }
   
   /* EBGP Multihop and GTSM */    /* EBGP Multihop and GTSM */
  if (peer_sort (p) != BGP_PEER_IBGP)  if (p->sort != BGP_PEER_IBGP)
     {      {
       if (p->gtsm_hops > 0)        if (p->gtsm_hops > 0)
         vty_out (vty, "  External BGP neighbor may be up to %d hops away.%s",          vty_out (vty, "  External BGP neighbor may be up to %d hops away.%s",
Line 8381  ALIAS (show_bgp_instance_ipv6_safi_rsclient_summary, Line 8550  ALIAS (show_bgp_instance_ipv6_safi_rsclient_summary,
   
 /* Redistribute VTY commands.  */  /* Redistribute VTY commands.  */
   
 /* Utility function to convert user input route type string to route  
    type.  */  
 static int  
 bgp_str2route_type (int afi, const char *str)  
 {  
   if (! str)  
     return 0;  
   
   if (afi == AFI_IP)  
     {  
       if (strncmp (str, "k", 1) == 0)  
         return ZEBRA_ROUTE_KERNEL;  
       else if (strncmp (str, "c", 1) == 0)  
         return ZEBRA_ROUTE_CONNECT;  
       else if (strncmp (str, "s", 1) == 0)  
         return ZEBRA_ROUTE_STATIC;  
       else if (strncmp (str, "r", 1) == 0)  
         return ZEBRA_ROUTE_RIP;  
       else if (strncmp (str, "o", 1) == 0)  
         return ZEBRA_ROUTE_OSPF;  
     }  
   if (afi == AFI_IP6)  
     {  
       if (strncmp (str, "k", 1) == 0)  
         return ZEBRA_ROUTE_KERNEL;  
       else if (strncmp (str, "c", 1) == 0)  
         return ZEBRA_ROUTE_CONNECT;  
       else if (strncmp (str, "s", 1) == 0)  
         return ZEBRA_ROUTE_STATIC;  
       else if (strncmp (str, "r", 1) == 0)  
         return ZEBRA_ROUTE_RIPNG;  
       else if (strncmp (str, "o", 1) == 0)  
         return ZEBRA_ROUTE_OSPF6;  
     }  
   return 0;  
 }  
   
 DEFUN (bgp_redistribute_ipv4,  DEFUN (bgp_redistribute_ipv4,
        bgp_redistribute_ipv4_cmd,         bgp_redistribute_ipv4_cmd,
       "redistribute (connected|kernel|ospf|rip|static)",       "redistribute " QUAGGA_IP_REDIST_STR_BGPD,
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP_REDIST_HELP_STR_BGPD)
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPF)\n" 
       "Routing Information Protocol (RIP)\n" 
       "Static routes\n") 
 {  {
   int type;    int type;
   
  type = bgp_str2route_type (AFI_IP, argv[0]);  type = proto_redistnum (AFI_IP, argv[0]);
  if (! type)  if (type < 0 || type == ZEBRA_ROUTE_BGP)
     {      {
       vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);        vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
       return CMD_WARNING;        return CMD_WARNING;
Line 8441  DEFUN (bgp_redistribute_ipv4, Line 8569  DEFUN (bgp_redistribute_ipv4,
   
 DEFUN (bgp_redistribute_ipv4_rmap,  DEFUN (bgp_redistribute_ipv4_rmap,
        bgp_redistribute_ipv4_rmap_cmd,         bgp_redistribute_ipv4_rmap_cmd,
       "redistribute (connected|kernel|ospf|rip|static) route-map WORD",       "redistribute " QUAGGA_IP_REDIST_STR_BGPD " route-map WORD",
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP_REDIST_HELP_STR_BGPD
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPF)\n" 
       "Routing Information Protocol (RIP)\n" 
       "Static routes\n" 
        "Route map reference\n"         "Route map reference\n"
        "Pointer to route-map entries\n")         "Pointer to route-map entries\n")
 {  {
   int type;    int type;
   
  type = bgp_str2route_type (AFI_IP, argv[0]);  type = proto_redistnum (AFI_IP, argv[0]);
  if (! type)  if (type < 0 || type == ZEBRA_ROUTE_BGP)
     {      {
       vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);        vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
       return CMD_WARNING;        return CMD_WARNING;
Line 8466  DEFUN (bgp_redistribute_ipv4_rmap, Line 8590  DEFUN (bgp_redistribute_ipv4_rmap,
   
 DEFUN (bgp_redistribute_ipv4_metric,  DEFUN (bgp_redistribute_ipv4_metric,
        bgp_redistribute_ipv4_metric_cmd,         bgp_redistribute_ipv4_metric_cmd,
       "redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295>",       "redistribute " QUAGGA_IP_REDIST_STR_BGPD " metric <0-4294967295>",
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP_REDIST_HELP_STR_BGPD
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPF)\n" 
       "Routing Information Protocol (RIP)\n" 
       "Static routes\n" 
        "Metric for redistributed routes\n"         "Metric for redistributed routes\n"
        "Default metric\n")         "Default metric\n")
 {  {
   int type;    int type;
   u_int32_t metric;    u_int32_t metric;
   
  type = bgp_str2route_type (AFI_IP, argv[0]);  type = proto_redistnum (AFI_IP, argv[0]);
  if (! type)  if (type < 0 || type == ZEBRA_ROUTE_BGP)
     {      {
       vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);        vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
       return CMD_WARNING;        return CMD_WARNING;
Line 8493  DEFUN (bgp_redistribute_ipv4_metric, Line 8613  DEFUN (bgp_redistribute_ipv4_metric,
   
 DEFUN (bgp_redistribute_ipv4_rmap_metric,  DEFUN (bgp_redistribute_ipv4_rmap_metric,
        bgp_redistribute_ipv4_rmap_metric_cmd,         bgp_redistribute_ipv4_rmap_metric_cmd,
       "redistribute (connected|kernel|ospf|rip|static) route-map WORD metric <0-4294967295>",       "redistribute " QUAGGA_IP_REDIST_STR_BGPD " route-map WORD metric <0-4294967295>",
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP_REDIST_HELP_STR_BGPD
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPF)\n" 
       "Routing Information Protocol (RIP)\n" 
       "Static routes\n" 
        "Route map reference\n"         "Route map reference\n"
        "Pointer to route-map entries\n"         "Pointer to route-map entries\n"
        "Metric for redistributed routes\n"         "Metric for redistributed routes\n"
Line 8508  DEFUN (bgp_redistribute_ipv4_rmap_metric, Line 8624  DEFUN (bgp_redistribute_ipv4_rmap_metric,
   int type;    int type;
   u_int32_t metric;    u_int32_t metric;
   
  type = bgp_str2route_type (AFI_IP, argv[0]);  type = proto_redistnum (AFI_IP, argv[0]);
  if (! type)  if (type < 0 || type == ZEBRA_ROUTE_BGP)
     {      {
       vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);        vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
       return CMD_WARNING;        return CMD_WARNING;
Line 8523  DEFUN (bgp_redistribute_ipv4_rmap_metric, Line 8639  DEFUN (bgp_redistribute_ipv4_rmap_metric,
   
 DEFUN (bgp_redistribute_ipv4_metric_rmap,  DEFUN (bgp_redistribute_ipv4_metric_rmap,
        bgp_redistribute_ipv4_metric_rmap_cmd,         bgp_redistribute_ipv4_metric_rmap_cmd,
       "redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295> route-map WORD",       "redistribute " QUAGGA_IP_REDIST_STR_BGPD " metric <0-4294967295> route-map WORD",
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP_REDIST_HELP_STR_BGPD
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPF)\n" 
       "Routing Information Protocol (RIP)\n" 
       "Static routes\n" 
        "Metric for redistributed routes\n"         "Metric for redistributed routes\n"
        "Default metric\n"         "Default metric\n"
        "Route map reference\n"         "Route map reference\n"
Line 8538  DEFUN (bgp_redistribute_ipv4_metric_rmap, Line 8650  DEFUN (bgp_redistribute_ipv4_metric_rmap,
   int type;    int type;
   u_int32_t metric;    u_int32_t metric;
   
  type = bgp_str2route_type (AFI_IP, argv[0]);  type = proto_redistnum (AFI_IP, argv[0]);
  if (! type)  if (type < 0 || type == ZEBRA_ROUTE_BGP)
     {      {
       vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);        vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
       return CMD_WARNING;        return CMD_WARNING;
Line 8553  DEFUN (bgp_redistribute_ipv4_metric_rmap, Line 8665  DEFUN (bgp_redistribute_ipv4_metric_rmap,
   
 DEFUN (no_bgp_redistribute_ipv4,  DEFUN (no_bgp_redistribute_ipv4,
        no_bgp_redistribute_ipv4_cmd,         no_bgp_redistribute_ipv4_cmd,
       "no redistribute (connected|kernel|ospf|rip|static)",       "no redistribute " QUAGGA_IP_REDIST_STR_BGPD,
        NO_STR         NO_STR
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP_REDIST_HELP_STR_BGPD)
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPF)\n" 
       "Routing Information Protocol (RIP)\n" 
       "Static routes\n") 
 {  {
   int type;    int type;
   
  type = bgp_str2route_type (AFI_IP, argv[0]);  type = proto_redistnum (AFI_IP, argv[0]);
  if (! type)  if (type < 0 || type == ZEBRA_ROUTE_BGP)
     {      {
       vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);        vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
       return CMD_WARNING;        return CMD_WARNING;
Line 8576  DEFUN (no_bgp_redistribute_ipv4, Line 8684  DEFUN (no_bgp_redistribute_ipv4,
   
 DEFUN (no_bgp_redistribute_ipv4_rmap,  DEFUN (no_bgp_redistribute_ipv4_rmap,
        no_bgp_redistribute_ipv4_rmap_cmd,         no_bgp_redistribute_ipv4_rmap_cmd,
       "no redistribute (connected|kernel|ospf|rip|static) route-map WORD",       "no redistribute " QUAGGA_IP_REDIST_STR_BGPD " route-map WORD",
        NO_STR         NO_STR
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP_REDIST_HELP_STR_BGPD
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPF)\n" 
       "Routing Information Protocol (RIP)\n" 
       "Static routes\n" 
        "Route map reference\n"         "Route map reference\n"
        "Pointer to route-map entries\n")         "Pointer to route-map entries\n")
 {  {
   int type;    int type;
   
  type = bgp_str2route_type (AFI_IP, argv[0]);  type = proto_redistnum (AFI_IP, argv[0]);
  if (! type)  if (type < 0 || type == ZEBRA_ROUTE_BGP)
     {      {
       vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);        vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
       return CMD_WARNING;        return CMD_WARNING;
Line 8602  DEFUN (no_bgp_redistribute_ipv4_rmap, Line 8706  DEFUN (no_bgp_redistribute_ipv4_rmap,
   
 DEFUN (no_bgp_redistribute_ipv4_metric,  DEFUN (no_bgp_redistribute_ipv4_metric,
        no_bgp_redistribute_ipv4_metric_cmd,         no_bgp_redistribute_ipv4_metric_cmd,
       "no redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295>",       "no redistribute " QUAGGA_IP_REDIST_STR_BGPD " metric <0-4294967295>",
        NO_STR         NO_STR
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP_REDIST_HELP_STR_BGPD
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPF)\n" 
       "Routing Information Protocol (RIP)\n" 
       "Static routes\n" 
        "Metric for redistributed routes\n"         "Metric for redistributed routes\n"
        "Default metric\n")         "Default metric\n")
 {  {
   int type;    int type;
   
  type = bgp_str2route_type (AFI_IP, argv[0]);  type = proto_redistnum (AFI_IP, argv[0]);
  if (! type)  if (type < 0 || type == ZEBRA_ROUTE_BGP)
     {      {
       vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);        vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
       return CMD_WARNING;        return CMD_WARNING;
Line 8628  DEFUN (no_bgp_redistribute_ipv4_metric, Line 8728  DEFUN (no_bgp_redistribute_ipv4_metric,
   
 DEFUN (no_bgp_redistribute_ipv4_rmap_metric,  DEFUN (no_bgp_redistribute_ipv4_rmap_metric,
        no_bgp_redistribute_ipv4_rmap_metric_cmd,         no_bgp_redistribute_ipv4_rmap_metric_cmd,
       "no redistribute (connected|kernel|ospf|rip|static) route-map WORD metric <0-4294967295>",       "no redistribute " QUAGGA_IP_REDIST_STR_BGPD " route-map WORD metric <0-4294967295>",
        NO_STR         NO_STR
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP_REDIST_HELP_STR_BGPD
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPF)\n" 
       "Routing Information Protocol (RIP)\n" 
       "Static routes\n" 
        "Route map reference\n"         "Route map reference\n"
        "Pointer to route-map entries\n"         "Pointer to route-map entries\n"
        "Metric for redistributed routes\n"         "Metric for redistributed routes\n"
Line 8643  DEFUN (no_bgp_redistribute_ipv4_rmap_metric, Line 8739  DEFUN (no_bgp_redistribute_ipv4_rmap_metric,
 {  {
   int type;    int type;
   
  type = bgp_str2route_type (AFI_IP, argv[0]);  type = proto_redistnum (AFI_IP, argv[0]);
  if (! type)  if (type < 0 || type == ZEBRA_ROUTE_BGP)
     {      {
       vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);        vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
       return CMD_WARNING;        return CMD_WARNING;
Line 8657  DEFUN (no_bgp_redistribute_ipv4_rmap_metric, Line 8753  DEFUN (no_bgp_redistribute_ipv4_rmap_metric,
   
 ALIAS (no_bgp_redistribute_ipv4_rmap_metric,  ALIAS (no_bgp_redistribute_ipv4_rmap_metric,
        no_bgp_redistribute_ipv4_metric_rmap_cmd,         no_bgp_redistribute_ipv4_metric_rmap_cmd,
       "no redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295> route-map WORD",       "no redistribute " QUAGGA_IP_REDIST_STR_BGPD " metric <0-4294967295> route-map WORD",
        NO_STR         NO_STR
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP_REDIST_HELP_STR_BGPD
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPF)\n" 
       "Routing Information Protocol (RIP)\n" 
       "Static routes\n" 
        "Metric for redistributed routes\n"         "Metric for redistributed routes\n"
        "Default metric\n"         "Default metric\n"
        "Route map reference\n"         "Route map reference\n"
Line 8673  ALIAS (no_bgp_redistribute_ipv4_rmap_metric, Line 8765  ALIAS (no_bgp_redistribute_ipv4_rmap_metric,
 #ifdef HAVE_IPV6  #ifdef HAVE_IPV6
 DEFUN (bgp_redistribute_ipv6,  DEFUN (bgp_redistribute_ipv6,
        bgp_redistribute_ipv6_cmd,         bgp_redistribute_ipv6_cmd,
       "redistribute (connected|kernel|ospf6|ripng|static)",       "redistribute " QUAGGA_IP6_REDIST_STR_BGPD,
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP6_REDIST_HELP_STR_BGPD)
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPFv3)\n" 
       "Routing Information Protocol (RIPng)\n" 
       "Static routes\n") 
 {  {
   int type;    int type;
   
  type = bgp_str2route_type (AFI_IP6, argv[0]);  type = proto_redistnum (AFI_IP6, argv[0]);
  if (! type)  if (type < 0 || type == ZEBRA_ROUTE_BGP)
     {      {
       vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);        vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
       return CMD_WARNING;        return CMD_WARNING;
Line 8695  DEFUN (bgp_redistribute_ipv6, Line 8783  DEFUN (bgp_redistribute_ipv6,
   
 DEFUN (bgp_redistribute_ipv6_rmap,  DEFUN (bgp_redistribute_ipv6_rmap,
        bgp_redistribute_ipv6_rmap_cmd,         bgp_redistribute_ipv6_rmap_cmd,
       "redistribute (connected|kernel|ospf6|ripng|static) route-map WORD",       "redistribute " QUAGGA_IP6_REDIST_STR_BGPD " route-map WORD",
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP6_REDIST_HELP_STR_BGPD
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPFv3)\n" 
       "Routing Information Protocol (RIPng)\n" 
       "Static routes\n" 
        "Route map reference\n"         "Route map reference\n"
        "Pointer to route-map entries\n")         "Pointer to route-map entries\n")
 {  {
   int type;    int type;
   
  type = bgp_str2route_type (AFI_IP6, argv[0]);  type = proto_redistnum (AFI_IP6, argv[0]);
  if (! type)  if (type < 0 || type == ZEBRA_ROUTE_BGP)
     {      {
       vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);        vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
       return CMD_WARNING;        return CMD_WARNING;
Line 8720  DEFUN (bgp_redistribute_ipv6_rmap, Line 8804  DEFUN (bgp_redistribute_ipv6_rmap,
   
 DEFUN (bgp_redistribute_ipv6_metric,  DEFUN (bgp_redistribute_ipv6_metric,
        bgp_redistribute_ipv6_metric_cmd,         bgp_redistribute_ipv6_metric_cmd,
       "redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295>",       "redistribute " QUAGGA_IP6_REDIST_STR_BGPD " metric <0-4294967295>",
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP6_REDIST_HELP_STR_BGPD
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPFv3)\n" 
       "Routing Information Protocol (RIPng)\n" 
       "Static routes\n" 
        "Metric for redistributed routes\n"         "Metric for redistributed routes\n"
        "Default metric\n")         "Default metric\n")
 {  {
   int type;    int type;
   u_int32_t metric;    u_int32_t metric;
   
  type = bgp_str2route_type (AFI_IP6, argv[0]);  type = proto_redistnum (AFI_IP6, argv[0]);
  if (! type)  if (type < 0 || type == ZEBRA_ROUTE_BGP)
     {      {
       vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);        vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
       return CMD_WARNING;        return CMD_WARNING;
Line 8747  DEFUN (bgp_redistribute_ipv6_metric, Line 8827  DEFUN (bgp_redistribute_ipv6_metric,
   
 DEFUN (bgp_redistribute_ipv6_rmap_metric,  DEFUN (bgp_redistribute_ipv6_rmap_metric,
        bgp_redistribute_ipv6_rmap_metric_cmd,         bgp_redistribute_ipv6_rmap_metric_cmd,
       "redistribute (connected|kernel|ospf6|ripng|static) route-map WORD metric <0-4294967295>",       "redistribute " QUAGGA_IP6_REDIST_STR_BGPD " route-map WORD metric <0-4294967295>",
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP6_REDIST_HELP_STR_BGPD
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPFv3)\n" 
       "Routing Information Protocol (RIPng)\n" 
       "Static routes\n" 
        "Route map reference\n"         "Route map reference\n"
        "Pointer to route-map entries\n"         "Pointer to route-map entries\n"
        "Metric for redistributed routes\n"         "Metric for redistributed routes\n"
Line 8762  DEFUN (bgp_redistribute_ipv6_rmap_metric, Line 8838  DEFUN (bgp_redistribute_ipv6_rmap_metric,
   int type;    int type;
   u_int32_t metric;    u_int32_t metric;
   
  type = bgp_str2route_type (AFI_IP6, argv[0]);  type = proto_redistnum (AFI_IP6, argv[0]);
  if (! type)  if (type < 0 || type == ZEBRA_ROUTE_BGP)
     {      {
       vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);        vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
       return CMD_WARNING;        return CMD_WARNING;
Line 8777  DEFUN (bgp_redistribute_ipv6_rmap_metric, Line 8853  DEFUN (bgp_redistribute_ipv6_rmap_metric,
   
 DEFUN (bgp_redistribute_ipv6_metric_rmap,  DEFUN (bgp_redistribute_ipv6_metric_rmap,
        bgp_redistribute_ipv6_metric_rmap_cmd,         bgp_redistribute_ipv6_metric_rmap_cmd,
       "redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295> route-map WORD",       "redistribute " QUAGGA_IP6_REDIST_STR_BGPD " metric <0-4294967295> route-map WORD",
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP6_REDIST_HELP_STR_BGPD
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPFv3)\n" 
       "Routing Information Protocol (RIPng)\n" 
       "Static routes\n" 
        "Metric for redistributed routes\n"         "Metric for redistributed routes\n"
        "Default metric\n"         "Default metric\n"
        "Route map reference\n"         "Route map reference\n"
Line 8792  DEFUN (bgp_redistribute_ipv6_metric_rmap, Line 8864  DEFUN (bgp_redistribute_ipv6_metric_rmap,
   int type;    int type;
   u_int32_t metric;    u_int32_t metric;
   
  type = bgp_str2route_type (AFI_IP6, argv[0]);  type = proto_redistnum (AFI_IP6, argv[0]);
  if (! type)  if (type < 0 || type == ZEBRA_ROUTE_BGP)
     {      {
       vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);        vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
       return CMD_WARNING;        return CMD_WARNING;
Line 8807  DEFUN (bgp_redistribute_ipv6_metric_rmap, Line 8879  DEFUN (bgp_redistribute_ipv6_metric_rmap,
   
 DEFUN (no_bgp_redistribute_ipv6,  DEFUN (no_bgp_redistribute_ipv6,
        no_bgp_redistribute_ipv6_cmd,         no_bgp_redistribute_ipv6_cmd,
       "no redistribute (connected|kernel|ospf6|ripng|static)",       "no redistribute " QUAGGA_IP6_REDIST_STR_BGPD,
        NO_STR         NO_STR
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP6_REDIST_HELP_STR_BGPD)
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPFv3)\n" 
       "Routing Information Protocol (RIPng)\n" 
       "Static routes\n") 
 {  {
   int type;    int type;
   
  type = bgp_str2route_type (AFI_IP6, argv[0]);  type = proto_redistnum (AFI_IP6, argv[0]);
  if (! type)  if (type < 0 || type == ZEBRA_ROUTE_BGP)
     {      {
       vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);        vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
       return CMD_WARNING;        return CMD_WARNING;
Line 8830  DEFUN (no_bgp_redistribute_ipv6, Line 8898  DEFUN (no_bgp_redistribute_ipv6,
   
 DEFUN (no_bgp_redistribute_ipv6_rmap,  DEFUN (no_bgp_redistribute_ipv6_rmap,
        no_bgp_redistribute_ipv6_rmap_cmd,         no_bgp_redistribute_ipv6_rmap_cmd,
       "no redistribute (connected|kernel|ospf6|ripng|static) route-map WORD",       "no redistribute " QUAGGA_IP6_REDIST_STR_BGPD " route-map WORD",
        NO_STR         NO_STR
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP6_REDIST_HELP_STR_BGPD
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPFv3)\n" 
       "Routing Information Protocol (RIPng)\n" 
       "Static routes\n" 
        "Route map reference\n"         "Route map reference\n"
        "Pointer to route-map entries\n")         "Pointer to route-map entries\n")
 {  {
   int type;    int type;
   
  type = bgp_str2route_type (AFI_IP6, argv[0]);  type = proto_redistnum (AFI_IP6, argv[0]);
  if (! type)  if (type < 0 || type == ZEBRA_ROUTE_BGP)
     {      {
       vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);        vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
       return CMD_WARNING;        return CMD_WARNING;
Line 8856  DEFUN (no_bgp_redistribute_ipv6_rmap, Line 8920  DEFUN (no_bgp_redistribute_ipv6_rmap,
   
 DEFUN (no_bgp_redistribute_ipv6_metric,  DEFUN (no_bgp_redistribute_ipv6_metric,
        no_bgp_redistribute_ipv6_metric_cmd,         no_bgp_redistribute_ipv6_metric_cmd,
       "no redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295>",       "no redistribute " QUAGGA_IP6_REDIST_STR_BGPD " metric <0-4294967295>",
        NO_STR         NO_STR
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP6_REDIST_HELP_STR_BGPD
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPFv3)\n" 
       "Routing Information Protocol (RIPng)\n" 
       "Static routes\n" 
        "Metric for redistributed routes\n"         "Metric for redistributed routes\n"
        "Default metric\n")         "Default metric\n")
 {  {
   int type;    int type;
   
  type = bgp_str2route_type (AFI_IP6, argv[0]);  type = proto_redistnum (AFI_IP6, argv[0]);
  if (! type)  if (type < 0 || type == ZEBRA_ROUTE_BGP)
     {      {
       vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);        vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
       return CMD_WARNING;        return CMD_WARNING;
Line 8882  DEFUN (no_bgp_redistribute_ipv6_metric, Line 8942  DEFUN (no_bgp_redistribute_ipv6_metric,
   
 DEFUN (no_bgp_redistribute_ipv6_rmap_metric,  DEFUN (no_bgp_redistribute_ipv6_rmap_metric,
        no_bgp_redistribute_ipv6_rmap_metric_cmd,         no_bgp_redistribute_ipv6_rmap_metric_cmd,
       "no redistribute (connected|kernel|ospf6|ripng|static) route-map WORD metric <0-4294967295>",       "no redistribute " QUAGGA_IP6_REDIST_STR_BGPD " route-map WORD metric <0-4294967295>",
        NO_STR         NO_STR
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP6_REDIST_HELP_STR_BGPD
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPFv3)\n" 
       "Routing Information Protocol (RIPng)\n" 
       "Static routes\n" 
        "Route map reference\n"         "Route map reference\n"
        "Pointer to route-map entries\n"         "Pointer to route-map entries\n"
        "Metric for redistributed routes\n"         "Metric for redistributed routes\n"
Line 8897  DEFUN (no_bgp_redistribute_ipv6_rmap_metric, Line 8953  DEFUN (no_bgp_redistribute_ipv6_rmap_metric,
 {  {
   int type;    int type;
   
  type = bgp_str2route_type (AFI_IP6, argv[0]);  type = proto_redistnum (AFI_IP6, argv[0]);
  if (! type)  if (type < 0 || type == ZEBRA_ROUTE_BGP)
     {      {
       vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);        vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
       return CMD_WARNING;        return CMD_WARNING;
Line 8911  DEFUN (no_bgp_redistribute_ipv6_rmap_metric, Line 8967  DEFUN (no_bgp_redistribute_ipv6_rmap_metric,
   
 ALIAS (no_bgp_redistribute_ipv6_rmap_metric,  ALIAS (no_bgp_redistribute_ipv6_rmap_metric,
        no_bgp_redistribute_ipv6_metric_rmap_cmd,         no_bgp_redistribute_ipv6_metric_rmap_cmd,
       "no redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295> route-map WORD",       "no redistribute " QUAGGA_IP6_REDIST_STR_BGPD " metric <0-4294967295> route-map WORD",
        NO_STR         NO_STR
        "Redistribute information from another routing protocol\n"         "Redistribute information from another routing protocol\n"
       "Connected\n"       QUAGGA_IP6_REDIST_HELP_STR_BGPD
       "Kernel routes\n" 
       "Open Shurtest Path First (OSPFv3)\n" 
       "Routing Information Protocol (RIPng)\n" 
       "Static routes\n" 
        "Metric for redistributed routes\n"         "Metric for redistributed routes\n"
        "Default metric\n"         "Default metric\n"
        "Route map reference\n"         "Route map reference\n"
Line 8947  bgp_config_write_redistribute (struct vty *vty, struct Line 8999  bgp_config_write_redistribute (struct vty *vty, struct
           vty_out (vty, " redistribute %s", zebra_route_string(i));            vty_out (vty, " redistribute %s", zebra_route_string(i));
   
           if (bgp->redist_metric_flag[afi][i])            if (bgp->redist_metric_flag[afi][i])
            vty_out (vty, " metric %d", bgp->redist_metric[afi][i]);            vty_out (vty, " metric %u", bgp->redist_metric[afi][i]);
   
           if (bgp->rmap[afi][i].name)            if (bgp->rmap[afi][i].name)
             vty_out (vty, " route-map %s", bgp->rmap[afi][i].name);              vty_out (vty, " route-map %s", bgp->rmap[afi][i].name);
Line 9062  bgp_vty_init (void) Line 9114  bgp_vty_init (void)
   install_element (BGP_NODE, &bgp_confederation_peers_cmd);    install_element (BGP_NODE, &bgp_confederation_peers_cmd);
   install_element (BGP_NODE, &no_bgp_confederation_peers_cmd);    install_element (BGP_NODE, &no_bgp_confederation_peers_cmd);
   
     /* "maximum-paths" commands. */
     install_element (BGP_NODE, &bgp_maxpaths_cmd);
     install_element (BGP_NODE, &no_bgp_maxpaths_cmd);
     install_element (BGP_NODE, &no_bgp_maxpaths_arg_cmd);
     install_element (BGP_IPV4_NODE, &bgp_maxpaths_cmd);
     install_element (BGP_IPV4_NODE, &no_bgp_maxpaths_cmd);
     install_element (BGP_IPV4_NODE, &no_bgp_maxpaths_arg_cmd);
     install_element (BGP_NODE, &bgp_maxpaths_ibgp_cmd);
     install_element (BGP_NODE, &no_bgp_maxpaths_ibgp_cmd);
     install_element (BGP_NODE, &no_bgp_maxpaths_ibgp_arg_cmd);
     install_element (BGP_IPV4_NODE, &bgp_maxpaths_ibgp_cmd);
     install_element (BGP_IPV4_NODE, &no_bgp_maxpaths_ibgp_cmd);
     install_element (BGP_IPV4_NODE, &no_bgp_maxpaths_ibgp_arg_cmd);
   
   /* "timers bgp" commands. */    /* "timers bgp" commands. */
   install_element (BGP_NODE, &bgp_timers_cmd);    install_element (BGP_NODE, &bgp_timers_cmd);
   install_element (BGP_NODE, &no_bgp_timers_cmd);    install_element (BGP_NODE, &no_bgp_timers_cmd);
Line 9144  bgp_vty_init (void) Line 9210  bgp_vty_init (void)
   /* "neighbor local-as" commands. */    /* "neighbor local-as" commands. */
   install_element (BGP_NODE, &neighbor_local_as_cmd);    install_element (BGP_NODE, &neighbor_local_as_cmd);
   install_element (BGP_NODE, &neighbor_local_as_no_prepend_cmd);    install_element (BGP_NODE, &neighbor_local_as_no_prepend_cmd);
     install_element (BGP_NODE, &neighbor_local_as_no_prepend_replace_as_cmd);
   install_element (BGP_NODE, &no_neighbor_local_as_cmd);    install_element (BGP_NODE, &no_neighbor_local_as_cmd);
   install_element (BGP_NODE, &no_neighbor_local_as_val_cmd);    install_element (BGP_NODE, &no_neighbor_local_as_val_cmd);
   install_element (BGP_NODE, &no_neighbor_local_as_val2_cmd);    install_element (BGP_NODE, &no_neighbor_local_as_val2_cmd);
     install_element (BGP_NODE, &no_neighbor_local_as_val3_cmd);
   
   /* "neighbor password" commands. */    /* "neighbor password" commands. */
   install_element (BGP_NODE, &neighbor_password_cmd);    install_element (BGP_NODE, &neighbor_password_cmd);

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>