zebra: include resolving nexthops in nhg hash

Ensure that the nhg hash comparison function includes all
nexthops, including recursive-resolving nexthops.

Signed-off-by: Mark Stapp <mjs@cisco.com>
This commit is contained in:
Mark Stapp 2025-01-27 14:17:24 -05:00
parent 9890d3acce
commit cb7cf73992

View File

@ -572,8 +572,7 @@ bool zebra_nhg_hash_equal(const void *arg1, const void *arg2)
/* Nexthops should be in-order, so we simply compare them in-place */ /* Nexthops should be in-order, so we simply compare them in-place */
for (nexthop1 = nhe1->nhg.nexthop, nexthop2 = nhe2->nhg.nexthop; for (nexthop1 = nhe1->nhg.nexthop, nexthop2 = nhe2->nhg.nexthop;
nexthop1 && nexthop2; nexthop1 && nexthop2;
nexthop1 = nexthop1->next, nexthop2 = nexthop2->next) { nexthop1 = nexthop_next(nexthop1), nexthop2 = nexthop_next(nexthop2)) {
if (!nhg_compare_nexthops(nexthop1, nexthop2)) if (!nhg_compare_nexthops(nexthop1, nexthop2))
return false; return false;
} }
@ -608,8 +607,7 @@ bool zebra_nhg_hash_equal(const void *arg1, const void *arg2)
for (nexthop1 = nhe1->backup_info->nhe->nhg.nexthop, for (nexthop1 = nhe1->backup_info->nhe->nhg.nexthop,
nexthop2 = nhe2->backup_info->nhe->nhg.nexthop; nexthop2 = nhe2->backup_info->nhe->nhg.nexthop;
nexthop1 && nexthop2; nexthop1 && nexthop2;
nexthop1 = nexthop1->next, nexthop2 = nexthop2->next) { nexthop1 = nexthop_next(nexthop1), nexthop2 = nexthop_next(nexthop2)) {
if (!nhg_compare_nexthops(nexthop1, nexthop2)) if (!nhg_compare_nexthops(nexthop1, nexthop2))
return false; return false;
} }