[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20120204.193023.2287808303988988750.davem@davemloft.net>
Date: Sat, 04 Feb 2012 19:30:23 -0500 (EST)
From: David Miller <davem@...emloft.net>
To: eric.dumazet@...il.com
Cc: ja@....bg, netdev@...r.kernel.org, Yurij.Plotnikov@...etlabs.ru
Subject: Re: [PATCH] ipv4: reset flowi parameters on route connect
From: Eric Dumazet <eric.dumazet@...il.com>
Date: Sun, 05 Feb 2012 00:33:36 +0100
> Le dimanche 05 février 2012 à 01:04 +0200, Julian Anastasov a écrit :
>> Eric Dumazet found that commit 813b3b5db83
>> (ipv4: Use caller's on-stack flowi as-is in output
>> route lookups.) that comes in 3.0 added a regression.
>> The problem appears to be that resulting flowi4_oif is
>> used incorrectly as input parameter to some routing lookups.
>> The result is that when connecting to local port without
>> listener if the IP address that is used is not on a loopback
>> interface we incorrectly assign RTN_UNICAST to the output
>> route because no route is matched by oif=lo. The RST packet
>> can not be sent immediately by tcp_v4_send_reset because
>> it expects RTN_LOCAL.
>>
>> So, change ip_route_connect and ip_route_newports to
>> update the flowi4 fields that are input parameters because
>> we do not want unnecessary binding to oif.
>>
>> To make it clear what are the input parameters that
>> can be modified during lookup and to show which fields of
>> floiw4 are reused add a new function to update the flowi4
>> structure: flowi4_update_output.
>>
>> Thanks to Yurij M. Plotnikov for providing a bug report including a
>> program to reproduce the problem.
>>
>> Thanks to Eric Dumazet for tracking the problem down to
>> tcp_v4_send_reset and providing initial fix.
>>
>> Reported-by: Yurij M. Plotnikov <Yurij.Plotnikov@...etlabs.ru>
>> Signed-off-by: Julian Anastasov <ja@....bg>
...
> Acked-by: Eric Dumazet <eric.dumazet@...il.com>
Applied, thanks everyone.
--
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