diff options
author | Sarita Patra <saritap@vmware.com> | 2021-06-14 03:48:35 +0200 |
---|---|---|
committer | Donald Sharp <sharpd@nvidia.com> | 2022-01-13 20:15:05 +0100 |
commit | f99f1ff50a56c0402a30fd44c3e2451fa1bf6038 (patch) | |
tree | 647949f5a8b57ec4df7f57fab926ebe97346714f /zebra/rib.h | |
parent | Merge pull request #10337 from opensourcerouting/clippy-conds (diff) | |
download | frr-f99f1ff50a56c0402a30fd44c3e2451fa1bf6038.tar.xz frr-f99f1ff50a56c0402a30fd44c3e2451fa1bf6038.zip |
zebra: Fix for route node having no tracking NHT
Topology:
IXIA-----(ens192)FRR(ens224)------iXIA
Configuration:
1. Create 8 sub-interfaces on ens192 under Default VRF and configure 8
EBGP session between FRR and IXIA.
2. Create 1000 sub-interfaces on ens224 under Default VRF and configure
1000 EBGP session between FRR and IXIA.
3. 2M prefixes distributed from Left side Ixia each with 8 ECMP path.
4. So in total, there are 2M prefixes * 8 ECMP = 16M prefixes entries
in RIB and FIB.
Issue:
Shut ens192 and ens224, this is taking 1hr 15 mins to clean up the routes.
Root Cause:
In the case of route deletion, if the particular route node is having
nht count = 0, we are going to the parent and doing nht evaluation,
which is not needed.
Fix:
If the deleted the route node is having nht count > 0, then do a nht
evaluation on the parent node.
Shut ens192 and ens224, it is taking 1 min to clean up the routes
with the fix.
Signed-off-by: Sarita Patra <saritap@vmware.com>
Diffstat (limited to 'zebra/rib.h')
-rw-r--r-- | zebra/rib.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/zebra/rib.h b/zebra/rib.h index fa8193bed..b7416322f 100644 --- a/zebra/rib.h +++ b/zebra/rib.h @@ -490,7 +490,8 @@ extern struct route_table *rib_tables_iter_next(rib_tables_iter_t *iter); extern uint8_t route_distance(int type); -extern void zebra_rib_evaluate_rn_nexthops(struct route_node *rn, uint32_t seq); +extern void zebra_rib_evaluate_rn_nexthops(struct route_node *rn, uint32_t seq, + bool rt_delete); /* * Inline functions. |