[patch] interface routes

Nikolay Denev ndenev at gmail.com
Sat Mar 9 19:18:04 UTC 2013


On Mar 7, 2013, at 9:42 PM, John-Mark Gurney <jmg at funkthat.com> wrote:

> Andre Oppermann wrote this message on Thu, Mar 07, 2013 at 08:39 +0100:
>>> Adding interface address is handled via atomically deleting old prefix and 
>>> adding interface one.
>> 
>> This brings up a long standing sore point of our routing code
>> which this patch makes more pronounced.  When an interface link
>> state is down I don't want the route to it to persist but to
>> become inactive so another path can be chosen.  This the very
>> point of running a routing daemon.  So on the link-down event
>> the installed interface routes should be removed from the routing
>> table.  The configured addresses though should persist and the
>> interface routes re-installed on a link-up event.  What's your
>> opinion on it?
>> 
>> Other than these points I think your code is fine and can go
>> into the tree.
> 
> The issue that I see with this is that if you bump your cable, all
> your connections will be dropped, because as soon as they try to send
> something, they'll get a no route to host, and this will break the
> TCP connection...  If we keep the routes when the link goes down,
> the packet will be queued or dropped (depending upon ethernet driver),
> but the TCP connection will not break...
> 
> -- 
>  John-Mark Gurney				Voice: +1 415 225 5579
> 
>     "All that I will do, has been done, All that I have, has not."

Maybe this can be made a option that can be turned on when needed.
What you describe can be very undesirable for a workstation/laptop or a server,
but a router that itself does not have many connections originating or terminating on it could
actually benefit from this.
The current state is actually much worse for routers. A link down does not do anything, and
while there may be a alternative route to be installed for example from OSPF, the interface without link
pertains its routes and effectively blackholes all traffic.

--
Nikolay



More information about the freebsd-net mailing list