Subject: Re: [PATCH 1/2] IPV4: remove addresses and routes when carrier is lost

From: Stephen Hemminger <[email-masked]>
Date: Tue, 3 Jun 2008 09:31:59 -0700

On Tue, 03 Jun 2008 18:03:46 +0200
Patrick McHardy <[email-masked]> wrote:

> Stephen Hemminger wrote:
> > On Tue, 3 Jun 2008 11:05:24 -0400
> > [email-masked] (Lennart Sorensen) wrote:
> > 
> >> On Mon, Jun 02, 2008 at 04:52:49PM -0700, Stephen Hemminger wrote:
> >>> This patch adds a new configuration sysctl that causes link loss to clear
> >>> FIB state in the same way as admin down. This allows for routing daemons
> >>> like Quagga which have option to remove routes when carrier is lost.
> >>>
> >>> This has been a long standing problem with Quagga on Linux with complaints
> >>> on the developers list going back to 2004. Fixing it properly, so the routing 
> >>> daemon manages the RIB, and the kernel manages the FIB, requires changes to
> >>> both parts.
> >> Does this cover only the local route for the interface, or all routes
> >> assigned staticly to the interface too?
> > 
> > The patch makes carrier down == interface down. So the same
> > behaviour as doing 'ip link set dev eth3 down'
> 
> 
> Can't the routing daemon simply ignore routes with a
> device that has no carrier?
> 

It does that, but the problem is that packets get routed in kernel
to interfaces without carrier, rather than being correctly rerouted
over alternate paths.