mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-14 10:37:29 +00:00
zebra: Modify show ip route summary
to allow you to specify a table
Add a bit of extra command `show ip route summary table XXX` To allow end user to specify a specific table that they want summary information on. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
ebbb2bdcd1
commit
ae813e21a6
@ -1384,35 +1384,37 @@ DEFPY (show_route_detail,
|
|||||||
|
|
||||||
DEFPY (show_route_summary,
|
DEFPY (show_route_summary,
|
||||||
show_route_summary_cmd,
|
show_route_summary_cmd,
|
||||||
"show\
|
"show <ip$ipv4|ipv6$ipv6> route [vrf <NAME$vrf_name|all$vrf_all>] \
|
||||||
<\
|
summary [table (1-4294967295)$table_id] [prefix$prefix]",
|
||||||
ip$ipv4 route [vrf <NAME$vrf_name|all$vrf_all>]\
|
|
||||||
summary [prefix$prefix]\
|
|
||||||
|ipv6$ipv6 route [vrf <NAME$vrf_name|all$vrf_all>]\
|
|
||||||
summary [prefix$prefix]\
|
|
||||||
>",
|
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
IP_STR
|
IP_STR
|
||||||
"IP routing table\n"
|
|
||||||
VRF_FULL_CMD_HELP_STR
|
|
||||||
"Summary of all routes\n"
|
|
||||||
"Prefix routes\n"
|
|
||||||
IP6_STR
|
IP6_STR
|
||||||
"IP routing table\n"
|
"IP routing table\n"
|
||||||
VRF_FULL_CMD_HELP_STR
|
VRF_FULL_CMD_HELP_STR
|
||||||
"Summary of all routes\n"
|
"Summary of all routes\n"
|
||||||
|
"Table to display summary for\n"
|
||||||
|
"The table number\n"
|
||||||
"Prefix routes\n")
|
"Prefix routes\n")
|
||||||
{
|
{
|
||||||
afi_t afi = ipv4 ? AFI_IP : AFI_IP6;
|
afi_t afi = ipv4 ? AFI_IP : AFI_IP6;
|
||||||
struct route_table *table;
|
struct route_table *table;
|
||||||
|
|
||||||
|
if (table_id == 0)
|
||||||
|
table_id = RT_TABLE_MAIN;
|
||||||
|
|
||||||
if (vrf_all) {
|
if (vrf_all) {
|
||||||
struct vrf *vrf;
|
struct vrf *vrf;
|
||||||
struct zebra_vrf *zvrf;
|
struct zebra_vrf *zvrf;
|
||||||
|
|
||||||
RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name) {
|
RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name) {
|
||||||
if ((zvrf = vrf->info) == NULL
|
if ((zvrf = vrf->info) == NULL)
|
||||||
|| (table = zvrf->table[afi][SAFI_UNICAST]) == NULL)
|
continue;
|
||||||
|
|
||||||
|
table = zebra_vrf_table_with_table_id(afi,
|
||||||
|
SAFI_UNICAST,
|
||||||
|
zvrf->vrf->vrf_id,
|
||||||
|
table_id);
|
||||||
|
if (!table)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (prefix)
|
if (prefix)
|
||||||
@ -1426,7 +1428,9 @@ DEFPY (show_route_summary,
|
|||||||
if (vrf_name)
|
if (vrf_name)
|
||||||
VRF_GET_ID(vrf_id, vrf_name, false);
|
VRF_GET_ID(vrf_id, vrf_name, false);
|
||||||
|
|
||||||
table = zebra_vrf_table(afi, SAFI_UNICAST, vrf_id);
|
table = zebra_vrf_table_with_table_id(afi,
|
||||||
|
SAFI_UNICAST,
|
||||||
|
vrf_id, table_id);
|
||||||
if (!table)
|
if (!table)
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user