<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/net/bridge, branch v3.0.3</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.0.3</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.0.3'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2011-08-05T04:58:31Z</updated>
<entry>
<title>bridge: send proper message_age in config BPDU</title>
<updated>2011-08-05T04:58:31Z</updated>
<author>
<name>stephen hemminger</name>
<email>shemminger@vyatta.com</email>
</author>
<published>2011-07-22T07:47:06Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=bde99f604b42182e590ac4b7176b5235321bc94c'/>
<id>urn:sha1:bde99f604b42182e590ac4b7176b5235321bc94c</id>
<content type='text'>
commit 0c03150e7ea8f7fcd03cfef29385e0010b22ee92 upstream.

A bridge topology with three systems:

      +------+  +------+
      | A(2) |--| B(1) |
      +------+  +------+
           \    /
          +------+
          | C(3) |
          +------+

What is supposed to happen:
 * bridge with the lowest ID is elected root (for example: B)
 * C detects that A-&gt;C is higher cost path and puts in blocking state

What happens. Bridge with lowest id (B) is elected correctly as
root and things start out fine initially. But then config BPDU
doesn't get transmitted from A -&gt; C. Because of that
the link from A-C is transistioned to the forwarding state.

The root cause of this is that the configuration messages
is generated with bogus message age, and dropped before
sending.

In the standardmessage_age is supposed to be:
  the time since the generation of the Configuration BPDU by
  the Root that instigated the generation of this Configuration BPDU.

Reimplement this by recording the timestamp (age + jiffies) when
recording config information. The old code incorrectly used the time
elapsed on the ageing timer which was incorrect.

See also:
  https://bugzilla.vyatta.com/show_bug.cgi?id=7164

Signed-off-by: Stephen Hemminger &lt;shemminger@vyatta.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>bridge: Always flood broadcast packets</title>
<updated>2011-07-06T01:39:39Z</updated>
<author>
<name>Herbert Xu</name>
<email>herbert@gondor.apana.org.au</email>
</author>
<published>2011-07-05T13:58:33Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=44661462ee1ee3c922754fc1f246867f0d01e7ea'/>
<id>urn:sha1:44661462ee1ee3c922754fc1f246867f0d01e7ea</id>
<content type='text'>
As is_multicast_ether_addr returns true on broadcast packets as
well, we need to explicitly exclude broadcast packets so that
they're always flooded.  This wasn't an issue before as broadcast
packets were considered to be an unregistered multicast group,
which were always flooded.  However, as we now only flood such
packets to router ports, this is no longer acceptable.

Reported-by: Michael Guntsche &lt;mike@it-loops.com&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>bridge: Only flood unregistered groups to routers</title>
<updated>2011-06-25T00:52:51Z</updated>
<author>
<name>Herbert Xu</name>
<email>herbert@gondor.apana.org.au</email>
</author>
<published>2011-06-23T02:39:12Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=bd4265fe365c0f3945dd5ff1527e52bbe2bedfa2'/>
<id>urn:sha1:bd4265fe365c0f3945dd5ff1527e52bbe2bedfa2</id>
<content type='text'>
The bridge currently floods packets to groups that we have never
seen before to all ports.  This is not required by RFC4541 and
in fact it is not desirable in environment where traffic to
unregistered group is always present.

This patch changes the behaviour so that we only send traffic
to unregistered groups to ports marked as routers.

The user can always force flooding behaviour to any given port
by marking it as a router.

Note that this change does not apply to traffic to 224.0.0.X
as traffic to those groups must always be flooded to all ports.

Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>netpoll: copy dev name of slaves to struct netpoll</title>
<updated>2011-06-19T23:13:01Z</updated>
<author>
<name>WANG Cong</name>
<email>amwang@redhat.com</email>
</author>
<published>2011-06-19T23:13:01Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=cefa9993f161c1c2b6b91b7ea2e84a9bfbd43d2e'/>
<id>urn:sha1:cefa9993f161c1c2b6b91b7ea2e84a9bfbd43d2e</id>
<content type='text'>
Otherwise we will not see the name of the slave dev in error
message:

[  388.469446] (null):  doesn't support polling, aborting.

Signed-off-by: WANG Cong &lt;amwang@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>IGMP snooping: set mrouters_only flag for IPv6 traffic properly</title>
<updated>2011-06-17T03:14:13Z</updated>
<author>
<name>Fernando Luis Vázquez Cao</name>
<email>fernando@oss.ntt.co.jp</email>
</author>
<published>2011-06-13T15:06:58Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=fc2af6c73fc9449cd5894a36bb76b8f8c0e49fd8'/>
<id>urn:sha1:fc2af6c73fc9449cd5894a36bb76b8f8c0e49fd8</id>
<content type='text'>
Upon reception of a MGM report packet the kernel sets the mrouters_only flag
in a skb that is a clone of the original skb, which means that the bridge
loses track of MGM packets (cb buffers are tied to a specific skb and not
shared) and it ends up forwading join requests to the bridge interface.

