Route caching ?

Bruce M. Simpson bms at FreeBSD.org
Wed Aug 22 07:25:39 PDT 2007


Ivo Vachkov wrote:
> Does FreeBSD rtalloc*() (or any other) functions implement route
> caching and how ? I looked at the code but it's not exactly easiest
> thing to read / understand :)
Not really, at least, not in the way one would think. rtalloc() is a 
legacy function.

ip_output() will still call rtalloc() if you pass it a filled out 
'struct route', a structure which is not a route, but an internal 
request to look up a route.

This is a wrapper for rtalloc_ign(), which in turn is a wrapper for 
rtalloc1(), the function which does the actual lookup.

rtalloc_ign() is pretty straightforward. Note however that this approach 
only checks the RTF_UP flag and ifp, nothing more. This makes it 
suitable for implementing floating statics, but nothing more dynamic 
than that.

regards,
BMS


More information about the freebsd-net mailing list