From a001733a3d4c49efa99d45227d686606f135b9fb Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Wed, 25 Sep 2024 12:06:29 -0400 Subject: [PATCH] zebra: Fix snmp walk of zebra rib The snmp walk of the zebra rib was skipping entries because in_addr_cmp was replaced with a prefix_cmp which worked slightly differently causing parts of the zebra rib tree to be skipped. Signed-off-by: Donald Sharp (cherry picked from commit ecd9d441b082e3f24139eb96915b18fc17996c08) --- zebra/zebra_snmp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/zebra/zebra_snmp.c b/zebra/zebra_snmp.c index 8cab184953..c464d6bc04 100644 --- a/zebra/zebra_snmp.c +++ b/zebra/zebra_snmp.c @@ -251,9 +251,11 @@ static void check_replace(struct route_node *np2, struct route_entry *re2, return; } - if (prefix_cmp(&(*np)->p, &np2->p) < 0) + if (in_addr_cmp((uint8_t *)&(*np)->p.u.prefix4, + (uint8_t *)&np2->p.u.prefix4) < 0) return; - if (prefix_cmp(&(*np)->p, &np2->p) > 0) { + if (in_addr_cmp((uint8_t *)&(*np)->p.u.prefix4, + (uint8_t *)&np2->p.u.prefix4) > 0) { *np = np2; *re = re2; return; -- 2.39.5