CVS: cvs.openbsd.org: src

Claudio Jeker <[email protected]> Mon, 20 Jul 2026 07:25:49 -0600 (MDT)
Newsgroups gmane.os.openbsd.cvs
Message-ID <[email protected]>
CVSROOT:	/cvs
Module name:	src
Changes by:	[email protected]	2026/07/20 07:25:49

Modified files:
	usr.sbin/bgpd  : rde.h rde_rib.c rde_update.c 

Log message:
Bring back up_generate_addpath_all() using the rib entry queue

add-path send all can take a fair amount of shortcuts compared to the
other add-path send modes. The rib entry queue (struct pq_entry) holds
all the information to update the adj-rib-out.

For general updates just walk the pq list and insert / withdraw all
paths. A path can only be once on the list so the code just needs to
walk it and call up_process_prefix for updates. If up_process_prefix()
returns UP_FILTERED or UP_EXCLUDED then try to withdraw the prefix. This
uses the same codepath as for any withdraw in the queue.

Tested on the NLNOG ring looking glass server.
OK tb@