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@
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.