From: Claudio Jeker Subject: bgpd: drop PREFIX_FLAG_DEAD from rib walker callbacks To: tech@openbsd.org Date: Fri, 14 Nov 2025 14:01:16 +0100 No need to check for PREFIX_FLAG_DEAD in the prefix tree walker callbacks. prefix_dump_r() already skips those via prefix_is_dead(). -- :wq Claudio Index: rde.c =================================================================== RCS file: /cvs/src/usr.sbin/bgpd/rde.c,v diff -u -p -r1.663 rde.c --- rde.c 12 Nov 2025 21:50:47 -0000 1.663 +++ rde.c 14 Nov 2025 12:54:16 -0000 @@ -3050,7 +3050,7 @@ rde_dump_adjout_upcall(struct prefix *p, if ((p->flags & PREFIX_FLAG_ADJOUT) == 0) fatalx("%s: prefix without PREFIX_FLAG_ADJOUT hit", __func__); - if (p->flags & (PREFIX_FLAG_WITHDRAW | PREFIX_FLAG_DEAD)) + if (p->flags & PREFIX_FLAG_WITHDRAW) return; rde_dump_filter(p, &ctx->req, 1); } Index: rde_peer.c =================================================================== RCS file: /cvs/src/usr.sbin/bgpd/rde_peer.c,v diff -u -p -r1.51 rde_peer.c --- rde_peer.c 24 Sep 2025 14:04:04 -0000 1.51 +++ rde_peer.c 14 Nov 2025 12:53:21 -0000 @@ -520,9 +520,7 @@ peer_blast_upcall(struct prefix *p, void { struct rde_peer *peer; - if (p->flags & PREFIX_FLAG_DEAD) { - /* ignore dead prefixes, they will go away soon */ - } else if ((p->flags & PREFIX_FLAG_MASK) == 0) { + if ((p->flags & PREFIX_FLAG_MASK) == 0) { peer = prefix_peer(p); /* put entries on the update queue if not already on a queue */ p->flags |= PREFIX_FLAG_UPDATE;