BGP: Implement key show commands for all VRFs

Key BGP 'show' commands have been expanded to support 'vrf all':

show ip bgp vrf all summary
show ip bgp vrf all neighbors
show ip bgp vrf all nexthop
show ip bgp vrf all update-group
show ip bgp vrf all
show bgp vrf all summary
show bgp vrf all update-group
show bgp vrf all

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:   Don Slice <dslice@cumulusnetworks.com>

Ticket: CM-10402
Reviewed By: CCR-4466
Testing Done: Manual
This commit is contained in:
vivek 2016-04-12 17:33:03 -07:00
parent b8b341d7c3
commit f186de2680
4 changed files with 245 additions and 13 deletions

View File

@ -372,8 +372,8 @@ bgp_multiaccess_check_v4 (struct in_addr nexthop, struct peer *peer)
return (ret);
}
static int
show_ip_bgp_nexthop_table (struct vty *vty, const char *name, int detail)
static void
bgp_show_nexthops (struct vty *vty, struct bgp *bgp, int detail)
{
struct bgp_node *rn;
struct bgp_nexthop_cache *bnc;
@ -381,17 +381,6 @@ show_ip_bgp_nexthop_table (struct vty *vty, const char *name, int detail)
struct nexthop *nexthop;
time_t tbuf;
afi_t afi;
struct bgp *bgp;
if (name)
bgp = bgp_lookup_by_name (name);
else
bgp = bgp_get_default ();
if (!bgp)
{
vty_out (vty, "%% No such BGP instance exist%s", VTY_NEWLINE);
return CMD_WARNING;
}
vty_out (vty, "Current BGP nexthop cache:%s", VTY_NEWLINE);
for (afi = AFI_IP ; afi < AFI_MAX ; afi++)
@ -459,9 +448,44 @@ show_ip_bgp_nexthop_table (struct vty *vty, const char *name, int detail)
}
}
}
}
static int
show_ip_bgp_nexthop_table (struct vty *vty, const char *name, int detail)
{
struct bgp *bgp;
if (name)
bgp = bgp_lookup_by_name (name);
else
bgp = bgp_get_default ();
if (!bgp)
{
vty_out (vty, "%% No such BGP instance exist%s", VTY_NEWLINE);
return CMD_WARNING;
}
bgp_show_nexthops (vty, bgp, detail);
return CMD_SUCCESS;
}
static void
bgp_show_all_instances_nexthops_vty (struct vty *vty)
{
struct listnode *node, *nnode;
struct bgp *bgp;
for (ALL_LIST_ELEMENTS (bm->bgp, node, nnode, bgp))
{
vty_out (vty, "%sInstance %s:%s",
VTY_NEWLINE,
(bgp->inst_type == BGP_INSTANCE_TYPE_DEFAULT) ? "Default" : bgp->name,
VTY_NEWLINE);
bgp_show_nexthops (vty, bgp, 0);
}
}
DEFUN (show_ip_bgp_nexthop,
show_ip_bgp_nexthop_cmd,
"show ip bgp nexthop",
@ -496,6 +520,19 @@ DEFUN (show_ip_bgp_instance_nexthop,
return show_ip_bgp_nexthop_table (vty, argv[1], 0);
}
DEFUN (show_ip_bgp_instance_all_nexthop,
show_ip_bgp_instance_all_nexthop_cmd,
"show ip bgp " BGP_INSTANCE_ALL_CMD " nexthop",
SHOW_STR
IP_STR
BGP_STR
BGP_INSTANCE_ALL_HELP_STR
"BGP nexthop table\n")
{
bgp_show_all_instances_nexthops_vty (vty);
return CMD_SUCCESS;
}
DEFUN (show_ip_bgp_instance_nexthop_detail,
show_ip_bgp_instance_nexthop_detail_cmd,
"show ip bgp " BGP_INSTANCE_CMD " nexthop detail",
@ -531,7 +568,9 @@ bgp_scan_vty_init (void)
install_element (VIEW_NODE, &show_ip_bgp_nexthop_detail_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_nexthop_detail_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_instance_nexthop_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_instance_all_nexthop_cmd);
install_element (VIEW_NODE, &show_ip_bgp_instance_nexthop_cmd);
install_element (VIEW_NODE, &show_ip_bgp_instance_all_nexthop_cmd);
install_element (VIEW_NODE, &show_ip_bgp_instance_nexthop_detail_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_instance_nexthop_detail_cmd);
}

View File

@ -7291,6 +7291,26 @@ bgp_show (struct vty *vty, struct bgp *bgp, afi_t afi, safi_t safi,
return bgp_show_table (vty, table, &bgp->router_id, type, output_arg, use_json);
}
static void
bgp_show_all_instances_routes_vty (struct vty *vty, afi_t afi, safi_t safi,
u_char use_json)
{
struct listnode *node, *nnode;
struct bgp *bgp;
struct bgp_table *table;
for (ALL_LIST_ELEMENTS (bm->bgp, node, nnode, bgp))
{
vty_out (vty, "%sInstance %s:%s",
VTY_NEWLINE,
(bgp->inst_type == BGP_INSTANCE_TYPE_DEFAULT) ? "Default" : bgp->name,
VTY_NEWLINE);
table = bgp->rib[afi][safi];
bgp_show_table (vty, table, &bgp->router_id,
bgp_show_type_normal, NULL, use_json);
}
}
/* Header of detailed BGP route information */
static void
route_vty_out_detail_header (struct vty *vty, struct bgp *bgp,
@ -7901,6 +7921,21 @@ DEFUN (show_ip_bgp_view,
return bgp_show (vty, bgp, AFI_IP, SAFI_UNICAST, bgp_show_type_normal, NULL, use_json(argc, argv));
}
DEFUN (show_ip_bgp_instance_all,
show_ip_bgp_instance_all_cmd,
"show ip bgp " BGP_INSTANCE_ALL_CMD " {json}",
SHOW_STR
IP_STR
BGP_STR
BGP_INSTANCE_ALL_HELP_STR
"JavaScript Object Notation\n")
{
u_char uj = use_json(argc, argv);
bgp_show_all_instances_routes_vty (vty, AFI_IP, SAFI_UNICAST, uj);
return CMD_SUCCESS;
}
DEFUN (show_ip_bgp_instance_route,
show_ip_bgp_instance_route_cmd,
"show ip bgp " BGP_INSTANCE_CMD " A.B.C.D {json}",
@ -8259,6 +8294,20 @@ DEFUN (show_bgp_view,
return bgp_show (vty, bgp, AFI_IP6, SAFI_UNICAST, bgp_show_type_normal, NULL, use_json(argc, argv));
}
DEFUN (show_bgp_instance_all,
show_bgp_instance_all_cmd,
"show bgp " BGP_INSTANCE_ALL_CMD " {json}",
SHOW_STR
BGP_STR
BGP_INSTANCE_ALL_HELP_STR
"JavaScript Object Notation\n")
{
u_char uj = use_json(argc, argv);
bgp_show_all_instances_routes_vty (vty, AFI_IP6, SAFI_UNICAST, uj);
return CMD_SUCCESS;
}
ALIAS (show_bgp_view,
show_bgp_instance_ipv6_cmd,
"show bgp " BGP_INSTANCE_CMD " ipv6 {json}",
@ -13974,6 +14023,7 @@ bgp_route_init (void)
install_element (VIEW_NODE, &show_ip_bgp_cmd);
install_element (VIEW_NODE, &show_ip_bgp_instance_cmd);
install_element (VIEW_NODE, &show_ip_bgp_instance_all_cmd);
install_element (VIEW_NODE, &show_ip_bgp_ipv4_cmd);
install_element (VIEW_NODE, &show_bgp_ipv4_safi_cmd);
install_element (VIEW_NODE, &show_ip_bgp_route_cmd);
@ -14116,6 +14166,7 @@ bgp_route_init (void)
install_element (ENABLE_NODE, &show_ip_bgp_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_instance_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_instance_all_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_ipv4_cmd);
install_element (ENABLE_NODE, &show_bgp_ipv4_safi_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_route_cmd);
@ -14313,6 +14364,7 @@ bgp_route_init (void)
install_element (VIEW_NODE, &show_bgp_neighbor_damp_cmd);
install_element (VIEW_NODE, &show_bgp_ipv6_neighbor_damp_cmd);
install_element (VIEW_NODE, &show_bgp_instance_cmd);
install_element (VIEW_NODE, &show_bgp_instance_all_cmd);
install_element (VIEW_NODE, &show_bgp_instance_ipv6_cmd);
install_element (VIEW_NODE, &show_bgp_instance_route_cmd);
install_element (VIEW_NODE, &show_bgp_instance_ipv6_route_cmd);
@ -14445,6 +14497,7 @@ bgp_route_init (void)
install_element (ENABLE_NODE, &show_bgp_neighbor_damp_cmd);
install_element (ENABLE_NODE, &show_bgp_ipv6_neighbor_damp_cmd);
install_element (ENABLE_NODE, &show_bgp_instance_cmd);
install_element (ENABLE_NODE, &show_bgp_instance_all_cmd);
install_element (ENABLE_NODE, &show_bgp_instance_ipv6_cmd);
install_element (ENABLE_NODE, &show_bgp_instance_route_cmd);
install_element (ENABLE_NODE, &show_bgp_instance_ipv6_route_cmd);

View File

@ -10105,6 +10105,23 @@ bgp_show_summary_vty (struct vty *vty, const char *name,
return CMD_SUCCESS;
}
static void
bgp_show_all_instances_summary_vty (struct vty *vty, afi_t afi, safi_t safi,
u_char use_json)
{
struct listnode *node, *nnode;
struct bgp *bgp;
for (ALL_LIST_ELEMENTS (bm->bgp, node, nnode, bgp))
{
vty_out (vty, "%sInstance %s:%s",
VTY_NEWLINE,
(bgp->inst_type == BGP_INSTANCE_TYPE_DEFAULT) ? "Default" : bgp->name,
VTY_NEWLINE);
bgp_show_summary (vty, bgp, afi, safi, use_json);
}
}
/* `show ip bgp summary' commands. */
DEFUN (show_ip_bgp_summary,
show_ip_bgp_summary_cmd,
@ -10133,6 +10150,22 @@ DEFUN (show_ip_bgp_instance_summary,
return bgp_show_summary_vty (vty, argv[1], AFI_IP, SAFI_UNICAST, uj);
}
DEFUN (show_ip_bgp_instance_all_summary,
show_ip_bgp_instance_all_summary_cmd,
"show ip bgp " BGP_INSTANCE_ALL_CMD " summary {json}",
SHOW_STR
IP_STR
BGP_STR
BGP_INSTANCE_ALL_HELP_STR
"Summary of BGP neighbor status\n"
"JavaScript Object Notation\n")
{
u_char uj = use_json(argc, argv);
bgp_show_all_instances_summary_vty (vty, AFI_IP, SAFI_UNICAST, uj);
return CMD_SUCCESS;
}
DEFUN (show_ip_bgp_ipv4_summary,
show_ip_bgp_ipv4_summary_cmd,
"show ip bgp ipv4 (unicast|multicast) summary {json}",
@ -10260,6 +10293,21 @@ DEFUN (show_bgp_instance_summary,
return bgp_show_summary_vty (vty, argv[1], AFI_IP6, SAFI_UNICAST, use_json(argc, argv));
}
DEFUN (show_bgp_instance_all_summary,
show_bgp_instance_all_summary_cmd,
"show bgp " BGP_INSTANCE_ALL_CMD " summary {json}",
SHOW_STR
BGP_STR
BGP_INSTANCE_ALL_HELP_STR
"Summary of BGP neighbor status\n"
"JavaScript Object Notation\n")
{
u_char uj = use_json(argc, argv);
bgp_show_all_instances_summary_vty (vty, AFI_IP6, SAFI_UNICAST, uj);
return CMD_SUCCESS;
}
ALIAS (show_bgp_summary,
show_bgp_ipv6_summary_cmd,
"show bgp ipv6 summary {json}",
@ -12095,6 +12143,25 @@ bgp_show_neighbor_vty (struct vty *vty, const char *name,
return CMD_SUCCESS;
}
static void
bgp_show_all_instances_neighbors_vty (struct vty *vty, u_char use_json)
{
struct listnode *node, *nnode;
struct bgp *bgp;
json_object *json = NULL;
for (ALL_LIST_ELEMENTS (bm->bgp, node, nnode, bgp))
{
vty_out (vty, "%sInstance %s:%s",
VTY_NEWLINE,
(bgp->inst_type == BGP_INSTANCE_TYPE_DEFAULT) ? "Default" : bgp->name,
VTY_NEWLINE);
if (use_json)
json = json_object_new_object();
bgp_show_neighbor (vty, bgp, show_all, NULL, NULL, use_json, json);
}
}
/* "show ip bgp neighbors" commands. */
DEFUN (show_ip_bgp_neighbors,
show_ip_bgp_neighbors_cmd,
@ -12256,6 +12323,22 @@ DEFUN (show_ip_bgp_instance_neighbors,
return bgp_show_neighbor_vty (vty, argv[1], show_all, NULL, uj);
}
DEFUN (show_ip_bgp_instance_all_neighbors,
show_ip_bgp_instance_all_neighbors_cmd,
"show ip bgp " BGP_INSTANCE_ALL_CMD " neighbors {json}",
SHOW_STR
IP_STR
BGP_STR
BGP_INSTANCE_ALL_HELP_STR
"Detailed information on TCP and BGP neighbor connections\n"
"JavaScript Object Notation\n")
{
u_char uj = use_json(argc, argv);
bgp_show_all_instances_neighbors_vty (vty, uj);
return CMD_SUCCESS;
}
ALIAS (show_ip_bgp_instance_neighbors,
show_bgp_instance_neighbors_cmd,
"show bgp " BGP_INSTANCE_CMD " neighbors {json}",
@ -12410,6 +12493,22 @@ static int bgp_show_update_groups(struct vty *vty, const char *name,
return CMD_SUCCESS;
}
static void
bgp_show_all_instances_updgrps_vty (struct vty *vty, afi_t afi, safi_t safi)
{
struct listnode *node, *nnode;
struct bgp *bgp;
for (ALL_LIST_ELEMENTS (bm->bgp, node, nnode, bgp))
{
vty_out (vty, "%sInstance %s:%s",
VTY_NEWLINE,
(bgp->inst_type == BGP_INSTANCE_TYPE_DEFAULT) ? "Default" : bgp->name,
VTY_NEWLINE);
update_group_show(bgp, afi, safi, vty, 0);
}
}
DEFUN (show_ip_bgp_updgrps,
show_ip_bgp_updgrps_cmd,
"show ip bgp update-groups",
@ -12433,6 +12532,19 @@ DEFUN (show_ip_bgp_instance_updgrps,
return (bgp_show_update_groups(vty, argv[1], AFI_IP, SAFI_UNICAST, 0));
}
DEFUN (show_ip_bgp_instance_all_updgrps,
show_ip_bgp_instance_all_updgrps_cmd,
"show ip bgp " BGP_INSTANCE_ALL_CMD " update-groups",
SHOW_STR
IP_STR
BGP_STR
BGP_INSTANCE_ALL_HELP_STR
"Detailed info about dynamic update groups\n")
{
bgp_show_all_instances_updgrps_vty (vty, AFI_IP, SAFI_UNICAST);
return CMD_SUCCESS;
}
DEFUN (show_bgp_ipv6_updgrps,
show_bgp_ipv6_updgrps_cmd,
"show bgp update-groups",
@ -12454,6 +12566,18 @@ DEFUN (show_bgp_instance_ipv6_updgrps,
return (bgp_show_update_groups(vty, argv[1], AFI_IP6, SAFI_UNICAST, 0));
}
DEFUN (show_bgp_instance_all_ipv6_updgrps,
show_bgp_instance_all_ipv6_updgrps_cmd,
"show bgp " BGP_INSTANCE_ALL_CMD " update-groups",
SHOW_STR
BGP_STR
BGP_INSTANCE_ALL_HELP_STR
"Detailed info about v6 dynamic update groups\n")
{
bgp_show_all_instances_updgrps_vty (vty, AFI_IP6, SAFI_UNICAST);
return CMD_SUCCESS;
}
DEFUN (show_bgp_updgrps,
show_bgp_updgrps_cmd,
"show bgp (ipv4|ipv6) (unicast|multicast) update-groups",
@ -14889,9 +15013,11 @@ bgp_vty_init (void)
install_element (VIEW_NODE, &show_ip_bgp_summary_cmd);
install_element (VIEW_NODE, &show_ip_bgp_updgrps_cmd);
install_element (VIEW_NODE, &show_ip_bgp_instance_updgrps_cmd);
install_element (VIEW_NODE, &show_ip_bgp_instance_all_updgrps_cmd);
install_element (VIEW_NODE, &show_bgp_updgrps_cmd);
install_element (VIEW_NODE, &show_bgp_ipv6_updgrps_cmd);
install_element (VIEW_NODE, &show_bgp_instance_ipv6_updgrps_cmd);
install_element (VIEW_NODE, &show_bgp_instance_all_ipv6_updgrps_cmd);
install_element (VIEW_NODE, &show_ip_bgp_updgrps_s_cmd);
install_element (VIEW_NODE, &show_ip_bgp_instance_updgrps_s_cmd);
install_element (VIEW_NODE, &show_bgp_updgrps_s_cmd);
@ -14908,6 +15034,7 @@ bgp_vty_init (void)
install_element (VIEW_NODE, &show_bgp_instance_updgrps_adj_s_cmd);
install_element (VIEW_NODE, &show_bgp_updgrps_afi_adj_s_cmd);
install_element (VIEW_NODE, &show_ip_bgp_instance_summary_cmd);
install_element (VIEW_NODE, &show_ip_bgp_instance_all_summary_cmd);
install_element (VIEW_NODE, &show_ip_bgp_ipv4_summary_cmd);
install_element (VIEW_NODE, &show_bgp_ipv4_safi_summary_cmd);
install_element (VIEW_NODE, &show_ip_bgp_instance_ipv4_summary_cmd);
@ -14917,6 +15044,7 @@ bgp_vty_init (void)
#ifdef HAVE_IPV6
install_element (VIEW_NODE, &show_bgp_summary_cmd);
install_element (VIEW_NODE, &show_bgp_instance_summary_cmd);
install_element (VIEW_NODE, &show_bgp_instance_all_summary_cmd);
install_element (VIEW_NODE, &show_bgp_ipv6_summary_cmd);
install_element (VIEW_NODE, &show_bgp_ipv6_safi_summary_cmd);
install_element (VIEW_NODE, &show_bgp_instance_ipv6_summary_cmd);
@ -14925,9 +15053,11 @@ bgp_vty_init (void)
install_element (RESTRICTED_NODE, &show_ip_bgp_summary_cmd);
install_element (RESTRICTED_NODE, &show_ip_bgp_updgrps_cmd);
install_element (RESTRICTED_NODE, &show_ip_bgp_instance_updgrps_cmd);
install_element (RESTRICTED_NODE, &show_ip_bgp_instance_all_updgrps_cmd);
install_element (RESTRICTED_NODE, &show_bgp_updgrps_cmd);
install_element (RESTRICTED_NODE, &show_bgp_ipv6_updgrps_cmd);
install_element (RESTRICTED_NODE, &show_bgp_instance_ipv6_updgrps_cmd);
install_element (RESTRICTED_NODE, &show_bgp_instance_all_ipv6_updgrps_cmd);
install_element (RESTRICTED_NODE, &show_ip_bgp_updgrps_s_cmd);
install_element (RESTRICTED_NODE, &show_ip_bgp_instance_updgrps_s_cmd);
install_element (RESTRICTED_NODE, &show_bgp_updgrps_s_cmd);
@ -14944,6 +15074,7 @@ bgp_vty_init (void)
install_element (RESTRICTED_NODE, &show_bgp_instance_updgrps_adj_s_cmd);
install_element (RESTRICTED_NODE, &show_bgp_updgrps_afi_adj_s_cmd);
install_element (RESTRICTED_NODE, &show_ip_bgp_instance_summary_cmd);
install_element (RESTRICTED_NODE, &show_ip_bgp_instance_all_summary_cmd);
install_element (RESTRICTED_NODE, &show_ip_bgp_ipv4_summary_cmd);
install_element (RESTRICTED_NODE, &show_bgp_ipv4_safi_summary_cmd);
install_element (RESTRICTED_NODE, &show_ip_bgp_instance_ipv4_summary_cmd);
@ -14953,6 +15084,7 @@ bgp_vty_init (void)
#ifdef HAVE_IPV6
install_element (RESTRICTED_NODE, &show_bgp_summary_cmd);
install_element (RESTRICTED_NODE, &show_bgp_instance_summary_cmd);
install_element (RESTRICTED_NODE, &show_bgp_instance_all_summary_cmd);
install_element (RESTRICTED_NODE, &show_bgp_ipv6_summary_cmd);
install_element (RESTRICTED_NODE, &show_bgp_ipv6_safi_summary_cmd);
install_element (RESTRICTED_NODE, &show_bgp_instance_ipv6_summary_cmd);
@ -14961,9 +15093,11 @@ bgp_vty_init (void)
install_element (ENABLE_NODE, &show_ip_bgp_summary_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_updgrps_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_instance_updgrps_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_instance_all_updgrps_cmd);
install_element (ENABLE_NODE, &show_bgp_updgrps_cmd);
install_element (ENABLE_NODE, &show_bgp_ipv6_updgrps_cmd);
install_element (ENABLE_NODE, &show_bgp_instance_ipv6_updgrps_cmd);
install_element (ENABLE_NODE, &show_bgp_instance_all_ipv6_updgrps_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_updgrps_s_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_instance_updgrps_s_cmd);
install_element (ENABLE_NODE, &show_bgp_updgrps_s_cmd);
@ -14980,6 +15114,7 @@ bgp_vty_init (void)
install_element (ENABLE_NODE, &show_bgp_instance_updgrps_adj_s_cmd);
install_element (ENABLE_NODE, &show_bgp_updgrps_afi_adj_s_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_instance_summary_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_instance_all_summary_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_ipv4_summary_cmd);
install_element (ENABLE_NODE, &show_bgp_ipv4_safi_summary_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_instance_ipv4_summary_cmd);
@ -14989,6 +15124,7 @@ bgp_vty_init (void)
#ifdef HAVE_IPV6
install_element (ENABLE_NODE, &show_bgp_summary_cmd);
install_element (ENABLE_NODE, &show_bgp_instance_summary_cmd);
install_element (ENABLE_NODE, &show_bgp_instance_all_summary_cmd);
install_element (ENABLE_NODE, &show_bgp_ipv6_summary_cmd);
install_element (ENABLE_NODE, &show_bgp_ipv6_safi_summary_cmd);
install_element (ENABLE_NODE, &show_bgp_instance_ipv6_summary_cmd);
@ -15005,6 +15141,7 @@ bgp_vty_init (void)
install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_neighbors_peer_cmd);
install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_neighbors_peer_cmd);
install_element (VIEW_NODE, &show_ip_bgp_instance_neighbors_cmd);
install_element (VIEW_NODE, &show_ip_bgp_instance_all_neighbors_cmd);
install_element (VIEW_NODE, &show_ip_bgp_instance_neighbors_peer_cmd);
install_element (RESTRICTED_NODE, &show_ip_bgp_neighbors_peer_cmd);
install_element (RESTRICTED_NODE, &show_ip_bgp_ipv4_neighbors_peer_cmd);
@ -15020,6 +15157,7 @@ bgp_vty_init (void)
install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_neighbors_peer_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_neighbors_peer_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_instance_neighbors_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_instance_all_neighbors_cmd);
install_element (ENABLE_NODE, &show_ip_bgp_instance_neighbors_peer_cmd);
#ifdef HAVE_IPV6

View File

@ -27,6 +27,8 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
#define DYNAMIC_NEIGHBOR_LIMIT_RANGE "<1-5000>"
#define BGP_INSTANCE_CMD "(view|vrf) WORD"
#define BGP_INSTANCE_HELP_STR "BGP view\nBGP VRF\nView/VRF name\n"
#define BGP_INSTANCE_ALL_CMD "(view|vrf) all"
#define BGP_INSTANCE_ALL_HELP_STR "BGP view\nBGP VRF\nAll Views/VRFs\n"
extern void bgp_vty_init (void);
extern const char *afi_safi_print (afi_t, safi_t);