[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20121018100149.GA5176@ms2.inr.ac.ru>
Date: Thu, 18 Oct 2012 14:01:49 +0400
From: Alexey Kuznetsov <kuznet@....inr.ac.ru>
To: Eric Dumazet <eric.dumazet@...il.com>
Cc: Mikael Abrahamsson <swmike@....pp.se>,
Chris Friesen <chris.friesen@...band.com>,
netdev <netdev@...r.kernel.org>,
David Miller <davem@...emloft.net>,
James Morris <jmorris@...ei.org>,
Patrick McHardy <kaber@...sh.net>,
Hideaki YOSHIFUJI <yoshfuji@...ux-ipv6.org>
Subject: Re: Bug? TCP shutdown behaviour when deleting local IP addresses
On Thu, Oct 18, 2012 at 11:13:29AM +0200, Eric Dumazet wrote:
> > c) tell the kernel to kill all TCP sessions bound to a certain IP, because
> > the connection manager is going to remove it shortly. Send TCP RSTs or
> > whatever and close the TCP session, so both ends know that network
> > connectivity is going down.
> >
>
> Yes, why not.
FYI the idea was by Andi Kleen back in 2003. If was flag IFF_DYNAMIC
on device (apparently, it should be per-interface sysctl instead
or even a flag on specific address).
Andi suggested to hook netdev notifier and to reset tcp connections
bound to addresses on this interface. He did not go so far to send
resets before address is actually disabled (it was not a goal, normally
address is already dead to the time when it is deleted),
but techically it is the same.
The problem with this was purely technical, the code has to scan through
all the tcp hash table to search for connections to this address (grrr already :-))
and to take socket lock before making any actions. It is doable, but quite chumbersome
and nobody was interested enough to finish the job.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists