]> git.baikalelectronics.ru Git - kernel.git/commit
bridge: separate querier and query timer into IGMP/IPv4 and MLD/IPv6 ones
authorLinus Lüssing <linus.luessing@web.de>
Fri, 30 Aug 2013 15:28:17 +0000 (17:28 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 30 Aug 2013 19:24:37 +0000 (15:24 -0400)
commitcd08587dff8384cbf057bac698f2dd2aecaec99b
treeeb5643ad4e5c783b28a6d936a1a91bb40e905447
parent2a1f66c779f7e847d583d86c42e94cfd59cfa644
bridge: separate querier and query timer into IGMP/IPv4 and MLD/IPv6 ones

Currently we would still potentially suffer multicast packet loss if there
is just either an IGMP or an MLD querier: For the former case, we would
possibly drop IPv6 multicast packets, for the latter IPv4 ones. This is
because we are currently assuming that if either an IGMP or MLD querier
is present that the other one is present, too.

This patch makes the behaviour and fix added in
"bridge: disable snooping if there is no querier" (5231d8c6ad99)
to also work if there is either just an IGMP or an MLD querier on the
link: It refines the deactivation of the snooping to be protocol
specific by using separate timers for the snooped IGMP and MLD queries
as well as separate timers for our internal IGMP and MLD queriers.

Signed-off-by: Linus Lüssing <linus.luessing@web.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_device.c
net/bridge/br_input.c
net/bridge/br_mdb.c
net/bridge/br_multicast.c
net/bridge/br_private.h