Download raw body.
bgpd: always call peer_dump_done in peer_dump
On Tue, Jul 21, 2026 at 09:22:01AM +0200, Claudio Jeker wrote:
> There is some confusion on how to finish a peer_dump run for
> EXPORT_NONE and EXPORT_DEFAULT_ROUTE.
>
> Just call peer_dump_done() in both cases since this is what is required to
> finalize a dump. Especially the use of peer_blast() in EXPORT_NONE is not
> great since this is causing a adj-rib-out walk for no reason.
> peer_dump_done() calls peer_blast_done() and it issues the End-Of-RIB
> marker. Nothing else is needed.
>
> Noticed on the NLNOG looking glass which uses export none on most
> sessions.
Makes sense. ok tb
> --
> :wq Claudio
>
> Index: rde_peer.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/bgpd/rde_peer.c,v
> diff -u -p -r1.80 rde_peer.c
> --- rde_peer.c 15 Jul 2026 11:59:27 -0000 1.80
> +++ rde_peer.c 20 Jul 2026 13:41:47 -0000
> @@ -670,10 +670,10 @@ peer_dump(struct rde_peer *peer, uint8_t
> peer->throttled = 1;
>
> if (peer->export_type == EXPORT_NONE) {
> - peer_blast(peer, aid);
> + peer_dump_done(peer, aid);
> } else if (peer->export_type == EXPORT_DEFAULT_ROUTE) {
> up_generate_default(peer, aid);
> - peer_blast_done(peer, aid);
> + peer_dump_done(peer, aid);
> } else if (aid == AID_FLOWSPECv4 || aid == AID_FLOWSPECv6) {
> prefix_flowspec_dump(aid, peer, peer_dump_upcall,
> peer_dump_done);
>
bgpd: always call peer_dump_done in peer_dump