]> git.proxmox.com Git - mirror_frr.git/commitdiff
BGP: Implement key show commands for all VRFs
authorvivek <vivek@cumulusnetworks.com>
Wed, 13 Apr 2016 00:33:03 +0000 (17:33 -0700)
committervivek <vivek@cumulusnetworks.com>
Wed, 13 Apr 2016 16:59:00 +0000 (09:59 -0700)
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

bgpd/bgp_nexthop.c
bgpd/bgp_route.c
bgpd/bgp_vty.c
bgpd/bgp_vty.h

index 534f29de55491275a824784a56db799933976f6e..d959076e595626e6fc01d1d489efadf9e3f49a3a 100644 (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);
 }
index d745dfdfd8dc013c756e158204cdcdea45dcbdd4..7a7504fbf7a9514b398a25a57bf4948c9a0cc099 100644 (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);
index c1648c1c96cdb6cdf1d2104e3bf392b6287919d7..d54e1c7e43f12590f10c9ab36d758b59249d2031 100644 (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
index 53456ffcd1de6df7c68bd585b0b49783b0cb84c6..16cda49f6840e91a1b1a070dff1f8244906e471b 100644 (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);