• Nikolay Aleksandrov's avatar
    net: bridge: always clear mcast matching struct on reports and leaves · 1515a63f
    Nikolay Aleksandrov authored
    We need to be careful and always zero the whole br_ip struct when it is
    used for matching since the rhashtable change. This patch fixes all the
    places which didn't properly clear it which in turn might've caused
    mismatches.
    
    Thanks for the great bug report with reproducing steps and bisection.
    
    Steps to reproduce (from the bug report):
    ip link add br0 type bridge mcast_querier 1
    ip link set br0 up
    
    ip link add v2 type veth peer name v3
    ip link set v2 master br0
    ip link set v2 up
    ip link set v3 up
    ip addr add 3.0.0.2/24 dev v3
    
    ip netns add test
    ip link add v1 type veth peer name v1 netns test
    ip link set v1 master br0
    ip link set v1 up
    ip -n test link set v1 up
    ip -n test addr add 3.0.0.1/24 dev v1
    
    # Multicast receiver
    ip netns exec test socat
    UDP4-RECVFROM:5588,ip-add-membership=224.224.224.224:3.0.0.1,fork -
    
    # Multicast sender
    echo hello | nc -u -s 3.0.0.2 224.224.224.224 5588
    
    Reported-by: liam.mcbirnie@boeing.com
    Fixes: 19e3a9c9 ("net: bridge: convert multicast to generic rhashtable")
    Signed-off-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1515a63f
br_multicast.c 59.7 KB