CVS: cvs.openbsd.org: src
Claudio Jeker <[email protected]>
| Newsgroups | gmane.os.openbsd.cvs |
|---|---|
| Message-ID | <[email protected]> |
CVSROOT: /cvs Module name: src Changes by: [email protected] 2026/07/15 05:59:27 Modified files: usr.sbin/bgpd : rde.c rde.h rde_adjout.c rde_peer.c rde_update.c Log message: rework the force_update logic in the adj-rib-out On initial connect the system needs to sync the adj-rib-out of a peer with the Loc-RIB. This happens via peer_dump() and in this case the system needs to push out all updates (but can drop any withdraw). To do this a force_update flag was introduced but actually it is better to use the mode argument and introduce EVAL_SYNC for this case. If mode == EVAL_SYNC adjout_prefix_update needs to force the update and adjout_prefix_withdraw can drop the withdraw. The other user of peer_dump() is during config reloads where the RIB of a peer is altered. In that case the adj-rib-out is first flushed. Because of this flush peer_dump can be used to push out all updates. This also removes the NOTYET block in peer_generate_update() and replaces it with inside up_generate_addpath_all() with a call up_generate_addpath(). OK tb@