summaryrefslogtreecommitdiff
path: root/bgpd/bgp_evpn_vty.c
diff options
context:
space:
mode:
Diffstat (limited to 'bgpd/bgp_evpn_vty.c')
-rw-r--r--bgpd/bgp_evpn_vty.c231
1 files changed, 109 insertions, 122 deletions
diff --git a/bgpd/bgp_evpn_vty.c b/bgpd/bgp_evpn_vty.c
index a51affc4f7..33edcf724b 100644
--- a/bgpd/bgp_evpn_vty.c
+++ b/bgpd/bgp_evpn_vty.c
@@ -36,10 +36,9 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
#define SHOW_DISPLAY_TAGS 1
#define SHOW_DISPLAY_OVERLAY 2
-static int
-bgp_show_ethernet_vpn(struct vty *vty, struct prefix_rd *prd,
- enum bgp_show_type type, void *output_arg, int option,
- u_char use_json)
+static int bgp_show_ethernet_vpn(struct vty *vty, struct prefix_rd *prd,
+ enum bgp_show_type type, void *output_arg,
+ int option, u_char use_json)
{
afi_t afi = AFI_L2VPN;
struct bgp *bgp;
@@ -50,11 +49,11 @@ bgp_show_ethernet_vpn(struct vty *vty, struct prefix_rd *prd,
int rd_header;
int header = 1;
char v4_header[] =
- " Network Next Hop Metric LocPrf Weight Path%s";
+ " Network Next Hop Metric LocPrf Weight Path%s";
char v4_header_tag[] =
- " Network Next Hop In tag/Out tag%s";
+ " Network Next Hop In tag/Out tag%s";
char v4_header_overlay[] =
- " Network Next Hop EthTag Overlay Index RouterMac%s";
+ " Network Next Hop EthTag Overlay Index RouterMac%s";
unsigned long output_count = 0;
unsigned long total_count = 0;
@@ -93,7 +92,7 @@ bgp_show_ethernet_vpn(struct vty *vty, struct prefix_rd *prd,
for (rn = bgp_table_top(bgp->rib[afi][SAFI_EVPN]); rn;
rn = bgp_route_next(rn)) {
if (use_json)
- continue; /* XXX json TODO */
+ continue; /* XXX json TODO */
if (prd && memcmp(rn->p.u.val, prd->val, 8) != 0)
continue;
@@ -107,55 +106,53 @@ bgp_show_ethernet_vpn(struct vty *vty, struct prefix_rd *prd,
total_count++;
if (type == bgp_show_type_neighbor) {
union sockunion *su =
- output_arg;
+ output_arg;
if (ri->peer->su_remote == NULL
- || !sockunion_same(ri->
- peer->
- su_remote,
- su))
+ || !sockunion_same(
+ ri->peer->su_remote,
+ su))
continue;
}
if (header == 0) {
if (use_json) {
- if (option ==
- SHOW_DISPLAY_TAGS) {
- json_object_int_add
- (json,
- "bgpTableVersion",
- 0);
- json_object_string_add
- (json,
- "bgpLocalRouterId",
- inet_ntoa
- (bgp->
- router_id));
- json_object_object_add
- (json,
- "bgpStatusCodes",
- json_scode);
- json_object_object_add
- (json,
- "bgpOriginCodes",
- json_ocode);
+ if (option
+ == SHOW_DISPLAY_TAGS) {
+ json_object_int_add(
+ json,
+ "bgpTableVersion",
+ 0);
+ json_object_string_add(
+ json,
+ "bgpLocalRouterId",
+ inet_ntoa(
+ bgp->router_id));
+ json_object_object_add(
+ json,
+ "bgpStatusCodes",
+ json_scode);
+ json_object_object_add(
+ json,
+ "bgpOriginCodes",
+ json_ocode);
}
} else {
- if (option ==
- SHOW_DISPLAY_TAGS)
+ if (option
+ == SHOW_DISPLAY_TAGS)
vty_out(vty,
v4_header_tag,
VTY_NEWLINE);
- else if (option ==
- SHOW_DISPLAY_OVERLAY)
+ else if (
+ option
+ == SHOW_DISPLAY_OVERLAY)
vty_out(vty,
v4_header_overlay,
VTY_NEWLINE);
else {
vty_out(vty,
"BGP table version is 0, local router ID is %s%s",
- inet_ntoa
- (bgp->
- router_id),
+ inet_ntoa(
+ bgp->router_id),
VTY_NEWLINE);
vty_out(vty,
"Status codes: s suppressed, d damped, h history, * valid, > best, i - internal%s",
@@ -194,54 +191,43 @@ bgp_show_ethernet_vpn(struct vty *vty, struct prefix_rd *prd,
if (use_json) {
char buffer[BUFSIZ];
if (type == RD_TYPE_AS
- || type ==
- RD_TYPE_AS4)
+ || type == RD_TYPE_AS4)
sprintf(buffer,
"%u:%d",
- rd_as.
- as,
- rd_as.
- val);
- else if (type ==
- RD_TYPE_IP)
+ rd_as.as,
+ rd_as.val);
+ else if (type
+ == RD_TYPE_IP)
sprintf(buffer,
"%s:%d",
- inet_ntoa
- (rd_ip.
- ip),
- rd_ip.
- val);
- json_object_string_add
- (json_nroute,
- "routeDistinguisher",
- buffer);
+ inet_ntoa(
+ rd_ip.ip),
+ rd_ip.val);
+ json_object_string_add(
+ json_nroute,
+ "routeDistinguisher",
+ buffer);
} else {
vty_out(vty,
"Route Distinguisher: ");
if (type == RD_TYPE_AS)
vty_out(vty,
"as2 %u:%d",
- rd_as.
- as,
- rd_as.
- val);
- else if (type ==
- RD_TYPE_AS4)
+ rd_as.as,
+ rd_as.val);
+ else if (type
+ == RD_TYPE_AS4)
vty_out(vty,
"as4 %u:%d",
- rd_as.
- as,
- rd_as.
- val);
- else if (type ==
- RD_TYPE_IP)
+ rd_as.as,
+ rd_as.val);
+ else if (type
+ == RD_TYPE_IP)
vty_out(vty,
"ip %s:%d",
- inet_ntoa
- (rd_ip.
- ip),
- rd_ip.
- val);
+ inet_ntoa(
+ rd_ip.ip),
+ rd_ip.val);
vty_out(vty, "%s",
VTY_NEWLINE);
}
@@ -249,19 +235,17 @@ bgp_show_ethernet_vpn(struct vty *vty, struct prefix_rd *prd,
}
if (use_json)
json_array =
- json_object_new_array();
+ json_object_new_array();
else
json_array = NULL;
if (option == SHOW_DISPLAY_TAGS)
- route_vty_out_tag(vty, &rm->p,
- ri, 0,
- SAFI_EVPN,
- json_array);
+ route_vty_out_tag(
+ vty, &rm->p, ri, 0,
+ SAFI_EVPN, json_array);
else if (option == SHOW_DISPLAY_OVERLAY)
- route_vty_out_overlay(vty,
- &rm->p,
- ri, 0,
- json_array);
+ route_vty_out_overlay(
+ vty, &rm->p, ri, 0,
+ json_array);
else
route_vty_out(vty, &rm->p, ri,
0, SAFI_EVPN,
@@ -304,7 +288,7 @@ DEFUN(show_ip_bgp_l2vpn_evpn_rd,
int ret;
struct prefix_rd prd;
- argv_find (argv, argc, "ASN:nn_or_IP-address:nn", &idx_ext_community);
+ argv_find(argv, argc, "ASN:nn_or_IP-address:nn", &idx_ext_community);
ret = str2prefix_rd(argv[idx_ext_community]->arg, &prd);
if (!ret) {
@@ -345,7 +329,7 @@ DEFUN(show_ip_bgp_l2vpn_evpn_rd_tags,
int ret;
struct prefix_rd prd;
- argv_find (argv, argc, "ASN:nn_or_IP-address:nn", &idx_ext_community);
+ argv_find(argv, argc, "ASN:nn_or_IP-address:nn", &idx_ext_community);
ret = str2prefix_rd(argv[idx_ext_community]->arg, &prd);
if (!ret) {
@@ -375,7 +359,7 @@ DEFUN(show_ip_bgp_l2vpn_evpn_all_neighbor_routes,
int ret;
u_char uj = use_json(argc, argv);
- argv_find (argv, argc, "A.B.C.D", &idx_ipv4);
+ argv_find(argv, argc, "A.B.C.D", &idx_ipv4);
ret = str2sockunion(argv[idx_ipv4]->arg, &su);
if (ret < 0) {
@@ -399,8 +383,9 @@ DEFUN(show_ip_bgp_l2vpn_evpn_all_neighbor_routes,
if (uj) {
json_object *json_no = NULL;
json_no = json_object_new_object();
- json_object_string_add(json_no, "warning",
- "No such neighbor or address family");
+ json_object_string_add(
+ json_no, "warning",
+ "No such neighbor or address family");
vty_out(vty, "%s%s",
json_object_to_json_string(json_no),
VTY_NEWLINE);
@@ -437,8 +422,8 @@ DEFUN(show_ip_bgp_l2vpn_evpn_rd_neighbor_routes,
struct prefix_rd prd;
u_char uj = use_json(argc, argv);
- argv_find (argv, argc, "ASN:nn_or_IP-address:nn", &idx_ext_community);
- argv_find (argv, argc, "A.B.C.D", &idx_ipv4);
+ argv_find(argv, argc, "ASN:nn_or_IP-address:nn", &idx_ext_community);
+ argv_find(argv, argc, "A.B.C.D", &idx_ipv4);
ret = str2prefix_rd(argv[idx_ext_community]->arg, &prd);
if (!ret) {
@@ -479,8 +464,9 @@ DEFUN(show_ip_bgp_l2vpn_evpn_rd_neighbor_routes,
if (uj) {
json_object *json_no = NULL;
json_no = json_object_new_object();
- json_object_string_add(json_no, "warning",
- "No such neighbor or address family");
+ json_object_string_add(
+ json_no, "warning",
+ "No such neighbor or address family");
vty_out(vty, "%s%s",
json_object_to_json_string(json_no),
VTY_NEWLINE);
@@ -514,7 +500,7 @@ DEFUN(show_ip_bgp_l2vpn_evpn_all_neighbor_advertised_routes,
union sockunion su;
u_char uj = use_json(argc, argv);
- argv_find (argv, argc, "A.B.C.D", &idx_ipv4);
+ argv_find(argv, argc, "A.B.C.D", &idx_ipv4);
ret = str2sockunion(argv[idx_ipv4]->arg, &su);
if (ret < 0) {
@@ -537,8 +523,9 @@ DEFUN(show_ip_bgp_l2vpn_evpn_all_neighbor_advertised_routes,
if (uj) {
json_object *json_no = NULL;
json_no = json_object_new_object();
- json_object_string_add(json_no, "warning",
- "No such neighbor or address family");
+ json_object_string_add(
+ json_no, "warning",
+ "No such neighbor or address family");
vty_out(vty, "%s%s",
json_object_to_json_string(json_no),
VTY_NEWLINE);
@@ -574,8 +561,8 @@ DEFUN(show_ip_bgp_l2vpn_evpn_rd_neighbor_advertised_routes,
union sockunion su;
u_char uj = use_json(argc, argv);
- argv_find (argv, argc, "ASN:nn_or_IP-address:nn", &idx_ext_community);
- argv_find (argv, argc, "A.B.C.D", &idx_ipv4);
+ argv_find(argv, argc, "ASN:nn_or_IP-address:nn", &idx_ext_community);
+ argv_find(argv, argc, "A.B.C.D", &idx_ipv4);
ret = str2sockunion(argv[idx_ipv4]->arg, &su);
if (ret < 0) {
@@ -598,8 +585,9 @@ DEFUN(show_ip_bgp_l2vpn_evpn_rd_neighbor_advertised_routes,
if (uj) {
json_object *json_no = NULL;
json_no = json_object_new_object();
- json_object_string_add(json_no, "warning",
- "No such neighbor or address family");
+ json_object_string_add(
+ json_no, "warning",
+ "No such neighbor or address family");
vty_out(vty, "%s%s",
json_object_to_json_string(json_no),
VTY_NEWLINE);
@@ -642,8 +630,8 @@ DEFUN(show_ip_bgp_l2vpn_evpn_all_overlay,
"Display BGP Overlay Information for prefixes\n")
{
return bgp_show_ethernet_vpn(vty, NULL, bgp_show_type_normal, NULL,
- SHOW_DISPLAY_OVERLAY, use_json(argc,
- argv));
+ SHOW_DISPLAY_OVERLAY,
+ use_json(argc, argv));
}
DEFUN(show_ip_bgp_evpn_rd_overlay,
@@ -662,7 +650,7 @@ DEFUN(show_ip_bgp_evpn_rd_overlay,
int ret;
struct prefix_rd prd;
- argv_find (argv, argc, "ASN:nn_or_IP-address:nn", &idx_ext_community);
+ argv_find(argv, argc, "ASN:nn_or_IP-address:nn", &idx_ext_community);
ret = str2prefix_rd(argv[idx_ext_community]->arg, &prd);
if (!ret) {
@@ -670,8 +658,8 @@ DEFUN(show_ip_bgp_evpn_rd_overlay,
return CMD_WARNING;
}
return bgp_show_ethernet_vpn(vty, &prd, bgp_show_type_normal, NULL,
- SHOW_DISPLAY_OVERLAY, use_json(argc,
- argv));
+ SHOW_DISPLAY_OVERLAY,
+ use_json(argc, argv));
}
/* For testing purpose, static route of MPLS-VPN. */
@@ -705,14 +693,12 @@ DEFUN(evpnrt5_network,
int idx_ethtag = 5;
int idx_routermac = 13;
int idx_rmap = 15;
- return bgp_static_set_safi(AFI_L2VPN, SAFI_EVPN, vty,
- argv[idx_ipv4_prefixlen]->arg,
- argv[idx_ext_community]->arg,
- argv[idx_word]->arg,
- argv[idx_rmap] ? argv[idx_gwip]->arg : NULL,
- EVPN_IP_PREFIX, argv[idx_esi]->arg,
- argv[idx_gwip]->arg, argv[idx_ethtag]->arg,
- argv[idx_routermac]->arg);
+ return bgp_static_set_safi(
+ AFI_L2VPN, SAFI_EVPN, vty, argv[idx_ipv4_prefixlen]->arg,
+ argv[idx_ext_community]->arg, argv[idx_word]->arg,
+ argv[idx_rmap] ? argv[idx_gwip]->arg : NULL, EVPN_IP_PREFIX,
+ argv[idx_esi]->arg, argv[idx_gwip]->arg, argv[idx_ethtag]->arg,
+ argv[idx_routermac]->arg);
}
/* For testing purpose, static route of MPLS-VPN. */
@@ -739,12 +725,11 @@ DEFUN(no_evpnrt5_network,
int idx_ethtag = 6;
int idx_esi = 10;
int idx_gwip = 12;
- return bgp_static_unset_safi(AFI_L2VPN, SAFI_EVPN, vty,
- argv[idx_ipv4_prefixlen]->arg,
- argv[idx_ext_community]->arg,
- argv[idx_label]->arg, EVPN_IP_PREFIX,
- argv[idx_esi]->arg, argv[idx_gwip]->arg,
- argv[idx_ethtag]->arg);
+ return bgp_static_unset_safi(
+ AFI_L2VPN, SAFI_EVPN, vty, argv[idx_ipv4_prefixlen]->arg,
+ argv[idx_ext_community]->arg, argv[idx_label]->arg,
+ EVPN_IP_PREFIX, argv[idx_esi]->arg, argv[idx_gwip]->arg,
+ argv[idx_ethtag]->arg);
}
void bgp_ethernetvpn_init(void)
@@ -757,10 +742,12 @@ void bgp_ethernetvpn_init(void)
&show_ip_bgp_l2vpn_evpn_all_neighbor_routes_cmd);
install_element(VIEW_NODE,
&show_ip_bgp_l2vpn_evpn_rd_neighbor_routes_cmd);
- install_element(VIEW_NODE,
- &show_ip_bgp_l2vpn_evpn_all_neighbor_advertised_routes_cmd);
- install_element(VIEW_NODE,
- &show_ip_bgp_l2vpn_evpn_rd_neighbor_advertised_routes_cmd);
+ install_element(
+ VIEW_NODE,
+ &show_ip_bgp_l2vpn_evpn_all_neighbor_advertised_routes_cmd);
+ install_element(
+ VIEW_NODE,
+ &show_ip_bgp_l2vpn_evpn_rd_neighbor_advertised_routes_cmd);
install_element(VIEW_NODE, &show_ip_bgp_evpn_rd_overlay_cmd);
install_element(VIEW_NODE, &show_ip_bgp_l2vpn_evpn_all_overlay_cmd);
install_element(BGP_EVPN_NODE, &no_evpnrt5_network_cmd);