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@

Reply via email to