Subject: Re: kern/3508 bug: cached ip route and interface up/down.
To: Tad Hunt <tad@entrisphere.com>
From: Nick Amato <naamato@nexthop.com>
List: tech-kern
Date: 11/12/2002 19:46:43
On Tue, Nov 12, 2002 at 04:37:12PM -0800, Tad Hunt wrote:
> In message <20021112191552.D18167@wooj.nexthop.com>, you said:
> ;
> ;Yes, it is true. A routing daemon cannot fix the problems in PR 3508.
> ;
> ;However, as long as there is an absence of an alternate route (i.e. default)
> ;while a destination is unreachable, it still works.
>
> Right, which is why hardly anybody is going to notice this problem,
> unless they're using NetBSD as a router with very little traffic.
>
> ;When a route is deleted and added the old route has RTF_UP reset and the
> ;new route will be rtalloc'd in ip_output().
> ;
> ;Not very useful. It seems to me that what needs to happen is to clear the
> ;cache whenever a more specific route than the cached route is added to
> ;the table. I don't know how practical this is.
>
> Not quite. Because when there are alternate routes, and the more
> specific route was deleted, it needs to fall back to the less-specific
> route.
Unless I'm mistaken, glancing over rtrequest1(), I think the code
already does this. When the more specific route is deleted, the
rt_entry referenced by the cache has its RTF_UP cleared and this
is noticed in ip_output().
Nick