[Xorp-hackers] Soft-wiring RIB

Pavlin Radoslavov pavlin@icir.org
Fri, 07 May 2004 16:30:23 -0700


> Now that there's some semblance of route redistribution happening via 
> the RIB, it's become apparent that there is a start up ordering issue 
> when one protocol process imports routes from another.  There's also a 
> potential source of confusion in table names.  I believe adding 
> additional RIB configuration can solve both problems.
> 
> In the template files we specify dependencies.  The RIB depends on the 
> FEA, protocols typically depend on the RIB.  We typically don't have 
> routing protocols depending on each other.  Using RIP and static routes 
> as an example, RIP does not depend on the static routes process.  
> However, if the RIP configuration specifies importing routes from the 
> static routes process, it implicitly depends on it.  As the rtrmgr is 
> now, RIP ends up being configured before the static routes process so 
> when RIP requests the RIB to redistribute routes from the static routes 
> table it fails because the static routes table has not yet been created 
> by the static routes process.
> 
> One solution would be to change the code so that a redistribution 
> request creates the protocol origin table in the RIB if it does not 
> exist already.  So RIP asking for static routes, would create the 
> static routes table in the RIB.  This has potential for hiding errors.
> 
> A more elegant solution might be to explicitly state protocols and in 
> the RIB section of the configuration file.  So when the RIB starts, 
> origin tables are added for named protocols and administrative 
> distances associated with the protocols too.  This would make the table 
> names visible in the configuration file and make it easier to enable 
> redistribution (since one doesn't have to guess or know existing table 
> names) and we would no longer have to have hard-coded admin distances 
> in the RIB.

You have my vote for the latter solution. I know of at least one
case when a XORP hacker had to modify rib.cc just to add support for
another protocol. I had to do the same thing with the "fib2mrib"
module.
Moving that info to the template/config files would be much nicer.

> We could go one step further by having protocol sections state which 
> origin tables they will provide routes to.  This makes the RIB origin 
> table relations explicit.

I am missing some of the details here, hence can you provide an
example (e.g., a sample config section) so it can become clearer to
me.

Pavlin

> 
> Does this seem reasonable?
> 	Orion
> 
> _______________________________________________
> Xorp-hackers mailing list
> Xorp-hackers@icir.org
> http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-hackers