mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-12 12:53:26 +00:00
bgpd: Cleanup 'show .... statistics' command
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
f2a8972b0b
commit
e01ca200c6
@ -7811,6 +7811,8 @@ bgp_show_route (struct vty *vty, struct bgp *bgp, const char *ip_str,
|
|||||||
use_json);
|
use_json);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int bgp_table_stats (struct vty *vty, struct bgp *bgp, afi_t afi, safi_t safi);
|
||||||
|
|
||||||
/* BGP route print out function. */
|
/* BGP route print out function. */
|
||||||
DEFUN (show_ip_bgp,
|
DEFUN (show_ip_bgp,
|
||||||
show_ip_bgp_cmd,
|
show_ip_bgp_cmd,
|
||||||
@ -7821,6 +7823,7 @@ DEFUN (show_ip_bgp,
|
|||||||
|route-map WORD\
|
|route-map WORD\
|
||||||
|prefix-list WORD\
|
|prefix-list WORD\
|
||||||
|filter-list WORD\
|
|filter-list WORD\
|
||||||
|
|statistics\
|
||||||
|community [<AA:NN|local-AS|no-advertise|no-export> [exact-match]]\
|
|community [<AA:NN|local-AS|no-advertise|no-export> [exact-match]]\
|
||||||
|community-list <(1-500)|WORD> [exact-match]\
|
|community-list <(1-500)|WORD> [exact-match]\
|
||||||
|A.B.C.D/M longer-prefixes\
|
|A.B.C.D/M longer-prefixes\
|
||||||
@ -7847,6 +7850,7 @@ DEFUN (show_ip_bgp,
|
|||||||
"Prefix-list name\n"
|
"Prefix-list name\n"
|
||||||
"Display routes conforming to the filter-list\n"
|
"Display routes conforming to the filter-list\n"
|
||||||
"Regular expression access list name\n"
|
"Regular expression access list name\n"
|
||||||
|
"BGP RIB advertisement statistics\n"
|
||||||
"Display routes matching the communities\n"
|
"Display routes matching the communities\n"
|
||||||
COMMUNITY_AANN_STR
|
COMMUNITY_AANN_STR
|
||||||
"Do not send outside local AS (well-known community)\n"
|
"Do not send outside local AS (well-known community)\n"
|
||||||
@ -7911,6 +7915,9 @@ DEFUN (show_ip_bgp,
|
|||||||
if (argv_find(argv, argc, "filter-list", &idx))
|
if (argv_find(argv, argc, "filter-list", &idx))
|
||||||
return bgp_show_filter_list (vty, bgp, argv[idx + 1]->arg, afi, safi, bgp_show_type_filter_list);
|
return bgp_show_filter_list (vty, bgp, argv[idx + 1]->arg, afi, safi, bgp_show_type_filter_list);
|
||||||
|
|
||||||
|
if (argv_find(argv, argc, "statistics", &idx))
|
||||||
|
return bgp_table_stats (vty, bgp, afi, safi);
|
||||||
|
|
||||||
if (argv_find(argv, argc, "route-map", &idx))
|
if (argv_find(argv, argc, "route-map", &idx))
|
||||||
return bgp_show_route_map (vty, bgp, argv[idx + 1]->arg, afi, safi, bgp_show_type_route_map);
|
return bgp_show_route_map (vty, bgp, argv[idx + 1]->arg, afi, safi, bgp_show_type_route_map);
|
||||||
|
|
||||||
@ -8598,81 +8605,6 @@ bgp_table_stats (struct vty *vty, struct bgp *bgp, afi_t afi, safi_t safi)
|
|||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
bgp_table_stats_vty (struct vty *vty, const char *name,
|
|
||||||
const char *afi_str, const char *safi_str)
|
|
||||||
{
|
|
||||||
struct bgp *bgp;
|
|
||||||
afi_t afi;
|
|
||||||
safi_t safi;
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
afi = bgp_vty_afi_from_arg(afi_str);
|
|
||||||
if (afi == AFI_MAX)
|
|
||||||
{
|
|
||||||
vty_out (vty, "%% Invalid address family \"%s\"%s",
|
|
||||||
afi_str, VTY_NEWLINE);
|
|
||||||
return CMD_WARNING;
|
|
||||||
}
|
|
||||||
safi = bgp_vty_safi_from_arg(safi_str);
|
|
||||||
if (safi == SAFI_MAX)
|
|
||||||
{
|
|
||||||
vty_out (vty, "%% Invalid subsequent address family %s%s",
|
|
||||||
safi_str, VTY_NEWLINE);
|
|
||||||
return CMD_WARNING;
|
|
||||||
}
|
|
||||||
|
|
||||||
return bgp_table_stats (vty, bgp, afi, safi);
|
|
||||||
}
|
|
||||||
|
|
||||||
DEFUN (show_bgp_statistics,
|
|
||||||
show_bgp_statistics_cmd,
|
|
||||||
"show [ip] bgp <ipv4|ipv6> <encap|multicast|unicast|vpn> statistics",
|
|
||||||
SHOW_STR
|
|
||||||
IP_STR
|
|
||||||
BGP_STR
|
|
||||||
"Address Family\n"
|
|
||||||
"Address Family\n"
|
|
||||||
"Address Family modifier\n"
|
|
||||||
"Address Family modifier\n"
|
|
||||||
"Address Family modifier\n"
|
|
||||||
"Address Family modifier\n"
|
|
||||||
"BGP RIB advertisement statistics\n")
|
|
||||||
{
|
|
||||||
int idx_afi = 2;
|
|
||||||
int idx_safi = 3;
|
|
||||||
return bgp_table_stats_vty (vty, NULL, argv[idx_afi]->arg, argv[idx_safi]->arg);
|
|
||||||
}
|
|
||||||
|
|
||||||
DEFUN (show_bgp_statistics_view,
|
|
||||||
show_bgp_statistics_view_cmd,
|
|
||||||
"show [ip] bgp <view|vrf> WORD <ipv4|ipv6> <unicast|multicast|vpn|encap> statistics",
|
|
||||||
SHOW_STR
|
|
||||||
IP_STR
|
|
||||||
BGP_STR
|
|
||||||
BGP_INSTANCE_HELP_STR
|
|
||||||
"Address Family\n"
|
|
||||||
"Address Family\n"
|
|
||||||
"Address Family modifier\n"
|
|
||||||
"Address Family modifier\n"
|
|
||||||
"Address Family modifier\n"
|
|
||||||
"Address Family modifier\n"
|
|
||||||
"BGP RIB advertisement statistics\n")
|
|
||||||
{
|
|
||||||
int idx_word = 3;
|
|
||||||
int idx_afi = 4;
|
|
||||||
return bgp_table_stats_vty (vty, NULL, argv[idx_word]->arg, argv[idx_afi]->arg);
|
|
||||||
}
|
|
||||||
|
|
||||||
enum bgp_pcounts
|
enum bgp_pcounts
|
||||||
{
|
{
|
||||||
PCOUNT_ADJ_IN = 0,
|
PCOUNT_ADJ_IN = 0,
|
||||||
@ -10411,10 +10343,6 @@ bgp_route_init (void)
|
|||||||
install_element (BGP_IPV6M_NODE, &ipv6_bgp_network_cmd);
|
install_element (BGP_IPV6M_NODE, &ipv6_bgp_network_cmd);
|
||||||
install_element (BGP_IPV6M_NODE, &no_ipv6_bgp_network_cmd);
|
install_element (BGP_IPV6M_NODE, &no_ipv6_bgp_network_cmd);
|
||||||
|
|
||||||
/* Statistics */
|
|
||||||
install_element (ENABLE_NODE, &show_bgp_statistics_cmd);
|
|
||||||
install_element (ENABLE_NODE, &show_bgp_statistics_view_cmd);
|
|
||||||
|
|
||||||
install_element (BGP_NODE, &bgp_distance_cmd);
|
install_element (BGP_NODE, &bgp_distance_cmd);
|
||||||
install_element (BGP_NODE, &no_bgp_distance_cmd);
|
install_element (BGP_NODE, &no_bgp_distance_cmd);
|
||||||
install_element (BGP_NODE, &bgp_distance_source_cmd);
|
install_element (BGP_NODE, &bgp_distance_source_cmd);
|
||||||
|
Loading…
Reference in New Issue
Block a user