Re: Re: quagga/SMF routing management design review -> due 9 October 2005
On Wed, 1 Mar 2006, art wrote:
> Has anyone looked at openbsd's design with openbgpd
Yes, it's interesting. They seem to have made a lot of progress, though
they're still missing a few things (as-path regex matching,
route-refresh or soft-reconfig[1]).
One critique I'd have of OpenBGPd is they seem to have a tendency to
ignore the RFC. OpenBGPd however does the following when accept()ing
connections ('p' represents other the remote peer):
if (p->fd != -1) {
if (p->state == STATE_CONNECT)
session_close_connection(p);
else {
close(connfd);
return;
}
}
Now, that's a whole lot simpler than the RFC admittedly, and it probably
works for 99.999% of cases, however it's not really robust AFAICT (would
be /great/ if it was). The worst case scenario is where both sides
repeatedly connect to each other at the same time - each time the
connections cross, each time both sides close(). I have a vague memory a
well-known vendor tried this trick before and had to back it out due to
interoperability problems.
I've had an email discussion with Henning about this, he swears it's
(Continue reading)