[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