Subject: Re: works in progress: route cache invalidation, RADIX_MPATH
To: None <tech-net@netbsd.org>
From: Antti Kantee <pooka@cs.hut.fi>
List: tech-net
Date: 12/10/2006 14:58:39
On Sat Dec 09 2006 at 01:09:16 +0100, Joerg Sonnenberger wrote:
> ftp://ftp.netbsd.org/pub/NetBSD/misc/joerg/rtcache.diff
>
> This is part one to actually do this. The difference to David's approach
> is that I want to actually abstract the route cache (re)validation and
> ultimately avoid doing the domain specific flushing.
>
> The patch starts this by changing all the proper rtfree calls to the new
> API and starts to adjust the various updates. The next part will add
> rtcache_check() calls in the various places where the cached route is
> accessed and enforcing the calls to rtcache_init().
>
> I want to commit this first as it is mostly mechanical and makes
> reviewing the other parts easier.
Just skimming through the patch, how about making rtcache_init() return if
the cache is valid. It'd avoid a lot of rtcache_init(); if (!= NULL) foo;
Then (of course!), I find the naming confusing. I'd expect _check()
to return if the cache valid, not have side effects. Maybe call it
_reheat()? (ok, equally sucky name, but at least less confusing ;) Also,
maybe _invalidate() instead of _free() and add isvalid() to avoid manual
comparison against NULL.
And while you're abstracting, it would be nice if _init() could take
the address to truly *init* the route cache (err.. or route, route not
being rtentry. gotta love the naming). And then we'd just call _update()
or _hopefully_soon_to_be_renamed_check() everywhere else.
The use of rtcache in pf seems excessive. Maybe it would be better to
fix the routing interface to allow such a query (yes, I know, it wasn't
the point here, but this part just stuck out of the patch).
I'll comment less mechanically when the patches get less mechanical.
Or after I get coffee, whichever happens last ;)
routing gore looks more palatable already. thanks!
p.s. didn't even skim the netiso part ... ;p
--
Antti Kantee <pooka@iki.fi> Of course he runs NetBSD
http://www.iki.fi/pooka/ http://www.NetBSD.org/
"la qualité la plus indispensable du cuisinier est l'exactitude"