]> git.baikalelectronics.ru Git - kernel.git/commit
bridge: disable snooping if there is no querier
authorLinus Lüssing <linus.luessing@web.de>
Wed, 31 Jul 2013 23:06:20 +0000 (01:06 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 1 Aug 2013 00:40:21 +0000 (17:40 -0700)
commit5231d8c6ad99e99a756fc5b38f3dcb6028ce7a12
tree1661811588dd237d229e8bb9f33f8b81d5b98a9f
parent2c489c2a45bb93f2e281933dc7b9fd03872904d0
bridge: disable snooping if there is no querier

If there is no querier on a link then we won't get periodic reports and
therefore won't be able to learn about multicast listeners behind ports,
potentially leading to lost multicast packets, especially for multicast
listeners that joined before the creation of the bridge.

These lost multicast packets can appear since 2c14bbde598
("bridge: Add multicast_querier toggle and disable queries by default")
in particular.

With this patch we are flooding multicast packets if our querier is
disabled and if we didn't detect any other querier.

A grace period of the Maximum Response Delay of the querier is added to
give multicast responses enough time to arrive and to be learned from
before disabling the flooding behaviour again.

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_multicast.c
net/bridge/br_private.h