<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/net/ipv6, branch v3.2.2</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/net/ipv6?h=v3.2.2</id>
<link rel='self' href='https://git.amat.us/linux/atom/net/ipv6?h=v3.2.2'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2011-12-23T03:34:56Z</updated>
<entry>
<title>net: introduce DST_NOPEER dst flag</title>
<updated>2011-12-23T03:34:56Z</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2011-12-22T04:15:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e688a604807647c9450f9c12a7cb6d027150a895'/>
<id>urn:sha1:e688a604807647c9450f9c12a7cb6d027150a895</id>
<content type='text'>
Chris Boot reported crashes occurring in ipv6_select_ident().

[  461.457562] RIP: 0010:[&lt;ffffffff812dde61&gt;]  [&lt;ffffffff812dde61&gt;]
ipv6_select_ident+0x31/0xa7

[  461.578229] Call Trace:
[  461.580742] &lt;IRQ&gt;
[  461.582870]  [&lt;ffffffff812efa7f&gt;] ? udp6_ufo_fragment+0x124/0x1a2
[  461.589054]  [&lt;ffffffff812dbfe0&gt;] ? ipv6_gso_segment+0xc0/0x155
[  461.595140]  [&lt;ffffffff812700c6&gt;] ? skb_gso_segment+0x208/0x28b
[  461.601198]  [&lt;ffffffffa03f236b&gt;] ? ipv6_confirm+0x146/0x15e
[nf_conntrack_ipv6]
[  461.608786]  [&lt;ffffffff81291c4d&gt;] ? nf_iterate+0x41/0x77
[  461.614227]  [&lt;ffffffff81271d64&gt;] ? dev_hard_start_xmit+0x357/0x543
[  461.620659]  [&lt;ffffffff81291cf6&gt;] ? nf_hook_slow+0x73/0x111
[  461.626440]  [&lt;ffffffffa0379745&gt;] ? br_parse_ip_options+0x19a/0x19a
[bridge]
[  461.633581]  [&lt;ffffffff812722ff&gt;] ? dev_queue_xmit+0x3af/0x459
[  461.639577]  [&lt;ffffffffa03747d2&gt;] ? br_dev_queue_push_xmit+0x72/0x76
[bridge]
[  461.646887]  [&lt;ffffffffa03791e3&gt;] ? br_nf_post_routing+0x17d/0x18f
[bridge]
[  461.653997]  [&lt;ffffffff81291c4d&gt;] ? nf_iterate+0x41/0x77
[  461.659473]  [&lt;ffffffffa0374760&gt;] ? br_flood+0xfa/0xfa [bridge]
[  461.665485]  [&lt;ffffffff81291cf6&gt;] ? nf_hook_slow+0x73/0x111
[  461.671234]  [&lt;ffffffffa0374760&gt;] ? br_flood+0xfa/0xfa [bridge]
[  461.677299]  [&lt;ffffffffa0379215&gt;] ?
nf_bridge_update_protocol+0x20/0x20 [bridge]
[  461.684891]  [&lt;ffffffffa03bb0e5&gt;] ? nf_ct_zone+0xa/0x17 [nf_conntrack]
[  461.691520]  [&lt;ffffffffa0374760&gt;] ? br_flood+0xfa/0xfa [bridge]
[  461.697572]  [&lt;ffffffffa0374812&gt;] ? NF_HOOK.constprop.8+0x3c/0x56
[bridge]
[  461.704616]  [&lt;ffffffffa0379031&gt;] ?
nf_bridge_push_encap_header+0x1c/0x26 [bridge]
[  461.712329]  [&lt;ffffffffa037929f&gt;] ? br_nf_forward_finish+0x8a/0x95
[bridge]
[  461.719490]  [&lt;ffffffffa037900a&gt;] ?
nf_bridge_pull_encap_header+0x1c/0x27 [bridge]
[  461.727223]  [&lt;ffffffffa0379974&gt;] ? br_nf_forward_ip+0x1c0/0x1d4 [bridge]
[  461.734292]  [&lt;ffffffff81291c4d&gt;] ? nf_iterate+0x41/0x77
[  461.739758]  [&lt;ffffffffa03748cc&gt;] ? __br_deliver+0xa0/0xa0 [bridge]
[  461.746203]  [&lt;ffffffff81291cf6&gt;] ? nf_hook_slow+0x73/0x111
[  461.751950]  [&lt;ffffffffa03748cc&gt;] ? __br_deliver+0xa0/0xa0 [bridge]
[  461.758378]  [&lt;ffffffffa037533a&gt;] ? NF_HOOK.constprop.4+0x56/0x56
[bridge]

