bgpd: Add support for BGP Large Communities
As described by Michael Lambert <lambert@psc.edu> to the list:
Traditional communities are four-octet entities to support two-octet ASNs
and are usually represented as <asn>:<data>. Large communities are an
enhancement to support four-octet ASNs and are 12 octets long, represented
as <asn>:<data-1>:<data-2>.
This issue has been tracked in quagga bugzilla ticket #875, which documents
some of the usage and indicates that some testing has been done.
TODO: Documentation - update doc/bgpd.texi.
* bgp_attr.{c,h}: Add BGP_ATTR_LARGE_COMMUNITIES codepoint. Add
(struct lcommunity *) to (struct bgp_attr_extra).
* bgp_clist.{c,h}: Large community codepoints and routines.
* bgp_route.c: Display support.
* bgp_routemap.c: 'match lcommunity', 'set large-community' and
'set large-comm-list'
* bgp_vty.c: Peer configuration, add 'large' to 'neighbor send-community ..'.
Add "show ip bgp large-community", ""ip large-community-list ...".
Authors: Keyur Patel <keyur@arrcus.com>
Job Snijders <job@instituut.net>
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index 9137143..13596fb 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -1,5 +1,6 @@
/* BGP routing information
Copyright (C) 1996, 97, 98, 99 Kunihiro Ishiguro
+ Copyright (C) 2016 Job Snijders <job@instituut.net>
This file is part of GNU Zebra.
@@ -44,6 +45,7 @@
#include "bgpd/bgp_regex.h"
#include "bgpd/bgp_community.h"
#include "bgpd/bgp_ecommunity.h"
+#include "bgpd/bgp_lcommunity.h"
#include "bgpd/bgp_clist.h"
#include "bgpd/bgp_packet.h"
#include "bgpd/bgp_filter.h"
@@ -6428,8 +6430,13 @@
if (attr->flag & ATTR_FLAG_BIT(BGP_ATTR_EXT_COMMUNITIES))
vty_out (vty, " Extended Community: %s%s",
attr->extra->ecommunity->str, VTY_NEWLINE);
-
- /* Line 6 display Originator, Cluster-id */
+
+ /* Line 6 display Large community */
+ if (attr->flag & ATTR_FLAG_BIT(BGP_ATTR_LARGE_COMMUNITIES))
+ vty_out (vty, " Large Community: %s%s",
+ attr->extra->lcommunity->str, VTY_NEWLINE);
+
+ /* Line 7 display Originator, Cluster-id */
if ((attr->flag & ATTR_FLAG_BIT(BGP_ATTR_ORIGINATOR_ID)) ||
(attr->flag & ATTR_FLAG_BIT(BGP_ATTR_CLUSTER_LIST)))
{
@@ -6452,7 +6459,7 @@
if (binfo->extra && binfo->extra->damp_info)
bgp_damp_info_vty (vty, binfo);
- /* Line 7 display Uptime */
+ /* Line 8 display Uptime */
#ifdef HAVE_CLOCK_MONOTONIC
tbuf = time(NULL) - (bgp_clock() - binfo->uptime);
vty_out (vty, " Last update: %s", ctime(&tbuf));
@@ -6486,6 +6493,9 @@
bgp_show_type_community_exact,
bgp_show_type_community_list,
bgp_show_type_community_list_exact,
+ bgp_show_type_lcommunity_all,
+ bgp_show_type_lcommunity,
+ bgp_show_type_lcommunity_list,
bgp_show_type_flap_statistics,
bgp_show_type_flap_address,
bgp_show_type_flap_prefix,
@@ -6648,6 +6658,32 @@
if (! community_list_exact_match (ri->attr->community, list))
continue;
}
+ if (type == bgp_show_type_community_all)
+ {
+ if (! ri->attr->community)
+ continue;
+ }
+ if (type == bgp_show_type_lcommunity)
+ {
+ struct lcommunity *lcom = output_arg;
+
+ if (! ri->attr->extra || ! ri->attr->extra->lcommunity ||
+ ! lcommunity_match (ri->attr->extra->lcommunity, lcom))
+ continue;
+ }
+ if (type == bgp_show_type_lcommunity_list)
+ {
+ struct community_list *list = output_arg;
+
+ if (! ri->attr->extra ||
+ ! lcommunity_list_match (ri->attr->extra->lcommunity, list))
+ continue;
+ }
+ if (type == bgp_show_type_lcommunity_all)
+ {
+ if (! ri->attr->extra || ! ri->attr->extra->lcommunity)
+ continue;
+ }
if (type == bgp_show_type_flap_address
|| type == bgp_show_type_flap_prefix)
{
@@ -9163,6 +9199,84 @@
bgp_show_type_community_all, NULL);
}
+/* large-community */
+DEFUN (show_ip_bgp_lcommunity_all,
+ show_ip_bgp_lcommunity_all_cmd,
+ "show ip bgp large-community",
+ SHOW_STR
+ IP_STR
+ BGP_STR
+ "Display routes matching the large-communities\n")
+{
+ return bgp_show (vty, NULL, AFI_IP, SAFI_UNICAST,
+ bgp_show_type_lcommunity_all, NULL);
+}
+
+DEFUN (show_ip_bgp_ipv4_lcommunity_all,
+ show_ip_bgp_ipv4_lcommunity_all_cmd,
+ "show ip bgp ipv4 (unicast|multicast) large-community",
+ SHOW_STR
+ IP_STR
+ BGP_STR
+ "Address family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
+ "Display routes matching the large-communities\n")
+{
+ if (strncmp (argv[0], "m", 1) == 0)
+ return bgp_show (vty, NULL, AFI_IP, SAFI_MULTICAST,
+ bgp_show_type_lcommunity_all, NULL);
+
+ return bgp_show (vty, NULL, AFI_IP, SAFI_UNICAST,
+ bgp_show_type_lcommunity_all, NULL);
+}
+
+DEFUN (show_bgp_lcommunity_all,
+ show_bgp_lcommunity_all_cmd,
+ "show bgp large-community",
+ SHOW_STR
+ BGP_STR
+ "Display routes matching the large-communities\n")
+{
+ return bgp_show (vty, NULL, AFI_IP6, SAFI_UNICAST,
+ bgp_show_type_lcommunity_all, NULL);
+}
+
+ALIAS (show_bgp_lcommunity_all,
+ show_bgp_ipv6_lcommunity_all_cmd,
+ "show bgp ipv6 large-community",
+ SHOW_STR
+ BGP_STR
+ "Address family\n"
+ "Display routes matching the large-communities\n")
+
+/* old command */
+DEFUN (show_ipv6_bgp_lcommunity_all,
+ show_ipv6_bgp_lcommunity_all_cmd,
+ "show ipv6 bgp large-community",
+ SHOW_STR
+ IPV6_STR
+ BGP_STR
+ "Display routes matching the large-communities\n")
+{
+ return bgp_show (vty, NULL, AFI_IP6, SAFI_UNICAST,
+ bgp_show_type_lcommunity_all, NULL);
+}
+
+/* old command */
+DEFUN (show_ipv6_mbgp_lcommunity_all,
+ show_ipv6_mbgp_lcommunity_all_cmd,
+ "show ipv6 mbgp large-community",
+ SHOW_STR
+ IPV6_STR
+ MBGP_STR
+ "Display routes matching the large-communities\n")
+{
+ return bgp_show (vty, NULL, AFI_IP6, SAFI_MULTICAST,
+ bgp_show_type_lcommunity_all, NULL);
+}
+
+
DEFUN (show_bgp_ipv4_route_map,
show_bgp_ipv4_route_map_cmd,
"show bgp ipv4 route-map WORD",
@@ -11398,6 +11512,795 @@
return bgp_show_community_list (vty, argv[1], 1, AFI_IP6, safi);
}
+/*
+ * Large Community show commands.
+ */
+
+DEFUN (show_bgp_afi_lcommunity_all,
+ show_bgp_afi_lcommunity_all_cmd,
+ "show bgp (ipv4|ipv6) large-community",
+ SHOW_STR
+ BGP_STR
+ "Address family\n"
+ "Address family\n"
+ "Display routes matching the large-communities\n")
+{
+ afi_t afi;
+ safi_t safi = SAFI_UNICAST;
+
+ if (bgp_parse_afi(argv[0], &afi)) {
+ vty_out (vty, "Error: Bad AFI: %s%s", argv[0], VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ return bgp_show (vty, NULL, afi, safi, bgp_show_type_lcommunity_all, NULL);
+}
+
+static int
+bgp_show_lcommunity (struct vty *vty, const char *view_name, int argc,
+ const char **argv, afi_t afi, safi_t safi)
+{
+ struct lcommunity *lcom;
+ struct buffer *b;
+ struct bgp *bgp;
+ int i;
+ char *str;
+ int first = 0;
+
+ /* BGP structure lookup */
+ if (view_name)
+ {
+ bgp = bgp_lookup_by_name (view_name);
+ if (bgp == NULL)
+ {
+ vty_out (vty, "Can't find BGP view %s%s", view_name, VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ }
+ else
+ {
+ bgp = bgp_get_default ();
+ if (bgp == NULL)
+ {
+ vty_out (vty, "No BGP process is configured%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ }
+
+ b = buffer_new (1024);
+ for (i = 0; i < argc; i++)
+ {
+ if (first)
+ buffer_putc (b, ' ');
+ else
+ {
+ if ((strcmp (argv[i], "unicast") == 0) || (strcmp (argv[i], "multicast") == 0))
+ continue;
+ first = 1;
+ }
+
+ buffer_putstr (b, argv[i]);
+ }
+ buffer_putc (b, '\0');
+
+ str = buffer_getstr (b);
+ buffer_free (b);
+
+ lcom = lcommunity_str2com (str);
+ XFREE (MTYPE_TMP, str);
+ if (! lcom)
+ {
+ vty_out (vty, "%% Large-community malformed: %s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ return bgp_show (vty, bgp, afi, safi, bgp_show_type_lcommunity, lcom);
+}
+
+DEFUN (show_ip_bgp_lcommunity,
+ show_ip_bgp_lcommunity_cmd,
+ "show ip bgp large-community (AA:BB:CC)",
+ SHOW_STR
+ IP_STR
+ BGP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n")
+{
+ return bgp_show_lcommunity (vty, NULL, argc, argv, AFI_IP, SAFI_UNICAST);
+}
+
+ALIAS (show_ip_bgp_lcommunity,
+ show_ip_bgp_lcommunity2_cmd,
+ "show ip bgp large-community (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ IP_STR
+ BGP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n")
+
+ALIAS (show_ip_bgp_lcommunity,
+ show_ip_bgp_lcommunity3_cmd,
+ "show ip bgp large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ IP_STR
+ BGP_STR
+ "Display routes matching the large-communities\n"
+ "largecommunity number\n"
+ "largecommunity number\n"
+ "largecommunity number\n")
+
+ALIAS (show_ip_bgp_lcommunity,
+ show_ip_bgp_lcommunity4_cmd,
+ "show ip bgp large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ IP_STR
+ BGP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+DEFUN (show_ip_bgp_ipv4_lcommunity,
+ show_ip_bgp_ipv4_lcommunity_cmd,
+ "show ip bgp ipv4 (unicast|multicast) large-community (AA:BB:CC)",
+ SHOW_STR
+ IP_STR
+ BGP_STR
+ "Address family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n")
+{
+ if (strncmp (argv[0], "m", 1) == 0)
+ return bgp_show_lcommunity (vty, NULL, argc, argv, AFI_IP, SAFI_MULTICAST);
+
+ return bgp_show_lcommunity (vty, NULL, argc, argv, AFI_IP, SAFI_UNICAST);
+}
+
+ALIAS (show_ip_bgp_ipv4_lcommunity,
+ show_ip_bgp_ipv4_lcommunity2_cmd,
+ "show ip bgp ipv4 (unicast|multicast) large-community (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ IP_STR
+ BGP_STR
+ "Address family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n")
+
+ALIAS (show_ip_bgp_ipv4_lcommunity,
+ show_ip_bgp_ipv4_lcommunity3_cmd,
+ "show ip bgp ipv4 (unicast|multicast) large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ IP_STR
+ BGP_STR
+ "Address family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+ALIAS (show_ip_bgp_ipv4_lcommunity,
+ show_ip_bgp_ipv4_lcommunity4_cmd,
+ "show ip bgp ipv4 (unicast|multicast) large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ IP_STR
+ BGP_STR
+ "Address family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+DEFUN (show_bgp_lcommunity,
+ show_bgp_lcommunity_cmd,
+ "show bgp large-community (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n")
+{
+ return bgp_show_lcommunity (vty, NULL, argc, argv, AFI_IP6, SAFI_UNICAST);
+}
+
+ALIAS (show_bgp_lcommunity,
+ show_bgp_ipv6_lcommunity_cmd,
+ "show bgp ipv6 large-community (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "Address family\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n")
+
+ALIAS (show_bgp_lcommunity,
+ show_bgp_lcommunity2_cmd,
+ "show bgp large-community (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n")
+
+ALIAS (show_bgp_lcommunity,
+ show_bgp_ipv6_lcommunity2_cmd,
+ "show bgp ipv6 large-community (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "Address family\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n")
+
+ALIAS (show_bgp_lcommunity,
+ show_bgp_lcommunity3_cmd,
+ "show bgp large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+ALIAS (show_bgp_lcommunity,
+ show_bgp_ipv6_lcommunity3_cmd,
+ "show bgp ipv6 large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "Address family\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+ALIAS (show_bgp_lcommunity,
+ show_bgp_lcommunity4_cmd,
+ "show bgp large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+ALIAS (show_bgp_lcommunity,
+ show_bgp_ipv6_lcommunity4_cmd,
+ "show bgp ipv6 large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "Address family\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+/* old command */
+DEFUN (show_ipv6_bgp_lcommunity,
+ show_ipv6_bgp_lcommunity_cmd,
+ "show ipv6 bgp large-community (AA:BB:CC)",
+ SHOW_STR
+ IPV6_STR
+ BGP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n")
+{
+ return bgp_show_lcommunity (vty, NULL, argc, argv, AFI_IP6, SAFI_UNICAST);
+}
+
+/* old command */
+ALIAS (show_ipv6_bgp_lcommunity,
+ show_ipv6_bgp_lcommunity2_cmd,
+ "show ipv6 bgp large-community (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ IPV6_STR
+ BGP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n")
+
+/* old command */
+ALIAS (show_ipv6_bgp_lcommunity,
+ show_ipv6_bgp_lcommunity3_cmd,
+ "show ipv6 bgp large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ IPV6_STR
+ BGP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+/* old command */
+ALIAS (show_ipv6_bgp_lcommunity,
+ show_ipv6_bgp_lcommunity4_cmd,
+ "show ipv6 bgp large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ IPV6_STR
+ BGP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+/* old command */
+DEFUN (show_ipv6_mbgp_lcommunity,
+ show_ipv6_mbgp_lcommunity_cmd,
+ "show ipv6 mbgp large-community (AA:BB:CC)",
+ SHOW_STR
+ IPV6_STR
+ MBGP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n")
+{
+ return bgp_show_lcommunity (vty, NULL, argc, argv, AFI_IP6, SAFI_MULTICAST);
+}
+
+/* old command */
+ALIAS (show_ipv6_mbgp_lcommunity,
+ show_ipv6_mbgp_lcommunity2_cmd,
+ "show ipv6 mbgp large-community (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ IPV6_STR
+ MBGP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n")
+
+/* old command */
+ALIAS (show_ipv6_mbgp_lcommunity,
+ show_ipv6_mbgp_lcommunity3_cmd,
+ "show ipv6 mbgp large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ IPV6_STR
+ MBGP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+/* old command */
+ALIAS (show_ipv6_mbgp_lcommunity,
+ show_ipv6_mbgp_lcommunity4_cmd,
+ "show ipv6 mbgp laarge-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ IPV6_STR
+ MBGP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+DEFUN (show_bgp_ipv4_lcommunity,
+ show_bgp_ipv4_lcommunity_cmd,
+ "show bgp ipv4 large-community (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ IP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n")
+{
+ return bgp_show_lcommunity (vty, NULL, argc, argv, AFI_IP, SAFI_UNICAST);
+}
+
+ALIAS (show_bgp_ipv4_lcommunity,
+ show_bgp_ipv4_lcommunity2_cmd,
+ "show bgp ipv4 large-community (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ IP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n")
+
+ALIAS (show_bgp_ipv4_lcommunity,
+ show_bgp_ipv4_lcommunity3_cmd,
+ "show bgp ipv4 large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ IP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+ALIAS (show_bgp_ipv4_lcommunity,
+ show_bgp_ipv4_lcommunity4_cmd,
+ "show bgp ipv4 large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ IP_STR
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+DEFUN (show_bgp_ipv4_safi_lcommunity,
+ show_bgp_ipv4_safi_lcommunity_cmd,
+ "show bgp ipv4 (unicast|multicast) large-community (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "Address family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n")
+{
+ if (strncmp (argv[0], "m", 1) == 0)
+ return bgp_show_lcommunity (vty, NULL, argc, argv, AFI_IP, SAFI_MULTICAST);
+
+ return bgp_show_lcommunity (vty, NULL, argc, argv, AFI_IP, SAFI_UNICAST);
+}
+
+ALIAS (show_bgp_ipv4_safi_lcommunity,
+ show_bgp_ipv4_safi_lcommunity2_cmd,
+ "show bgp ipv4 (unicast|multicast) large-community (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "Address family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n")
+
+ALIAS (show_bgp_ipv4_safi_lcommunity,
+ show_bgp_ipv4_safi_lcommunity3_cmd,
+ "show bgp ipv4 (unicast|multicast) large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "Address family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+ALIAS (show_bgp_ipv4_safi_lcommunity,
+ show_bgp_ipv4_safi_lcommunity4_cmd,
+ "show bgp ipv4 (unicast|multicast) large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "Address family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+DEFUN (show_bgp_view_afi_safi_lcommunity_all,
+ show_bgp_view_afi_safi_lcommunity_all_cmd,
+ "show bgp view WORD (ipv4|ipv6) (unicast|multicast) large-community",
+ SHOW_STR
+ BGP_STR
+ "BGP view\n"
+ "View name\n"
+ "Address family\n"
+ "Address family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
+ "Display routes matching the large-communities\n")
+{
+ int afi;
+ int safi;
+ struct bgp *bgp;
+
+ /* BGP structure lookup. */
+ bgp = bgp_lookup_by_name (argv[0]);
+ if (bgp == NULL)
+ {
+ vty_out (vty, "Can't find BGP view %s%s", argv[0], VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ afi = (strncmp (argv[1], "ipv6", 4) == 0) ? AFI_IP6 : AFI_IP;
+ safi = (strncmp (argv[2], "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST;
+ return bgp_show (vty, bgp, afi, safi, bgp_show_type_lcommunity_all, NULL);
+}
+
+DEFUN (show_bgp_view_afi_safi_lcommunity,
+ show_bgp_view_afi_safi_lcommunity_cmd,
+ "show bgp view WORD (ipv4|ipv6) (unicast|multicast) large-community (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "BGP view\n"
+ "View name\n"
+ "Address family\n"
+ "Address family\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n")
+{
+ int afi;
+ int safi;
+
+ afi = (strncmp (argv[1], "ipv6", 4) == 0) ? AFI_IP6 : AFI_IP;
+ safi = (strncmp (argv[2], "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST;
+ return bgp_show_lcommunity (vty, argv[0], argc-3, &argv[3], afi, safi);
+}
+
+ALIAS (show_bgp_view_afi_safi_lcommunity,
+ show_bgp_view_afi_safi_lcommunity2_cmd,
+ "show bgp view WORD (ipv4|ipv6) (unicast|multicast) large-community (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "BGP view\n"
+ "View name\n"
+ "Address family\n"
+ "Address family\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n")
+
+ALIAS (show_bgp_view_afi_safi_lcommunity,
+ show_bgp_view_afi_safi_lcommunity3_cmd,
+ "show bgp view WORD (ipv4|ipv6) (unicast|multicast) large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "BGP view\n"
+ "View name\n"
+ "Address family\n"
+ "Address family\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+ALIAS (show_bgp_view_afi_safi_lcommunity,
+ show_bgp_view_afi_safi_lcommunity4_cmd,
+ "show bgp view WORD (ipv4|ipv6) (unicast|multicast) large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "BGP view\n"
+ "View name\n"
+ "Address family\n"
+ "Address family\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+DEFUN (show_bgp_ipv6_safi_lcommunity,
+ show_bgp_ipv6_safi_lcommunity_cmd,
+ "show bgp ipv6 (encap|multicast|unicast|vpn) large-community AA:BB:CC",
+ SHOW_STR
+ BGP_STR
+ "Address family\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n")
+{
+ safi_t safi;
+
+ if (bgp_parse_safi(argv[0], &safi)) {
+ vty_out (vty, "Error: Bad SAFI: %s%s", argv[0], VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ return bgp_show_lcommunity (vty, NULL, argc-1, argv+1, AFI_IP6, safi);
+}
+
+ALIAS (show_bgp_ipv6_safi_lcommunity,
+ show_bgp_ipv6_safi_lcommunity2_cmd,
+ "show bgp ipv6 (encap|multicast|unicast|vpn) large-community (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "Address family\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n")
+
+ALIAS (show_bgp_ipv6_safi_lcommunity,
+ show_bgp_ipv6_safi_lcommunity3_cmd,
+ "show bgp ipv6 (encap|multicast|unicast|vpn) large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "Address family\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+ALIAS (show_bgp_ipv6_safi_lcommunity,
+ show_bgp_ipv6_safi_lcommunity4_cmd,
+ "show bgp ipv6 (encap|multicast|unicast|vpn) large-community (AA:BB:CC) (AA:BB:CC) (AA:BB:CC) (AA:BB:CC)",
+ SHOW_STR
+ BGP_STR
+ "Address family\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Display routes matching the large-communities\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n"
+ "large-community number\n")
+
+static int
+bgp_show_lcommunity_list (struct vty *vty, const char *lcom,
+ afi_t afi, safi_t safi)
+{
+ struct community_list *list;
+
+ list = community_list_lookup (bgp_clist, lcom, LARGE_COMMUNITY_LIST_MASTER);
+ if (list == NULL)
+ {
+ vty_out (vty, "%% %s is not a valid large-community-list name%s", lcom,
+ VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ return bgp_show (vty, NULL, afi, safi, bgp_show_type_lcommunity_list, list);
+}
+
+DEFUN (show_ip_bgp_lcommunity_list,
+ show_ip_bgp_lcommunity_list_cmd,
+ "show ip bgp large-community-list (<1-500>|WORD)",
+ SHOW_STR
+ IP_STR
+ BGP_STR
+ "Display routes matching the large-community-list\n"
+ "large-community-list number\n"
+ "large-community-list name\n")
+{
+ return bgp_show_lcommunity_list (vty, argv[0], AFI_IP, SAFI_UNICAST);
+}
+
+DEFUN (show_ip_bgp_ipv4_lcommunity_list,
+ show_ip_bgp_ipv4_lcommunity_list_cmd,
+ "show ip bgp ipv4 (unicast|multicast) large-community-list (<1-500>|WORD)",
+ SHOW_STR
+ IP_STR
+ BGP_STR
+ "Address family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
+ "Display routes matching the large-community-list\n"
+ "large-community-list number\n"
+ "large-community-list name\n")
+{
+ if (strncmp (argv[0], "m", 1) == 0)
+ return bgp_show_lcommunity_list (vty, argv[1], AFI_IP, SAFI_MULTICAST);
+
+ return bgp_show_lcommunity_list (vty, argv[1], AFI_IP, SAFI_UNICAST);
+}
+
+DEFUN (show_bgp_lcommunity_list,
+ show_bgp_lcommunity_list_cmd,
+ "show bgp large-community-list (<1-500>|WORD)",
+ SHOW_STR
+ BGP_STR
+ "Display routes matching the large-community-list\n"
+ "large-community-list number\n"
+ "large-community-list name\n")
+{
+ return bgp_show_lcommunity_list (vty, argv[0], AFI_IP6, SAFI_UNICAST);
+}
+
+ALIAS (show_bgp_lcommunity_list,
+ show_bgp_ipv6_lcommunity_list_cmd,
+ "show bgp ipv6 large-community-list (<1-500>|WORD)",
+ SHOW_STR
+ BGP_STR
+ "Address family\n"
+ "Display routes matching the large-community-list\n"
+ "large-community-list number\n"
+ "large-community-list name\n")
+
+/* old command */
+DEFUN (show_ipv6_bgp_lcommunity_list,
+ show_ipv6_bgp_lcommunity_list_cmd,
+ "show ipv6 bgp large-community-list WORD",
+ SHOW_STR
+ IPV6_STR
+ BGP_STR
+ "Display routes matching the large-community-list\n"
+ "large-community-list name\n")
+{
+ return bgp_show_lcommunity_list (vty, argv[0], AFI_IP6, SAFI_UNICAST);
+}
+
+/* old command */
+DEFUN (show_ipv6_mbgp_lcommunity_list,
+ show_ipv6_mbgp_lcommunity_list_cmd,
+ "show ipv6 mbgp large-community-list WORD",
+ SHOW_STR
+ IPV6_STR
+ MBGP_STR
+ "Display routes matching the large-community-list\n"
+ "large-community-list name\n")
+{
+ return bgp_show_lcommunity_list (vty, argv[0], AFI_IP6, SAFI_MULTICAST);
+}
+
+DEFUN (show_bgp_ipv4_lcommunity_list,
+ show_bgp_ipv4_lcommunity_list_cmd,
+ "show bgp ipv4 large-community-list (<1-500>|WORD)",
+ SHOW_STR
+ BGP_STR
+ IP_STR
+ "Display routes matching the large-community-list\n"
+ "large-community-list number\n"
+ "large-community-list name\n")
+{
+ return bgp_show_lcommunity_list (vty, argv[0], AFI_IP, SAFI_UNICAST);
+}
+
+DEFUN (show_bgp_ipv4_safi_lcommunity_list,
+ show_bgp_ipv4_safi_lcommunity_list_cmd,
+ "show bgp ipv4 (unicast|multicast) large-community-list (<1-500>|WORD)",
+ SHOW_STR
+ BGP_STR
+ "Address family\n"
+ "Address Family modifier\n"
+ "Address Family modifier\n"
+ "Display routes matching the large-community-list\n"
+ "large-community-list number\n"
+ "large-community-list name\n")
+{
+ if (strncmp (argv[0], "m", 1) == 0)
+ return bgp_show_lcommunity_list (vty, argv[1], AFI_IP, SAFI_MULTICAST);
+
+ return bgp_show_lcommunity_list (vty, argv[1], AFI_IP, SAFI_UNICAST);
+}
+
+DEFUN (show_bgp_ipv6_safi_lcommunity_list,
+ show_bgp_ipv6_safi_lcommunity_list_cmd,
+ "show bgp ipv6 (encap|multicast|unicast|vpn) large-community-list (<1-500>|WORD)",
+ SHOW_STR
+ BGP_STR
+ "Address family\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Address family modifier\n"
+ "Display routes matching the large-community-list\n"
+ "large-community-list number\n"
+ "large-community-list name\n")
+{
+ safi_t safi;
+
+ if (bgp_parse_safi(argv[0], &safi)) {
+ vty_out (vty, "Error: Bad SAFI: %s%s", argv[0], VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ return bgp_show_lcommunity_list (vty, argv[1], AFI_IP6, safi);
+}
+
static int
bgp_show_prefix_longer (struct vty *vty, const char *prefix, afi_t afi,
safi_t safi, enum bgp_show_type type)
@@ -16409,6 +17312,24 @@
install_element (VIEW_NODE, &show_bgp_ipv4_safi_community_list_cmd);
install_element (VIEW_NODE, &show_bgp_ipv4_community_list_exact_cmd);
install_element (VIEW_NODE, &show_bgp_ipv4_safi_community_list_exact_cmd);
+
+ /* large-communities */
+ install_element (VIEW_NODE, &show_bgp_ipv4_lcommunity_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv4_lcommunity2_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv4_lcommunity3_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv4_lcommunity4_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv4_safi_lcommunity_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv4_safi_lcommunity2_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv4_safi_lcommunity3_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv4_safi_lcommunity4_cmd);
+ install_element (VIEW_NODE, &show_bgp_view_afi_safi_lcommunity_all_cmd);
+ install_element (VIEW_NODE, &show_bgp_view_afi_safi_lcommunity_cmd);
+ install_element (VIEW_NODE, &show_bgp_view_afi_safi_lcommunity2_cmd);
+ install_element (VIEW_NODE, &show_bgp_view_afi_safi_lcommunity3_cmd);
+ install_element (VIEW_NODE, &show_bgp_view_afi_safi_lcommunity4_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv4_lcommunity_list_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv4_safi_lcommunity_list_cmd);
+
install_element (VIEW_NODE, &show_bgp_ipv4_prefix_longer_cmd);
install_element (VIEW_NODE, &show_bgp_ipv4_safi_prefix_longer_cmd);
install_element (VIEW_NODE, &show_bgp_ipv6_safi_prefix_longer_cmd);
@@ -16506,6 +17427,22 @@
install_element (RESTRICTED_NODE, &show_bgp_ipv4_safi_community2_exact_cmd);
install_element (RESTRICTED_NODE, &show_bgp_ipv4_safi_community3_exact_cmd);
install_element (RESTRICTED_NODE, &show_bgp_ipv4_safi_community4_exact_cmd);
+
+ /* large-community */
+ install_element (RESTRICTED_NODE, &show_bgp_ipv4_lcommunity_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_ipv4_lcommunity2_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_ipv4_lcommunity3_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_ipv4_lcommunity4_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_ipv4_safi_lcommunity_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_ipv4_safi_lcommunity2_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_ipv4_safi_lcommunity3_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_ipv4_safi_lcommunity4_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_view_afi_safi_lcommunity_all_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_view_afi_safi_lcommunity_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_view_afi_safi_lcommunity2_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_view_afi_safi_lcommunity3_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_view_afi_safi_lcommunity4_cmd);
+
install_element (RESTRICTED_NODE, &show_bgp_ipv4_safi_rsclient_route_cmd);
install_element (RESTRICTED_NODE, &show_bgp_ipv4_safi_rsclient_prefix_cmd);
install_element (RESTRICTED_NODE, &show_bgp_view_ipv4_safi_rsclient_route_cmd);
@@ -16514,6 +17451,7 @@
/* BGP dampening clear commands */
install_element (ENABLE_NODE, &clear_ip_bgp_dampening_cmd);
install_element (ENABLE_NODE, &clear_ip_bgp_dampening_prefix_cmd);
+
install_element (ENABLE_NODE, &clear_ip_bgp_dampening_address_cmd);
install_element (ENABLE_NODE, &clear_ip_bgp_dampening_address_mask_cmd);
@@ -16558,6 +17496,14 @@
install_element (VIEW_NODE, &show_bgp_ipv6_safi_community3_exact_cmd);
install_element (VIEW_NODE, &show_bgp_ipv6_safi_community4_exact_cmd);
install_element (VIEW_NODE, &show_bgp_community_list_cmd);
+
+ /* large-community */
+ install_element (VIEW_NODE, &show_bgp_ipv6_safi_lcommunity_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv6_safi_lcommunity2_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv6_safi_lcommunity3_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv6_safi_lcommunity4_cmd);
+ install_element (VIEW_NODE, &show_bgp_lcommunity_list_cmd);
+
install_element (VIEW_NODE, &show_bgp_ipv6_prefix_longer_cmd);
install_element (VIEW_NODE, &show_bgp_ipv6_neighbor_advertised_route_cmd);
install_element (VIEW_NODE, &show_bgp_ipv6_neighbor_received_routes_cmd);
@@ -16604,6 +17550,10 @@
install_element (RESTRICTED_NODE, &show_bgp_ipv6_safi_community2_exact_cmd);
install_element (RESTRICTED_NODE, &show_bgp_ipv6_safi_community3_exact_cmd);
install_element (RESTRICTED_NODE, &show_bgp_ipv6_safi_community4_exact_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_ipv6_safi_lcommunity_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_ipv6_safi_lcommunity2_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_ipv6_safi_lcommunity3_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_ipv6_safi_lcommunity4_cmd);
install_element (RESTRICTED_NODE, &show_bgp_ipv6_rsclient_route_cmd);
install_element (RESTRICTED_NODE, &show_bgp_ipv6_safi_rsclient_route_cmd);
install_element (RESTRICTED_NODE, &show_bgp_ipv6_rsclient_prefix_cmd);
@@ -16753,6 +17703,18 @@
install_element (VIEW_NODE, &show_ip_bgp_ipv4_community_list_cmd);
install_element (VIEW_NODE, &show_ip_bgp_community_list_exact_cmd);
install_element (VIEW_NODE, &show_ip_bgp_ipv4_community_list_exact_cmd);
+ install_element (VIEW_NODE, &show_ip_bgp_lcommunity_all_cmd);
+ install_element (VIEW_NODE, &show_ip_bgp_ipv4_lcommunity_all_cmd);
+ install_element (VIEW_NODE, &show_ip_bgp_lcommunity_cmd);
+ install_element (VIEW_NODE, &show_ip_bgp_lcommunity2_cmd);
+ install_element (VIEW_NODE, &show_ip_bgp_lcommunity3_cmd);
+ install_element (VIEW_NODE, &show_ip_bgp_lcommunity4_cmd);
+ install_element (VIEW_NODE, &show_ip_bgp_ipv4_lcommunity_cmd);
+ install_element (VIEW_NODE, &show_ip_bgp_ipv4_lcommunity2_cmd);
+ install_element (VIEW_NODE, &show_ip_bgp_ipv4_lcommunity3_cmd);
+ install_element (VIEW_NODE, &show_ip_bgp_ipv4_lcommunity4_cmd);
+ install_element (VIEW_NODE, &show_ip_bgp_lcommunity_list_cmd);
+ install_element (VIEW_NODE, &show_ip_bgp_ipv4_lcommunity_list_cmd);
install_element (VIEW_NODE, &show_ip_bgp_prefix_longer_cmd);
install_element (VIEW_NODE, &show_ip_bgp_ipv4_prefix_longer_cmd);
install_element (VIEW_NODE, &show_ip_bgp_neighbor_advertised_route_cmd);
@@ -16826,6 +17788,14 @@
install_element (RESTRICTED_NODE, &show_ip_bgp_ipv4_community2_exact_cmd);
install_element (RESTRICTED_NODE, &show_ip_bgp_ipv4_community3_exact_cmd);
install_element (RESTRICTED_NODE, &show_ip_bgp_ipv4_community4_exact_cmd);
+ install_element (RESTRICTED_NODE, &show_ip_bgp_lcommunity_cmd);
+ install_element (RESTRICTED_NODE, &show_ip_bgp_lcommunity2_cmd);
+ install_element (RESTRICTED_NODE, &show_ip_bgp_lcommunity3_cmd);
+ install_element (RESTRICTED_NODE, &show_ip_bgp_lcommunity4_cmd);
+ install_element (RESTRICTED_NODE, &show_ip_bgp_ipv4_lcommunity_cmd);
+ install_element (RESTRICTED_NODE, &show_ip_bgp_ipv4_lcommunity2_cmd);
+ install_element (RESTRICTED_NODE, &show_ip_bgp_ipv4_lcommunity3_cmd);
+ install_element (RESTRICTED_NODE, &show_ip_bgp_ipv4_lcommunity4_cmd);
install_element (RESTRICTED_NODE, &show_ip_bgp_rsclient_route_cmd);
install_element (RESTRICTED_NODE, &show_ip_bgp_rsclient_prefix_cmd);
install_element (RESTRICTED_NODE, &show_ip_bgp_view_rsclient_route_cmd);
@@ -16862,6 +17832,13 @@
install_element (VIEW_NODE, &show_bgp_ipv6_safi_community_list_cmd);
install_element (VIEW_NODE, &show_bgp_community_list_exact_cmd);
install_element (VIEW_NODE, &show_bgp_ipv6_safi_community_list_exact_cmd);
+ install_element (VIEW_NODE, &show_bgp_lcommunity_all_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv6_lcommunity_all_cmd);
+ install_element (VIEW_NODE, &show_bgp_lcommunity_cmd);
+ install_element (VIEW_NODE, &show_bgp_lcommunity2_cmd);
+ install_element (VIEW_NODE, &show_bgp_lcommunity3_cmd);
+ install_element (VIEW_NODE, &show_bgp_lcommunity4_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv6_safi_lcommunity_list_cmd);
install_element (VIEW_NODE, &show_bgp_prefix_longer_cmd);
install_element (VIEW_NODE, &show_bgp_neighbor_advertised_route_cmd);
install_element (VIEW_NODE, &show_bgp_neighbor_received_routes_cmd);
@@ -16897,6 +17874,10 @@
install_element (RESTRICTED_NODE, &show_bgp_community2_exact_cmd);
install_element (RESTRICTED_NODE, &show_bgp_community3_exact_cmd);
install_element (RESTRICTED_NODE, &show_bgp_community4_exact_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_lcommunity_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_lcommunity2_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_lcommunity3_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_lcommunity4_cmd);
install_element (RESTRICTED_NODE, &show_bgp_view_route_cmd);
install_element (RESTRICTED_NODE, &show_bgp_view_prefix_cmd);
install_element (RESTRICTED_NODE, &show_bgp_view_neighbor_received_prefix_filter_cmd);
@@ -16921,6 +17902,12 @@
install_element (VIEW_NODE, &show_ipv6_bgp_community4_exact_cmd);
install_element (VIEW_NODE, &show_ipv6_bgp_community_list_cmd);
install_element (VIEW_NODE, &show_ipv6_bgp_community_list_exact_cmd);
+ install_element (VIEW_NODE, &show_ipv6_bgp_lcommunity_all_cmd);
+ install_element (VIEW_NODE, &show_ipv6_bgp_lcommunity_cmd);
+ install_element (VIEW_NODE, &show_ipv6_bgp_lcommunity2_cmd);
+ install_element (VIEW_NODE, &show_ipv6_bgp_lcommunity3_cmd);
+ install_element (VIEW_NODE, &show_ipv6_bgp_lcommunity4_cmd);
+ install_element (VIEW_NODE, &show_ipv6_bgp_lcommunity_list_cmd);
install_element (VIEW_NODE, &show_ipv6_bgp_prefix_longer_cmd);
install_element (VIEW_NODE, &show_ipv6_mbgp_cmd);
install_element (VIEW_NODE, &show_ipv6_mbgp_route_cmd);
@@ -16939,6 +17926,12 @@
install_element (VIEW_NODE, &show_ipv6_mbgp_community4_exact_cmd);
install_element (VIEW_NODE, &show_ipv6_mbgp_community_list_cmd);
install_element (VIEW_NODE, &show_ipv6_mbgp_community_list_exact_cmd);
+ install_element (VIEW_NODE, &show_ipv6_mbgp_lcommunity_all_cmd);
+ install_element (VIEW_NODE, &show_ipv6_mbgp_lcommunity_cmd);
+ install_element (VIEW_NODE, &show_ipv6_mbgp_lcommunity2_cmd);
+ install_element (VIEW_NODE, &show_ipv6_mbgp_lcommunity3_cmd);
+ install_element (VIEW_NODE, &show_ipv6_mbgp_lcommunity4_cmd);
+ install_element (VIEW_NODE, &show_ipv6_mbgp_lcommunity_list_cmd);
install_element (VIEW_NODE, &show_ipv6_mbgp_prefix_longer_cmd);
install_element (VIEW_NODE, &ipv6_bgp_neighbor_advertised_route_cmd);
install_element (VIEW_NODE, &ipv6_mbgp_neighbor_advertised_route_cmd);
@@ -16967,6 +17960,16 @@
install_element (VIEW_NODE, &show_bgp_ipv6_community_list_cmd);
install_element (VIEW_NODE, &show_bgp_ipv6_community_list_exact_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv6_lcommunity_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv6_lcommunity2_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv6_lcommunity3_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv6_lcommunity4_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_ipv6_lcommunity_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_ipv6_lcommunity2_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_ipv6_lcommunity3_cmd);
+ install_element (RESTRICTED_NODE, &show_bgp_ipv6_lcommunity4_cmd);
+ install_element (VIEW_NODE, &show_bgp_ipv6_lcommunity_list_cmd);
+
install_element (VIEW_NODE, &show_bgp_rsclient_route_cmd);
install_element (VIEW_NODE, &show_bgp_rsclient_prefix_cmd);
install_element (RESTRICTED_NODE, &show_bgp_rsclient_route_cmd);