cvs commit: src/sys/net route.h rtsock.c

Gleb Smirnoff glebius at
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> > 
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-src mailing list