Index | Thread | Search

From:
Theo Buehler <tb@theobuehler.org>
Subject:
Re: bgpd: adjust Adj-RIB-Out operations to support down peers
To:
tech@openbsd.org
Date:
Tue, 10 Dec 2024 17:43:44 +0100

Download raw body.

Thread
On Tue, Dec 10, 2024 at 05:03:23PM +0100, Claudio Jeker wrote:
> Both prefix_adjout_update() and prefix_adjout_withdraw() insert a RB tree
> node into the update / withdraw tree structures. Those RB_INSERTs result
> in the update to be sent out.
> 
> In preparation for caching the Adj-RIB-Out over a session restart add a
> check in the two functions to only do this RB tree insert if the peer is
> up. For prefix_adjout_update() nothing else needs to be done (the prefix
> is still linked in the actual Adj-RIB-Out (called adj_rib_out) but on a
> withdraw the prefix is already unlinked for the adj_rib_out and needs to
> be destroyed. To make this work correctly mark the prefix as dead since
> it is already unlinked and therefor dead.
> 
> Right now this is a no-op since  prefix_adjout_update() and
> prefix_adjout_withdraw() are only called for peers that are up but this
> diff is complex enough to send it out alone.

ok tb