summaryrefslogtreecommitdiffstats
path: root/bgpd
diff options
context:
space:
mode:
authorvivek <vivek@cumulusnetworks.com>2016-04-13 02:33:03 +0200
committervivek <vivek@cumulusnetworks.com>2016-04-13 18:59:00 +0200
commitf186de2680ae17f96f8532559cd41f96cc2f65e0 (patch)
tree00799e867a6702c60df2bf81a9228d83480ed105 /bgpd
parentlib: Fix priviledge modification for vty group specified (diff)
downloadfrr-f186de2680ae17f96f8532559cd41f96cc2f65e0.tar.xz
frr-f186de2680ae17f96f8532559cd41f96cc2f65e0.zip
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
Diffstat (limited to 'bgpd')
-rw-r--r--bgpd/bgp_nexthop.c65
-rw-r--r--bgpd/bgp_route.c53
-rw-r--r--bgpd/bgp_vty.c138
-rw-r--r--bgpd/bgp_vty.h2
4 files changed, 245 insertions, 13 deletions
diff --git a/bgpd/bgp_nexthop.c b/bgpd/bgp_nexthop.c
index 534f29de5..d959076e5 100644
--- a/bgpd/bgp_nexthop.c
+++ b/bgpd/bgp_nexthop.c
@@ -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);
}
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index d745dfdfd..7a7504fbf 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -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);
diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c
index c1648c1c9..d54e1c7e4 100644
--- a/bgpd/bgp_vty.c
+++ b/bgpd/bgp_vty.c
@@ -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
diff --git a/bgpd/bgp_vty.h b/bgpd/bgp_vty.h
index 53456ffcd..16cda49f6 100644
--- a/bgpd/bgp_vty.h
+++ b/bgpd/bgp_vty.h
@@ -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);