]> git.baikalelectronics.ru Git - kernel.git/commit
bridge: adhere to querier election mechanism specified by RFCs
authorLinus Lüssing <linus.luessing@web.de>
Sat, 7 Jun 2014 16:26:27 +0000 (18:26 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 11 Jun 2014 06:50:47 +0000 (23:50 -0700)
commit6d78234e7fba50b7096339ddc3d25e6259b80fd0
treeb8e20e21f06afd05489ff5fba727c8c01717db70
parentaa9c0433a628d843a22205b1ca922d6b0fc3a0b5
bridge: adhere to querier election mechanism specified by RFCs

MLDv1 (RFC2710 section 6), MLDv2 (RFC3810 section 7.6.2), IGMPv2
(RFC2236 section 3) and IGMPv3 (RFC3376 section 6.6.2) specify that the
querier with lowest source address shall become the selected
querier.

So far the bridge stopped its querier as soon as it heard another
querier regardless of its source address. This results in the "wrong"
querier potentially becoming the active querier or a potential,
unnecessary querying delay.

With this patch the bridge memorizes the source address of the currently
selected querier and ignores queries from queriers with a higher source
address than the currently selected one. This slight optimization is
supposed to make it more RFC compliant (but is rather uncritical and
therefore probably not necessary to be queued for stable kernels).

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