This can cause unexpected membership timeouts and intermitent/permanent loss
of connectivity as described in RFC 4541 [2.1.1. IGMP Forwarding Rules]:

    A snooping switch should forward IGMP Membership Reports only to
    those ports where multicast routers are attached.
    [...]
    Sending membership reports to other hosts can result, for IGMPv1
    and IGMPv2, in unintentionally preventing a host from joining a
    specific multicast group.

Signed-off-by: Fernando Luis Vazquez Cao &lt;fernando@oss.ntt.co.jp&gt;
Signed-off-by: David S. Miller &lt;davem@conan.davemloft.net&gt;
</content>
</entry>
<entry>
<title>IGMP snooping: set mrouters_only flag for IPv4 traffic properly</title>
<updated>2011-06-17T03:14:12Z</updated>
<author>
<name>Fernando Luis Vázquez Cao</name>
<email>fernando@oss.ntt.co.jp</email>
</author>
<published>2011-06-13T15:04:43Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=62b2bcb49cca72f6d3f39f831127a6ab315a475d'/>
<id>urn:sha1:62b2bcb49cca72f6d3f39f831127a6ab315a475d</id>
<content type='text'>
Upon reception of a IGMP/IGMPv2 membership report the kernel sets the
mrouters_only flag in a skb that may be a clone of the original skb, which
means that sometimes the bridge loses track of membership report packets (cb
buffers are tied to a specific skb and not shared) and it ends up forwading
join requests to the bridge interface.

This can cause unexpected membership timeouts and intermitent/permanent loss
of connectivity as described in RFC 4541 [2.1.1. IGMP Forwarding Rules]:

    A snooping switch should forward IGMP Membership Reports only to
    those ports where multicast routers are attached.
    [...]
    Sending membership reports to other hosts can result, for IGMPv1
    and IGMPv2, in unintentionally preventing a host from joining a
    specific multicast group.

Signed-off-by: Fernando Luis Vazquez Cao &lt;fernando@oss.ntt.co.jp&gt;
Tested-by: Hayato Kakuta &lt;kakuta.hayato@oss.ntt.co.jp&gt;
Signed-off-by: David S. Miller &lt;davem@conan.davemloft.net&gt;
</content>
</entry>
<entry>
<title>bridge: provide a cow_metrics method for fake_ops</title>
<updated>2011-06-07T07:51:35Z</updated>
<author>
<name>Alexander Holler</name>
<email>holler@ahsoftware.de</email>
</author>
<published>2011-06-07T07:51:35Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=6407d74c5106bb362b4087693688afd34942b094'/>
<id>urn:sha1:6407d74c5106bb362b4087693688afd34942b094</id>
<content type='text'>
Like in commit 0972ddb237 (provide cow_metrics() methods to blackhole
dst_ops), we must provide a cow_metrics for bridges fake_dst_ops as
well.

This fixes a regression coming from commits 62fa8a846d7d (net: Implement
read-only protection and COW'ing of metrics.) and 33eb9873a28 (bridge:
initialize fake_rtable metrics)

ip link set mybridge mtu 1234
--&gt;
[  136.546243] Pid: 8415, comm: ip Tainted: P 
2.6.39.1-00006-g40545b7 #103 ASUSTeK Computer Inc.         V1Sn 
        /V1Sn
