Message ID | 1432307939-19640-1-git-send-email-cascardo@redhat.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On Fri, May 22, 2015 at 8:18 AM, Thadeu Lima de Souza Cascardo <cascardo@redhat.com> wrote: > When more than a multicast address is present in a MLDv2 report, all but > the first address is ignored, because the code breaks out of the loop if > there has not been an error adding that address. > > This has caused failures when two guests connected through the bridge > tried to communicate using IPv6. Neighbor discoveries would not be > transmitted to the other guest when both used a link-local address and a > static address. > > This only happens when there is a MLDv2 querier in the network. > > The fix will only break out of the loop when there is a failure adding a > multicast address. > > The mdb before the patch: > > dev ovirtmgmt port vnet0 grp ff02::1:ff7d:6603 temp > dev ovirtmgmt port vnet1 grp ff02::1:ff7d:6604 temp > dev ovirtmgmt port bond0.86 grp ff02::2 temp > > After the patch: > > dev ovirtmgmt port vnet0 grp ff02::1:ff7d:6603 temp > dev ovirtmgmt port vnet1 grp ff02::1:ff7d:6604 temp > dev ovirtmgmt port bond0.86 grp ff02::fb temp > dev ovirtmgmt port bond0.86 grp ff02::2 temp > dev ovirtmgmt port bond0.86 grp ff02::d temp > dev ovirtmgmt port vnet0 grp ff02::1:ff00:76 temp > dev ovirtmgmt port bond0.86 grp ff02::16 temp > dev ovirtmgmt port vnet1 grp ff02::1:ff00:77 temp > dev ovirtmgmt port bond0.86 grp ff02::1:ff00:def temp > dev ovirtmgmt port bond0.86 grp ff02::1:ffa1:40bf temp > > Reported-by: Rik Theys <Rik.Theys@esat.kuleuven.be> > Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@redhat.com> > Tested-by: Rik Theys <Rik.Theys@esat.kuleuven.be> Fixes: 08b202b67264 ("bridge br_multicast: IPv6 MLD support.") Good catch! -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Thadeu Lima de Souza Cascardo <cascardo@redhat.com> Date: Fri, 22 May 2015 12:18:59 -0300 > When more than a multicast address is present in a MLDv2 report, all but > the first address is ignored, because the code breaks out of the loop if > there has not been an error adding that address. > > This has caused failures when two guests connected through the bridge > tried to communicate using IPv6. Neighbor discoveries would not be > transmitted to the other guest when both used a link-local address and a > static address. > > This only happens when there is a MLDv2 querier in the network. > > The fix will only break out of the loop when there is a failure adding a > multicast address. ... > Reported-by: Rik Theys <Rik.Theys@esat.kuleuven.be> > Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@redhat.com> > Tested-by: Rik Theys <Rik.Theys@esat.kuleuven.be> Applied and queued up for -stable, thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 4b6722f..a3abe6e 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c @@ -1072,7 +1072,7 @@ static int br_ip6_multicast_mld2_report(struct net_bridge *br, err = br_ip6_multicast_add_group(br, port, &grec->grec_mca, vid); - if (!err) + if (err) break; }