This is caused by bridge netfilter special dst_entry (fake_rtable), a
special shared entry, where attaching an inetpeer makes no sense.

Problem is present since commit 87c48fa3b46 (ipv6: make fragment
identifications less predictable)

Introduce DST_NOPEER dst flag and make sure ipv6_select_ident() and
__ip_select_ident() fallback to the 'no peer attached' handling.

Reported-by: Chris Boot &lt;bootc@bootc.net&gt;
Tested-by: Chris Boot &lt;bootc@bootc.net&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: Check dest prefix length on original route not copied one in rt6_alloc_cow().</title>
<updated>2011-12-13T22:35:06Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-12-13T22:35:06Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=bb3c36863e8001fc21a88bebfdead4da4c23e848'/>
<id>urn:sha1:bb3c36863e8001fc21a88bebfdead4da4c23e848</id>
<content type='text'>
After commit 8e2ec639173f325977818c45011ee176ef2b11f6 ("ipv6: don't
use inetpeer to store metrics for routes.") the test in rt6_alloc_cow()
for setting the ANYCAST flag is now wrong.

'rt' will always now have a plen of 128, because it is set explicitly
to 128 by ip6_rt_copy.

So to restore the semantics of the test, check the destination prefix
length of 'ort'.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipip, sit: copy parms.name after register_netdevice</title>
<updated>2011-12-12T23:50:51Z</updated>
<author>
<name>Ted Feng</name>
<email>artisdom@gmail.com</email>
</author>
<published>2011-12-08T00:46:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=72b36015ba43a3cca5303f5534d2c3e1899eae29'/>
<id>urn:sha1:72b36015ba43a3cca5303f5534d2c3e1899eae29</id>
<content type='text'>
Same fix as 731abb9cb2 for ipip and sit tunnel.
Commit 1c5cae815d removed an explicit call to dev_alloc_name in
ipip_tunnel_locate and ipip6_tunnel_locate, because register_netdevice
will now create a valid name, however the tunnel keeps a copy of the
name in the private parms structure. Fix this by copying the name back
after register_netdevice has successfully returned.

This shows up if you do a simple tunnel add, followed by a tunnel show:

$ sudo ip tunnel add mode ipip remote 10.2.20.211
$ ip tunnel
tunl0: ip/ip  remote any  local any  ttl inherit  nopmtudisc
tunl%d: ip/ip  remote 10.2.20.211  local any  ttl inherit
$ sudo ip tunnel add mode sit remote 10.2.20.212
$ ip tunnel
sit0: ipv6/ip  remote any  local any  ttl 64  nopmtudisc 6rd-prefix 2002::/16
sit%d: ioctl 89f8 failed: No such device
sit%d: ipv6/ip  remote 10.2.20.212  local any  ttl inherit

Cc: stable@vger.kernel.org
Signed-off-by: Ted Feng &lt;artisdom@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: Fix for adding multicast route for loopback device automatically.</title>
<updated>2011-12-12T23:48:18Z</updated>
<author>
<name>Li Wei</name>
<email>lw@cn.fujitsu.com</email>
</author>
<published>2011-12-06T21:23:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4af04aba93f47699e7ac33e7cfd4da22550e6114'/>
<id>urn:sha1:4af04aba93f47699e7ac33e7cfd4da22550e6114</id>
<content type='text'>
There is no obvious reason to add a default multicast route for loopback
devices, otherwise there would be a route entry whose dst.error set to
-ENETUNREACH that would blocking all multicast packets.

====================

[ more detailed explanation ]

The problem is that the resulting routing table depends on the sequence
of interface's initialization and in some situation, that would block all
muticast packets. Suppose there are two interfaces on my computer
(lo and eth0), if we initailize 'lo' before 'eth0', the resuting routing
table(for multicast) would be

# ip -6 route show | grep ff00::
unreachable ff00::/8 dev lo metric 256 error -101
ff00::/8 dev eth0 metric 256

When sending multicasting packets, routing subsystem will return the first
route entry which with a error set to -101(ENETUNREACH).

I know the kernel will set the default ipv6 address for 'lo' when it is up
and won't set the default multicast route for it, but there is no reason to
stop 'init' program from setting address for 'lo', and that is exactly what
systemd did.

I am sure there is something wrong with kernel or systemd, currently I preferred
kernel caused this problem.

====================

Signed-off-by: Li Wei &lt;lw@cn.fujitsu.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Revert "udp: remove redundant variable"</title>
<updated>2011-12-01T19:12:55Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-12-01T19:12:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=59c2cdae2791c0b2ee13d148edc6b771e7e7953f'/>
<id>urn:sha1:59c2cdae2791c0b2ee13d148edc6b771e7e7953f</id>
<content type='text'>
This reverts commit 81d54ec8479a2c695760da81f05b5a9fb2dbe40a.

If we take the "try_again" goto, due to a checksum error,
the 'len' has already been truncated.  So we won't compute
the same values as the original code did.

Reported-by: paul bilke &lt;fsmail@conspiracy.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: Set mcast_hops to IPV6_DEFAULT_MCASTHOPS when -1 was given.</title>
<updated>2011-11-28T23:09:13Z</updated>
<author>
<name>Li Wei</name>
<email>lw@cn.fujitsu.com</email>
</author>
<published>2011-11-27T21:33:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2a38e6d5aed24bb7f0211e0819fac8c32c2b5791'/>
<id>urn:sha1:2a38e6d5aed24bb7f0211e0819fac8c32c2b5791</id>
<content type='text'>
We need to set np-&gt;mcast_hops to it's default value at this moment
otherwise when we use it and found it's value is -1, the logic to
get default hop limit doesn't take multicast into account and will
return wrong hop limit(IPV6_DEFAULT_HOPLIMIT) which is for unicast.

Signed-off-by: Li Wei &lt;lw@cn.fujitsu.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: Move mtu handling down to the protocol depended handlers</title>
<updated>2011-11-26T19:29:51Z</updated>
<author>
<name>Steffen Klassert</name>
<email>steffen.klassert@secunet.com</email>
</author>
<published>2011-11-23T02:13:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=618f9bc74a039da76fa027ac2600c5b785b964c5'/>
<id>urn:sha1:618f9bc74a039da76fa027ac2600c5b785b964c5</id>
<content type='text'>
We move all mtu handling from dst_mtu() down to the protocol
layer. So each protocol can implement the mtu handling in
a different manner.

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>net: Rename the dst_opt default_mtu method to mtu</title>
<updated>2011-11-26T19:29:50Z</updated>
<author>
<name>Steffen Klassert</name>
<email>steffen.klassert@secunet.com</email>
</author>
<published>2011-11-23T02:12:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ebb762f27fed083cb993a0816393aba4615f6544'/>
<id>urn:sha1:ebb762f27fed083cb993a0816393aba4615f6544</id>
<content type='text'>
We plan to invoke the dst_opt-&gt;default_mtu() method unconditioally
from dst_mtu(). So rename the method to dst_opt-&gt;mtu() to match
the name with the new meaning.

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>route: Use the device mtu as the default for blackhole routes</title>
<updated>2011-11-26T19:29:50Z</updated>
<author>
<name>Steffen Klassert</name>
<email>steffen.klassert@secunet.com</email>
</author>
<published>2011-11-23T02:12:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6b600b26c0215bf9ed04062ecfacf0bc20e2588c'/>
<id>urn:sha1:6b600b26c0215bf9ed04062ecfacf0bc20e2588c</id>
<content type='text'>
As it is, we return null as the default mtu of blackhole routes.
This may lead to a propagation of a bogus pmtu if the default_mtu
method of a blackhole route is invoked. So return dst-&gt;dev-&gt;mtu
as the default mtu instead.

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>ipv6: tcp: fix tcp_v6_conn_request()</title>
<updated>2011-11-23T22:29:23Z</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2011-11-23T22:29:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4d0fe50c75a547088e4304e5eb5f521514dfae46'/>
<id>urn:sha1:4d0fe50c75a547088e4304e5eb5f521514dfae46</id>
<content type='text'>
Since linux 2.6.26 (commit c6aefafb7ec6 : Add IPv6 support to TCP SYN
cookies), we can drop a SYN packet reusing a TIME_WAIT socket.

(As a matter of fact we fail to send the SYNACK answer)

As the client resends its SYN packet after a one second timeout, we
accept it, because first packet removed the TIME_WAIT socket before
being dropped.

This probably explains why nobody ever noticed or complained.

Reported-by: Jesse Young &lt;jlyo@jlyo.org&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
