bgp proto bug with add paths in bird 1.6.3
santiago at crfreenet.org
Thu Mar 9 15:20:59 CET 2017
On Thu, Mar 09, 2017 at 02:20:28PM +0200, Lennert Buytenhek wrote:
> On Mon, Mar 06, 2017 at 07:41:44PM +0200, Lennert Buytenhek wrote:
> > Hi!
> > bgp_init() in proto/bgp/bgp.c does:
> > P->accept_ra_types = c->secondary ? RA_ACCEPTED : RA_OPTIMAL;
> > and then bgp_rx_open() in proto/bgp/packets.c does:
> > if (p->add_path_tx)
> > p->p.accept_ra_types = RA_ANY;
> > As bgp_init() seems to only be called at configuration time, this
> > means that if you have add path tx, and you have a peer that advertises
> > rx add path and then reconnects without advertising rx add path, you
> > will still have RA_ANY set on the sending side and not have the correct
> > behavior of only sending the optimal route. (This is easy to verify.)
> > Not entirely sure how you'd want to fix this, but perhaps replicating
> > the RA_ACCEPTED / RA_OPTIONAL assignment in bgp_rx_open() (or just
> > moving it there) would do the trick?
> In other words, something like this?
Thanks for the bugreport and patch. We already found and fixed the bug
during work on 2.0 branch [*], but we forgot to fix it in 1.6 branch.
Your patch should be OK.
Elen sila lumenn' omentielvo
Ondrej 'Santiago' Zajicek (email: santiago at crfreenet.org)
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net)
"To err is human -- to blame it on a computer is even more so."
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 181 bytes
Desc: Digital signature
More information about the Bird-users