bridge: do not add port to router list when receives query with source 0.0.0.0
authorHangbin Liu <liuhangbin@gmail.com>
Fri, 26 Oct 2018 02:28:43 +0000 (10:28 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 26 Oct 2018 23:01:23 +0000 (16:01 -0700)
commit5a2de63fd1a59c30c02526d427bc014b98adf508
tree88b7a5fb81aada4bba94c68ff8d82bc40e2d598f
parentfb692ec4117f6fd25044cfb5720d6b79d400dc65
bridge: do not add port to router list when receives query with source 0.0.0.0

Based on RFC 4541, 2.1.1.  IGMP Forwarding Rules

  The switch supporting IGMP snooping must maintain a list of
  multicast routers and the ports on which they are attached.  This
  list can be constructed in any combination of the following ways:

  a) This list should be built by the snooping switch sending
     Multicast Router Solicitation messages as described in IGMP
     Multicast Router Discovery [MRDISC].  It may also snoop
     Multicast Router Advertisement messages sent by and to other
     nodes.

  b) The arrival port for IGMP Queries (sent by multicast routers)
     where the source address is not 0.0.0.0.

We should not add the port to router list when receives query with source
0.0.0.0.

Reported-by: Ying Xu <yinxu@redhat.com>
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Acked-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Acked-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_multicast.c