Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Aug 2007 15:25:35 +0100
From:      "Bruce M. Simpson" <bms@FreeBSD.org>
To:        Ivo Vachkov <ivo.vachkov@gmail.com>
Cc:        freebsd-net <freebsd-net@freebsd.org>
Subject:   Re: Route caching ?
Message-ID:  <46CC475F.8030505@FreeBSD.org>
In-Reply-To: <f85d6aa70708220003le893770uca9ceea467d85618@mail.gmail.com>
References:  <f85d6aa70708220003le893770uca9ceea467d85618@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?46CC475F.8030505>