[  136.546256] EIP: 0060:[&lt;00000000&gt;] EFLAGS: 00010202 CPU: 0
[  136.546268] EIP is at 0x0
[  136.546273] EAX: f14a389c EBX: 000005d4 ECX: f80d32c0 EDX: f80d1da1
[  136.546279] ESI: f14a3000 EDI: f255bf10 EBP: f15c3b54 ESP: f15c3b48
[  136.546285]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
[  136.546293] Process ip (pid: 8415, ti=f15c2000 task=f4741f80 
task.ti=f15c2000)
[  136.546297] Stack:
[  136.546301]  f80c658f f14a3000 ffffffed f15c3b64 c12cb9c8 f80d1b80 
ffffffa1 f15c3bbc
[  136.546315]  c12da347 c12d9c7d 00000000 f7670b00 00000000 f80d1b80 
ffffffa6 f15c3be4
[  136.546329]  00000004 f14a3000 f255bf20 00000008 f15c3bbc c11d6cae 
00000000 00000000
[  136.546343] Call Trace:
[  136.546359]  [&lt;f80c658f&gt;] ? br_change_mtu+0x5f/0x80 [bridge]
[  136.546372]  [&lt;c12cb9c8&gt;] dev_set_mtu+0x38/0x80
[  136.546381]  [&lt;c12da347&gt;] do_setlink+0x1a7/0x860
[  136.546390]  [&lt;c12d9c7d&gt;] ? rtnl_fill_ifinfo+0x9bd/0xc70
[  136.546400]  [&lt;c11d6cae&gt;] ? nla_parse+0x6e/0xb0
[  136.546409]  [&lt;c12db931&gt;] rtnl_newlink+0x361/0x510
[  136.546420]  [&lt;c1023240&gt;] ? vmalloc_sync_all+0x100/0x100
[  136.546429]  [&lt;c1362762&gt;] ? error_code+0x5a/0x60
[  136.546438]  [&lt;c12db5d0&gt;] ? rtnl_configure_link+0x80/0x80
[  136.546446]  [&lt;c12db27a&gt;] rtnetlink_rcv_msg+0xfa/0x210
[  136.546454]  [&lt;c12db180&gt;] ? __rtnl_unlock+0x20/0x20
[  136.546463]  [&lt;c12ee0fe&gt;] netlink_rcv_skb+0x8e/0xb0
[  136.546471]  [&lt;c12daf1c&gt;] rtnetlink_rcv+0x1c/0x30
[  136.546479]  [&lt;c12edafa&gt;] netlink_unicast+0x23a/0x280
[  136.546487]  [&lt;c12ede6b&gt;] netlink_sendmsg+0x26b/0x2f0
[  136.546497]  [&lt;c12bb828&gt;] sock_sendmsg+0xc8/0x100
[  136.546508]  [&lt;c10adf61&gt;] ? __alloc_pages_nodemask+0xe1/0x750
[  136.546517]  [&lt;c11d0602&gt;] ? _copy_from_user+0x42/0x60
[  136.546525]  [&lt;c12c5e4c&gt;] ? verify_iovec+0x4c/0xc0
[  136.546534]  [&lt;c12bd805&gt;] sys_sendmsg+0x1c5/0x200
[  136.546542]  [&lt;c10c2150&gt;] ? __do_fault+0x310/0x410
[  136.546549]  [&lt;c10c2c46&gt;] ? do_wp_page+0x1d6/0x6b0
[  136.546557]  [&lt;c10c47d1&gt;] ? handle_pte_fault+0xe1/0x720
[  136.546565]  [&lt;c12bd1af&gt;] ? sys_getsockname+0x7f/0x90
[  136.546574]  [&lt;c10c4ec1&gt;] ? handle_mm_fault+0xb1/0x180
[  136.546582]  [&lt;c1023240&gt;] ? vmalloc_sync_all+0x100/0x100
[  136.546589]  [&lt;c10233b3&gt;] ? do_page_fault+0x173/0x3d0
[  136.546596]  [&lt;c12bd87b&gt;] ? sys_recvmsg+0x3b/0x60
[  136.546605]  [&lt;c12bdd83&gt;] sys_socketcall+0x293/0x2d0
[  136.546614]  [&lt;c13629d0&gt;] sysenter_do_call+0x12/0x26
[  136.546619] Code:  Bad EIP value.
[  136.546627] EIP: [&lt;00000000&gt;] 0x0 SS:ESP 0068:f15c3b48
[  136.546645] CR2: 0000000000000000
[  136.546652] ---[ end trace 6909b560e78934fa ]---

Signed-off-by: Alexander Holler &lt;holler@ahsoftware.de&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>Merge branch 'pablo/nf-2.6-updates' of git://1984.lsi.us.es/net-2.6</title>
<updated>2011-05-27T17:04:40Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-05-27T17:04:40Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=58bf2dbccc5aca12df77e2328f478e239a68bdd5'/>
<id>urn:sha1:58bf2dbccc5aca12df77e2328f478e239a68bdd5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>netfilter: Fix several warnings in compat_mtw_from_user().</title>
<updated>2011-05-26T17:09:07Z</updated>
<author>
<name>David Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-05-19T22:14:39Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=97242c85a2c8160eac5a6e945209b5b6ae8ab5a3'/>
<id>urn:sha1:97242c85a2c8160eac5a6e945209b5b6ae8ab5a3</id>
<content type='text'>
Kill set but not used 'entry_offset'.

Add a default case to the switch statement so the compiler
can see that we always initialize off and size_kern before
using them.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</content>
</entry>
<entry>
<title>bridge: initialize fake_rtable metrics</title>
<updated>2011-05-24T17:32:18Z</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2011-05-24T17:32:18Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=33eb9873a283a2076f2b5628813d5365ca420ea9'/>
<id>urn:sha1:33eb9873a283a2076f2b5628813d5365ca420ea9</id>
<content type='text'>
bridge netfilter code uses a fake_rtable, and we must init its _metric
field or risk NULL dereference later.

Ref: https://bugzilla.kernel.org/show_bug.cgi?id=35672

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>
