[prev in list] [next in list] [prev in thread] [next in thread]
List: freebsd-bugs
Subject: Re: kern/10778: "ipforward_rt" is not cleared when routing table changes
From: Bill Fenner <fenner () research ! att ! com>
Date: 1999-04-30 19:10:02
[Download RAW message or body]
The following reply was made to PR kern/10778; it has been noted by GNATS.
From: Bill Fenner <fenner@research.att.com>
To: freebsd-gnats-submit@freebsd.org
Cc:
Subject: Re: kern/10778: "ipforward_rt" is not cleared when routing table changes
Date: Fri, 30 Apr 1999 12:09:47 -0700
I agree with Archie, although it's more like all cached routes should
be cleared when the routing table changes in a way that affects the
cached route. Scenario:
- default route exists. Start TCP connection, which caches the default
route.
- add a host route for the endpoint of the TCP connection pointing
out a different interface (perhaps a secure VPN interface as Archie
mentioned).
- TCP continues to use the default route. The only way to get TCP to
stop using the default route is to delete the default route and then
re-add it, which is a little too disruptive.
(I first saw this problem occur in earnest when I added route caching
to the kernel multicast tunnel code -- multicast tunnels are pretty
long-lived)
Unfortunately, the current route cache architecture has no facility
to deal with this problem. There is no list of cached routes, and
there is no way to notify cached routes that a change has occurred.
If anyone cares to work on this, I'd imagine storing the destination
of each cached route in a patricia tree would make it easy to determine
the subset of cached routes that need to be invalidated when a given
new route is added.
Bill
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic