cvs commit: src/sys/net route.h rtsock.c
glebius at FreeBSD.org
Thu Mar 16 07:44:09 UTC 2006
On Wed, Mar 15, 2006 at 10:15:09PM +0100, Andre Oppermann wrote:
A> > A> These changes faciliate running of multiple cooperating routing
A> > A> daemons at the same time without causing undesired interference.
A> > A> Open[BGP|OSPF]D make use of these features to have IGP routes
A> > A> override EGP ones.
A> > Please explain how is this done. Does radix allow presence of two
A> > identical prefixes in tree, and we distinguish them by rt->rt_flags?
A> No. If you've got the same prefix in BGP and OSPF with different next
A> hops then the OSPF one should win. Normally the two daemons would get
A> into a fight about this and indefinatly try to replace each others
A> route again. This change makes it possible for two cooperating daemons
A> to avoid this. With the change to flags OSPFD may take over an existing
A> route by chaning the PROTO flag to itself. BGPD then knows it got an
A> override. Before OSPFD had to delete the route and re-add it with its
A> own parameters. However upon the delete message BGPD would try to add
A> it again. When OSPFD removes a route that was identical to a BGP one
A> BGPD will re-add its own version of it.
So, we have a small window when the route is absent in kernel, right?
Totus tuus, Glebius.
More information about the cvs-all