<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/ipv4/igmp.c, branch linux-2.6.37.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2010-11-09T16:26:42Z</updated>
<entry>
<title>inet: fix ip_mc_drop_socket()</title>
<updated>2010-11-09T16:26:42Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2010-11-08T11:15:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=18943d292facbc70e6a36fc62399ae833f64671b'/>
<id>urn:sha1:18943d292facbc70e6a36fc62399ae833f64671b</id>
<content type='text'>
commit 8723e1b4ad9be4444 (inet: RCU changes in inetdev_by_index())
forgot one call site in ip_mc_drop_socket()

We should not decrease idev refcount after inetdev_by_index() call,
since refcount is not increased anymore.

Reported-by: Markus Trippelsdorf &lt;markus@trippelsdorf.de&gt;
Reported-by: Miles Lane &lt;miles.lane@gmail.com&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>inet: RCU changes in inetdev_by_index()</title>
<updated>2010-10-19T10:50:48Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2010-10-19T00:39:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8723e1b4ad9be4444423b4d41509ce859a629649'/>
<id>urn:sha1:8723e1b4ad9be4444423b4d41509ce859a629649</id>
<content type='text'>
Convert inetdev_by_index() to not increment in_dev refcount.

Callers hold RCU or RTNL, and should not decrement in_dev refcount.

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>net: avoid a dev refcount in ip_mc_find_dev()</title>
<updated>2010-10-19T10:50:47Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2010-10-19T00:39:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9e917dca74138cccf398ce8bb924c7fd2980ec1d'/>
<id>urn:sha1:9e917dca74138cccf398ce8bb924c7fd2980ec1d</id>
<content type='text'>
We hold RTNL in ip_mc_find_dev(), no need to touch device refcount.

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>bonding: fix to rejoin multicast groups immediately</title>
<updated>2010-10-06T03:26:57Z</updated>
<author>
<name>Flavio Leitner</name>
</author>
<published>2010-10-05T14:23:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e12b453904c54bbdc515778ff664d87a7f9473af'/>
<id>urn:sha1:e12b453904c54bbdc515778ff664d87a7f9473af</id>
<content type='text'>
The IGMP specs states that if the system receives a
membership report, it shouldn't send another for the
next minute. However, if a link failure happens right
after that, the backup slave and the switch connected
to this slave will not know about the multicast and
the traffic will hang for about a minute.

This patch fixes it to rejoin multicast groups immediately
after a failover restoring the multicast traffic.

Signed-off-by: Flavio Leitner &lt;fleitner@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv4: correct IGMP behavior on v3 query during v2-compatibility mode</title>
<updated>2010-10-04T04:58:47Z</updated>
<author>
<name>David Stevens</name>
</author>
<published>2010-09-30T14:29:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5b7c84066733c5dfb0e4016d939757b38de189e4'/>
<id>urn:sha1:5b7c84066733c5dfb0e4016d939757b38de189e4</id>
<content type='text'>
A recent patch to allow IGMPv2 responses to IGMPv3 queries
bypasses length checks for valid query lengths, incorrectly
resets the v2_seen timer, and does not support IGMPv1.

The following patch responds with a v2 report as required
by IGMPv2 while correcting the other problems introduced
by the patch.

Signed-Off-By: David L Stevens &lt;dlstevens@us.ibm.com&gt;

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv4: force_igmp_version ignored when a IGMPv3 query received</title>
<updated>2010-09-13T19:56:51Z</updated>
<author>
<name>Bob Arendt</name>
</author>
<published>2010-09-13T19:56:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7998156344b0d93de61ff8e5d75e96500e43a571'/>
<id>urn:sha1:7998156344b0d93de61ff8e5d75e96500e43a571</id>
<content type='text'>
After all these years, it turns out that the
    /proc/sys/net/ipv4/conf/*/force_igmp_version
parameter isn't fully implemented.

*Symptom*:
When set force_igmp_version to a value of 2, the kernel should only perform
multicast IGMPv2 operations (IETF rfc2236).  An host-initiated Join message
will be sent as a IGMPv2 Join message.  But if a IGMPv3 query message is
received, the host responds with a IGMPv3 join message.  Per rfc3376 and
rfc2236, a IGMPv2 host should treat a IGMPv3 query as a IGMPv2 query and
respond with an IGMPv2 Join message.

*Consequences*:
This is an issue when a IGMPv3 capable switch is the querier and will only
issue IGMPv3 queries (which double as IGMPv2 querys) and there's an
intermediate switch that is only IGMPv2 capable.  The intermediate switch
processes the initial v2 Join, but fails to recognize the IGMPv3 Join responses
to the Query, resulting in a dropped connection when the intermediate v2-only
switch times it out.

*Identifying issue in the kernel source*:
The issue is in this section of code (in net/ipv4/igmp.c), which is called when
an IGMP query is received  (from mainline 2.6.36-rc3 gitweb):
 ...
A IGMPv3 query has a length &gt;= 12 and no sources.  This routine will exit after
line 880, setting the general query timer (random timeout between 0 and query
response time).  This calls igmp_gq_timer_expire():
...
.. which only sends a v3 response.  So if a v3 query is received, the kernel
always sends a v3 response.

IGMP queries happen once every 60 sec (per vlan), so the traffic is low.  A
IGMPv3 query *is* a strict superset of a IGMPv2 query, so this patch properly
short circuit's the v3 behaviour.

One issue is that this does not address force_igmp_version=1.  Then again, I've
never seen any IGMPv1 multicast equipment in the wild.  However there is a lot
of v2-only equipment. If it's necessary to support the IGMPv1 case as well:

837         if (len == 8 || IGMP_V2_SEEN(in_dev) || IGMP_V1_SEEN(in_dev)) {

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net/ipv4: EXPORT_SYMBOL cleanups</title>
<updated>2010-07-12T19:57:54Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2010-07-09T21:22:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4bc2f18ba4f22a90ab593c0a580fc9a19c4777b6'/>
<id>urn:sha1:4bc2f18ba4f22a90ab593c0a580fc9a19c4777b6</id>
<content type='text'>
CodingStyle cleanups

EXPORT_SYMBOL should immediately follow the symbol declaration.

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>net-next: remove useless union keyword</title>
<updated>2010-06-11T06:31:35Z</updated>
<author>
<name>Changli Gao</name>
</author>
<published>2010-06-11T06:31:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d8d1f30b95a635dbd610dcc5eb641aca8f4768cf'/>
<id>urn:sha1:d8d1f30b95a635dbd610dcc5eb641aca8f4768cf</id>
<content type='text'>
remove useless union keyword in rtable, rt6_info and dn_route.

Since there is only one member in a union, the union keyword isn't useful.

Signed-off-by: Changli Gao &lt;xiaosuo@gmail.com&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>igmp: avoid two atomic ops in igmp_rcv()</title>
<updated>2010-06-08T04:25:21Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2010-06-07T03:17:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9a57a9d291980302b4a3184fbc47dbddac71903e'/>
<id>urn:sha1:9a57a9d291980302b4a3184fbc47dbddac71903e</id>
<content type='text'>
in_dev_get() -&gt; __in_dev_get_rcu() in a rcu protected function.

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>net/ipv4/igmp.c: Remove unnecessary kmalloc casts</title>
<updated>2010-06-01T07:15:54Z</updated>
<author>
<name>Joe Perches</name>
</author>
<published>2010-05-31T17:23:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3ed37a6fa70a3a63dbb257fc640facb3974bba40'/>
<id>urn:sha1:3ed37a6fa70a3a63dbb257fc640facb3974bba40</id>
<content type='text'>
Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
