linux-imx/net
Fernando Luis Vázquez Cao ef0c3e7d6e IGMP snooping: set mrouters_only flag for IPv6 traffic
[ upstream commit fc2af6c73f ]
 properly

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 <fernando@oss.ntt.co.jp>
Signed-off-by: David S. Miller <davem@conan.davemloft.net>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
2011-08-01 13:55:04 -07:00
..
9p 9p: strlen() doesn't count the terminator 2010-08-10 11:09:16 -07:00
802 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-04-11 14:53:53 -07:00
8021q net: deliver skbs on inactive slaves to exact matches 2010-06-10 22:23:34 -07:00
appletalk Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-04-11 14:53:53 -07:00
atm atm: expose ATM device index in sysfs 2011-08-01 13:54:53 -07:00
ax25 net: ax25: fix information leak to userland harder 2011-04-28 08:21:09 -07:00
bluetooth Bluetooth: bnep: fix buffer overflow 2011-04-28 08:20:55 -07:00
bridge IGMP snooping: set mrouters_only flag for IPv6 traffic 2011-08-01 13:55:04 -07:00
caif caif: fix a couple range checks 2010-06-09 16:18:53 -07:00
can can: add missing socket check in can/raw release 2011-08-01 13:54:47 -07:00
core net: filter: Use WARN_RATELIMIT 2011-08-01 13:54:59 -07:00
dcb include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
dccp dccp: handle invalid feature options length 2011-08-01 13:54:48 -07:00
decnet DECnet: don't leak uninitialized stack byte 2010-12-14 23:40:15 +01:00
dsa dsa: Fix Kconfig dependencies. 2010-07-12 20:03:42 -07:00
econet econet: 4 byte infoleak to the network 2011-04-28 08:20:58 -07:00
ethernet net: Inline skb_pull() in eth_type_trans(). 2010-05-02 02:21:44 -07:00
ieee802154 ieee802154: Fix possible NULL pointer dereference in wpan_phy_alloc 2010-05-23 23:11:07 -07:00
ipv4 udp/recvmsg: Clear MSG_TRUNC flag when starting over for a new packet 2011-08-01 13:54:59 -07:00
ipv6 ipv6: add special mode forwarding=2 to send RS while 2011-08-01 13:55:04 -07:00
ipx include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
irda irda: prevent integer underflow in IRLMP_ENUMDEVICES 2011-04-28 08:21:01 -07:00
iucv Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2010-05-28 10:18:40 -07:00
key pfkey: add severity to printk 2010-05-17 23:23:13 -07:00
l2tp l2tp: Fix modalias of l2tp_ip 2011-02-06 11:03:39 -08:00
lapb include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
llc llc: fix a device refcount imbalance 2011-02-06 11:03:31 -08:00
mac80211 mac80211: fix TKIP replay vulnerability 2011-08-01 13:55:03 -07:00
netfilter netfilter: IPv6: fix DSCP mangle code 2011-08-01 13:54:56 -07:00
netlabel net: Remove unnecessary returns from void function()s 2010-05-17 23:23:14 -07:00
netlink 2.6.35.13 longterm review 2011-04-28 08:21:17 -07:00
netrom net: sk_sleep() helper 2010-04-20 16:37:13 -07:00
packet af_packet: prevent information leak 2011-08-01 13:54:59 -07:00
phonet Phonet: device notifier only runs on initial namespace 2011-08-01 13:54:47 -07:00
rds net: fix rds_iovec page count overflow 2011-04-28 08:21:02 -07:00
rfkill Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-04-11 14:53:53 -07:00
rose ROSE: prevent heap corruption with bad facilities 2011-04-28 08:20:52 -07:00
rxrpc net: sock_def_readable() and friends RCU conversion 2010-05-01 15:00:15 -07:00
sched sched: Fix softirq time accounting 2011-03-31 11:57:59 -07:00
sctp sctp: Fix out-of-bounds reading in sctp_asoc_get_hmac() 2011-03-31 11:58:03 -07:00
sunrpc SUNRPC: Fix a race between work-queue and rpc_killall_tasks 2011-08-01 13:55:02 -07:00
tipc net: tipc: fix information leak to userland 2011-04-28 08:21:01 -07:00
unix af_unix: limit recursion level 2011-02-06 11:03:37 -08:00
wanrouter headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
wimax Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-05-20 21:04:44 -07:00
wireless nl80211: fix check for valid SSID size in scan operations 2011-08-01 13:54:55 -07:00
x25 x25: Do not reference freed memory. 2011-03-31 11:58:15 -07:00
xfrm xfrm: do not assume that template resolving always returns xfrms 2010-07-14 14:16:48 -07:00
compat.c net: Limit socket I/O iovec total length to INT_MAX. 2010-12-14 23:40:17 +01:00
Kconfig net: RPS needs to depend upon USE_GENERIC_SMP_HELPERS 2010-09-26 17:18:12 -07:00
Makefile l2tp: Split pppol2tp patch into separate l2tp and ppp parts 2010-04-03 14:56:02 -07:00
nonet.c
socket.c net: Truncate recvfrom and sendto length to INT_MAX. 2010-12-14 23:40:16 +01:00
sysctl_net.c net: Remove unnecessary returns from void function()s 2010-05-17 23:23:14 -07:00
TUNABLE