Linus Lüssing
2016-Jun-25 14:20 UTC
[Bridge] [PATCH net] Bridge: Fix ipv6 mc snooping if bridge has no ipv6 address
On Fri, Jun 24, 2016 at 12:35:18PM +0200, Daniel Danzberger wrote:> The bridge is falsly dropping ipv6 mulitcast packets if there is: > 1. No ipv6 address assigned on the brigde. > 2. No external mld querier present. > 3. The internal querier enabled. > > When the bridge fails to build mld queries, because it has no > ipv6 address, it slilently returns, but keeps the local querier enabled. > This specific case causes confusing packet loss. > > Ipv6 multicast snooping can only work if: > a) An external querier is present > OR > b) The bridge has an ipv6 address an is capable of sending own queries > > Otherwise it has to forward/flood the ipv6 multicast traffic, > because snooping cannot work. > > This patch fixes the issue by adding a flag to the bridge struct that > indicates that there is currently no ipv6 address assinged to the bridge > and returns a false state for the local querier in > __br_multicast_querier_exists().Fixes: 1d81d4c3dd88 ("bridge: check return value of ipv6_dev_get_saddr()")
David Miller
2016-Jun-28 12:04 UTC
[Bridge] [PATCH net] Bridge: Fix ipv6 mc snooping if bridge has no ipv6 address
From: Linus L?ssing <linus.luessing at c0d3.blue> Date: Sat, 25 Jun 2016 16:20:28 +0200> On Fri, Jun 24, 2016 at 12:35:18PM +0200, Daniel Danzberger wrote: >> The bridge is falsly dropping ipv6 mulitcast packets if there is: >> 1. No ipv6 address assigned on the brigde. >> 2. No external mld querier present. >> 3. The internal querier enabled. >> >> When the bridge fails to build mld queries, because it has no >> ipv6 address, it slilently returns, but keeps the local querier enabled. >> This specific case causes confusing packet loss. >> >> Ipv6 multicast snooping can only work if: >> a) An external querier is present >> OR >> b) The bridge has an ipv6 address an is capable of sending own queries >> >> Otherwise it has to forward/flood the ipv6 multicast traffic, >> because snooping cannot work. >> >> This patch fixes the issue by adding a flag to the bridge struct that >> indicates that there is currently no ipv6 address assinged to the bridge >> and returns a false state for the local querier in >> __br_multicast_querier_exists(). > > Fixes: 1d81d4c3dd88 ("bridge: check return value of ipv6_dev_get_saddr()")You're missing an initial 'd' in that SHA1-ID. With that fixed, applied and queued up for -stable.