Skip to content

Commit 5a2de63

Browse files
liuhangbindavem330
authored andcommitted
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>
1 parent fb692ec commit 5a2de63

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

net/bridge/br_multicast.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1422,7 +1422,15 @@ static void br_multicast_query_received(struct net_bridge *br,
14221422
return;
14231423

14241424
br_multicast_update_query_timer(br, query, max_delay);
1425-
br_multicast_mark_router(br, port);
1425+
1426+
/* Based on RFC4541, section 2.1.1 IGMP Forwarding Rules,
1427+
* the arrival port for IGMP Queries where the source address
1428+
* is 0.0.0.0 should not be added to router port list.
1429+
*/
1430+
if ((saddr->proto == htons(ETH_P_IP) && saddr->u.ip4) ||
1431+
(saddr->proto == htons(ETH_P_IPV6) &&
1432+
!ipv6_addr_any(&saddr->u.ip6)))
1433+
br_multicast_mark_router(br, port);
14261434
}
14271435

14281436
static void br_ip4_multicast_query(struct net_bridge *br,

0 commit comments

Comments
 (0)