summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmanuele Di Pascale <emanuele@voltanet.io>2020-12-01 18:24:46 +0100
committerEmanuele Di Pascale <emanuele@voltanet.io>2020-12-01 18:34:05 +0100
commit265ac74a87a8fe97ac4a792da1b45eadd779864e (patch)
tree00eaf08d9e2086c83ab8149cd1bfc8b1df9c7279
parent5c1a899432d4efdea247f584d45a84351ff77a3a (diff)
zebra: fix show ip route vrf X summary
The lookup for non default VRFs was always using a tableId; if not provided, we were defaulting to RT_TABLE_MAIN. This is fine for the default VRF but not for others. As a result, the command was silently failing for non-default VRFs unless we also specified the correct tableId. Fix this by only performing the lookup using the tableId if it is provided; else use zebra_vrf_table. Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
-rw-r--r--zebra/zebra_vty.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/zebra/zebra_vty.c b/zebra/zebra_vty.c
index 8f73825700..c4b587e6c4 100644
--- a/zebra/zebra_vty.c
+++ b/zebra/zebra_vty.c
@@ -1963,9 +1963,6 @@ DEFPY (show_route_summary,
struct route_table *table;
bool uj = use_json(argc, argv);
- if (table_id == 0)
- table_id = RT_TABLE_MAIN;
-
if (vrf_all) {
struct vrf *vrf;
struct zebra_vrf *zvrf;
@@ -1974,8 +1971,13 @@ DEFPY (show_route_summary,
if ((zvrf = vrf->info) == NULL)
continue;
- table = zebra_vrf_lookup_table_with_table_id(
- afi, SAFI_UNICAST, zvrf->vrf->vrf_id, table_id);
+ if (table_id == 0)
+ table = zebra_vrf_table(afi, SAFI_UNICAST,
+ zvrf->vrf->vrf_id);
+ else
+ table = zebra_vrf_lookup_table_with_table_id(
+ afi, SAFI_UNICAST, zvrf->vrf->vrf_id,
+ table_id);
if (!table)
continue;
@@ -1992,8 +1994,11 @@ DEFPY (show_route_summary,
if (vrf_name)
VRF_GET_ID(vrf_id, vrf_name, false);
- table = zebra_vrf_lookup_table_with_table_id(afi, SAFI_UNICAST,
- vrf_id, table_id);
+ if (table_id == 0)
+ table = zebra_vrf_table(afi, SAFI_UNICAST, vrf_id);
+ else
+ table = zebra_vrf_lookup_table_with_table_id(
+ afi, SAFI_UNICAST, vrf_id, table_id);
if (!table)
return CMD_SUCCESS;