<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/include/net/route.h, branch stable/3.2.y</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=stable%2F3.2.y</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=stable%2F3.2.y'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2012-03-01T00:31:00Z</updated>
<entry>
<title>ipv4: reset flowi parameters on route connect</title>
<updated>2012-03-01T00:31:00Z</updated>
<author>
<name>Julian Anastasov</name>
<email>ja@ssi.bg</email>
</author>
<published>2012-02-04T13:04:46Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=f4df037cf3ca933c941a0f87a9c9ec542c88031c'/>
<id>urn:sha1:f4df037cf3ca933c941a0f87a9c9ec542c88031c</id>
<content type='text'>
[ Upstream commit e6b45241c57a83197e5de9166b3b0d32ac562609 ]

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 &lt;Yurij.Plotnikov@oktetlabs.ru&gt;
Signed-off-by: Julian Anastasov &lt;ja@ssi.bg&gt;
Acked-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>route: struct rtable can be const in rt_is_input_route and rt_is_output_route</title>
<updated>2011-11-26T19:29:51Z</updated>
<author>
<name>Steffen Klassert</name>
<email>steffen.klassert@secunet.com</email>
</author>
<published>2011-11-23T02:14:15Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=b8400f3718a11c9b0ca400705cddf94f3132c1c3'/>
<id>urn:sha1:b8400f3718a11c9b0ca400705cddf94f3132c1c3</id>
<content type='text'>
Signed-off-by: Steffen Klassert &lt;steffen.klassert@secunet.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv4: Pass explicit destination address to rt_bind_peer().</title>
<updated>2011-05-18T22:42:43Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-05-18T22:42:43Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=a48eff128865aa20520fa6e0e0c5fbd2ac50d712'/>
<id>urn:sha1:a48eff128865aa20520fa6e0e0c5fbd2ac50d712</id>
<content type='text'>
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv4: Pass explicit destination address to rt_get_peer().</title>
<updated>2011-05-18T22:38:54Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-05-18T22:38:54Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=ed2361e66eec60645f8e4715fe39a42235ef43ae'/>
<id>urn:sha1:ed2361e66eec60645f8e4715fe39a42235ef43ae</id>
<content type='text'>
This will next trickle down to rt_bind_peer().

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv4: Remove route key identity dependencies in ip_rt_get_source().</title>
<updated>2011-05-13T21:29:41Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-05-13T21:29:41Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=8e36360ae876995e92d3a7538dda70548e64e685'/>
<id>urn:sha1:8e36360ae876995e92d3a7538dda70548e64e685</id>
<content type='text'>
Pass in the sk_buff so that we can fetch the necessary keys from
the packet header when working with input routes.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv4: Kill rt-&gt;rt_{src, dst} usage in IP GRE tunnels.</title>
<updated>2011-05-04T19:55:07Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-05-04T19:33:34Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=cbb1e85f9cfd2bd9b7edfd21d167e89a4279faf0'/>
<id>urn:sha1:cbb1e85f9cfd2bd9b7edfd21d167e89a4279faf0</id>
<content type='text'>
First, make callers pass on-stack flowi4 to ip_route_output_gre()
so they can get at the fully resolved flow key.

Next, use that in ipgre_tunnel_xmit() to avoid the need to use
rt-&gt;rt_{dst,src}.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv4: Make caller provide on-stack flow key to ip_route_output_ports().</title>
<updated>2011-05-04T03:25:42Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-05-04T03:25:42Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=31e4543db29fb85496a122b965d6482c8d1a2bfe'/>
<id>urn:sha1:31e4543db29fb85496a122b965d6482c8d1a2bfe</id>
<content type='text'>
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv4: Renamt struct rtable's rt_tos to rt_key_tos.</title>
<updated>2011-05-04T02:45:15Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-05-04T02:45:15Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=475949d8e86bbde5ea3ffa4d95e022ca69233b14'/>
<id>urn:sha1:475949d8e86bbde5ea3ffa4d95e022ca69233b14</id>
<content type='text'>
To more accurately reflect that it is purely a routing
cache lookup key and is used in no other context.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv4: Remove now superfluous code in ip_route_connect().</title>
<updated>2011-04-29T06:13:17Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-04-29T06:13:17Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=6706b6ebab85dfca4e2886e35ec9c3c4ee13e27e'/>
<id>urn:sha1:6706b6ebab85dfca4e2886e35ec9c3c4ee13e27e</id>
<content type='text'>
Now that output route lookups update the flow with
source address et al. selections, the fl4-&gt;{saddr,daddr}
assignments here are no longer necessary.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv4: Use caller's on-stack flowi as-is in output route lookups.</title>
<updated>2011-04-29T05:26:00Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-04-28T21:48:42Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=813b3b5db831ddbd92b5ce0fdeb74e3368f1323c'/>
<id>urn:sha1:813b3b5db831ddbd92b5ce0fdeb74e3368f1323c</id>
<content type='text'>
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
