<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/net, branch v3.1.9</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/net?h=v3.1.9</id>
<link rel='self' href='https://git.amat.us/linux/atom/net?h=v3.1.9'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-01-12T19:33:41Z</updated>
<entry>
<title>igmp: Avoid zero delay when receiving odd mixture of IGMP queries</title>
<updated>2012-01-12T19:33:41Z</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2012-01-09T22:06:46Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=dd9f9823b61ce894163433380ffcfc28eaf6e9c5'/>
<id>urn:sha1:dd9f9823b61ce894163433380ffcfc28eaf6e9c5</id>
<content type='text'>
commit a8c1f65c79cbbb2f7da782d4c9d15639a9b94b27 upstream.

Commit 5b7c84066733c5dfb0e4016d939757b38de189e4 ('ipv4: correct IGMP
behavior on v3 query during v2-compatibility mode') added yet another
case for query parsing, which can result in max_delay = 0.  Substitute
a value of 1, as in the usual v3 case.

Reported-by: Simon McVittie &lt;smcv@debian.org&gt;
References: http://bugs.debian.org/654876
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

</content>
</entry>
<entry>
<title>ipv4: using prefetch requires including prefetch.h</title>
<updated>2012-01-06T22:17:31Z</updated>
<author>
<name>Stephen Rothwell</name>
<email>sfr@canb.auug.org.au</email>
</author>
<published>2011-12-22T06:03:29Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e3b22a8ecc595fd80bc3cd84d32e7d4ee7fe9ad8'/>
<id>urn:sha1:e3b22a8ecc595fd80bc3cd84d32e7d4ee7fe9ad8</id>
<content type='text'>
[ Upstream commit b9eda06f80b0db61a73bd87c6b0eb67d8aca55ad ]

Signed-off-by: Stephen Rothwell &lt;sfr@canb.auug.org.au&gt;
Acked-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Acked-by: David Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>ipv4: reintroduce route cache garbage collector</title>
<updated>2012-01-06T22:17:31Z</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2011-12-21T20:47:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=44f6d7e64fc76fe710b95afee4fee984c19d0e64'/>
<id>urn:sha1:44f6d7e64fc76fe710b95afee4fee984c19d0e64</id>
<content type='text'>
[ Upstream commit 9f28a2fc0bd77511f649c0a788c7bf9a5fd04edb ]

Commit 2c8cec5c10b (ipv4: Cache learned PMTU information in inetpeer)
removed IP route cache garbage collector a bit too soon, as this gc was
responsible for expired routes cleanup, releasing their neighbour
reference.

As pointed out by Robert Gladewitz, recent kernels can fill and exhaust
their neighbour cache.

Reintroduce the garbage collection, since we'll have to wait our
neighbour lookups become refcount-less to not depend on this stuff.

Reported-by: Robert Gladewitz &lt;gladewitz@gmx.de&gt;
Signed-off-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@suse.de&gt;
</content>
</entry>
<entry>
<title>net: introduce DST_NOPEER dst flag</title>
<updated>2012-01-06T22:17:31Z</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=d23270aae3214c26691f95922a63c70549232c22'/>
<id>urn:sha1:d23270aae3214c26691f95922a63c70549232c22</id>
<content type='text'>
[ Upstream commit e688a604807647c9450f9c12a7cb6d027150a895 ]

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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>ipv6: Check dest prefix length on original route not copied one in rt6_alloc_cow().</title>
<updated>2012-01-06T22:17:30Z</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=ea67f1fb5976ad72d27e45dff42017894f30b563'/>
<id>urn:sha1:ea67f1fb5976ad72d27e45dff42017894f30b563</id>
<content type='text'>
[ Upstream commit bb3c36863e8001fc21a88bebfdead4da4c23e848 ]

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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>ipv4: flush route cache after change accept_local</title>
<updated>2012-01-06T22:17:29Z</updated>
<author>
<name>Weiping Pan</name>
<email>panweiping3@gmail.com</email>
</author>
<published>2011-12-01T15:47:06Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4e1a937bf13f758c7be089f614e7e84bdafcc0af'/>
<id>urn:sha1:4e1a937bf13f758c7be089f614e7e84bdafcc0af</id>
<content type='text'>
[ Upstream commit d01ff0a049f749e0bf10a35bb23edd012718c8c2 ]

After reset ipv4_devconf-&gt;data[IPV4_DEVCONF_ACCEPT_LOCAL] to 0,
we should flush route cache, or it will continue receive packets with local
source address, which should be dropped.

Signed-off-by: Weiping Pan &lt;panweiping3@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>net: Add a flow_cache_flush_deferred function</title>
<updated>2012-01-06T22:17:29Z</updated>
<author>
<name>Steffen Klassert</name>
<email>steffen.klassert@secunet.com</email>
</author>
<published>2011-12-21T21:48:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6561c4fa576a9e83f4e2faf7b62dbd1d9b598c39'/>
<id>urn:sha1:6561c4fa576a9e83f4e2faf7b62dbd1d9b598c39</id>
<content type='text'>
[ Upstream commit c0ed1c14a72ca9ebacd51fb94a8aca488b0d361e ]

flow_cach_flush() might sleep but can be called from
atomic context via the xfrm garbage collector. So add
a flow_cache_flush_deferred() function and use this if
the xfrm garbage colector is invoked from within the
packet path.

Signed-off-by: Steffen Klassert &lt;steffen.klassert@secunet.com&gt;
Acked-by: Timo Teräs &lt;timo.teras@iki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>sctp: Do not account for sizeof(struct sk_buff) in estimated rwnd</title>
<updated>2012-01-06T22:17:29Z</updated>
<author>
<name>Thomas Graf</name>
<email>tgraf@redhat.com</email>
</author>
<published>2011-12-19T04:11:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fd4199603bbc8851051b45299b7cf73b07b4daac'/>
<id>urn:sha1:fd4199603bbc8851051b45299b7cf73b07b4daac</id>
<content type='text'>
[ Upstream commit a76c0adf60f6ca5ff3481992e4ea0383776b24d2 ]

When checking whether a DATA chunk fits into the estimated rwnd a
full sizeof(struct sk_buff) is added to the needed chunk size. This
quickly exhausts the available rwnd space and leads to packets being
sent which are much below the PMTU limit. This can lead to much worse
performance.

The reason for this behaviour was to avoid putting too much memory
pressure on the receiver. The concept is not completely irational
because a Linux receiver does in fact clone an skb for each DATA chunk
delivered. However, Linux also reserves half the available socket
buffer space for data structures therefore usage of it is already
accounted for.

When proposing to change this the last time it was noted that this
behaviour was introduced to solve a performance issue caused by rwnd
overusage in combination with small DATA chunks.

Trying to reproduce this I found that with the sk_buff overhead removed,
the performance would improve significantly unless socket buffer limits
are increased.

The following numbers have been gathered using a patched iperf
supporting SCTP over a live 1 Gbit ethernet network. The -l option
was used to limit DATA chunk sizes. The numbers listed are based on
the average of 3 test runs each. Default values have been used for
sk_(r|w)mem.

Chunk
Size    Unpatched     No Overhead
-------------------------------------
   4    15.2 Kbit [!]   12.2 Mbit [!]
   8    35.8 Kbit [!]   26.0 Mbit [!]
  16    95.5 Kbit [!]   54.4 Mbit [!]
  32   106.7 Mbit      102.3 Mbit
  64   189.2 Mbit      188.3 Mbit
 128   331.2 Mbit      334.8 Mbit
 256   537.7 Mbit      536.0 Mbit
 512   766.9 Mbit      766.6 Mbit
1024   810.1 Mbit      808.6 Mbit

Signed-off-by: Thomas Graf &lt;tgraf@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>sctp: fix incorrect overflow check on autoclose</title>
<updated>2012-01-06T22:17:28Z</updated>
<author>
<name>Xi Wang</name>
<email>xi.wang@gmail.com</email>
</author>
<published>2011-12-16T12:44:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=74631fca684d7a475f1eed5f6823c11b62bbd2bc'/>
<id>urn:sha1:74631fca684d7a475f1eed5f6823c11b62bbd2bc</id>
<content type='text'>
[ Upstream commit 2692ba61a82203404abd7dd2a027bda962861f74 ]

Commit 8ffd3208 voids the previous patches f6778aab and 810c0719 for
limiting the autoclose value.  If userspace passes in -1 on 32-bit
platform, the overflow check didn't work and autoclose would be set
to 0xffffffff.

This patch defines a max_autoclose (in seconds) for limiting the value
and exposes it through sysctl, with the following intentions.

1) Avoid overflowing autoclose * HZ.

2) Keep the default autoclose bound consistent across 32- and 64-bit
   platforms (INT_MAX / HZ in this patch).

3) Keep the autoclose value consistent between setsockopt() and
   getsockopt() calls.

Suggested-by: Vlad Yasevich &lt;vladislav.yasevich@hp.com&gt;
Signed-off-by: Xi Wang &lt;xi.wang@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>sch_gred: should not use GFP_KERNEL while holding a spinlock</title>
<updated>2012-01-06T22:17:27Z</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2011-12-11T23:42:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=79a25778ca9fbc4ea2bd8c1f32d73bd73a1a3817'/>
<id>urn:sha1:79a25778ca9fbc4ea2bd8c1f32d73bd73a1a3817</id>
<content type='text'>
[ Upstream commit 3f1e6d3fd37bd4f25e5b19f1c7ca21850426c33f ]

gred_change_vq() is called under sch_tree_lock(sch).

This means a spinlock is held, and we are not allowed to sleep in this
context.

We might pre-allocate memory using GFP_KERNEL before taking spinlock,
but this is not suitable for stable material.

Signed-off-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@suse.de&gt;
</content>
</entry>
</feed>
