bgp proto bug with add paths in bird 1.6.3

Ondrej Zajicek 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?

Hi

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.

[*] https://gitlab.labs.nic.cz/labs/bird/blob/int-new/proto/bgp/bgp.c#L528

-- 
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...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20170309/a4f95617/attachment.asc>


More information about the Bird-users mailing list