From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 24 Jun 2016 15:24:41 +0200 From: Linus =?utf-8?Q?L=C3=BCssing?= Message-ID: <20160624132441.GJ5511@otheros> References: <1466764518-11358-1-git-send-email-daniel@dd-wrt.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1466764518-11358-1-git-send-email-daniel@dd-wrt.com> Subject: Re: [Bridge] [PATCH net] Bridge: Fix ipv6 mc snooping if bridge has no ipv6 address List-Id: Linux Ethernet Bridging List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Daniel Danzberger Cc: netdev@vger.kernel.org, bridge@lists.linux-foundation.org, linux-kernel@vger.kernel.org, davem@davemloft.net 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(). Acked-by: Linus Lüssing From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751748AbcFXNYr (ORCPT ); Fri, 24 Jun 2016 09:24:47 -0400 Received: from mail.aperture-lab.de ([138.201.29.205]:54319 "EHLO mail.aperture-lab.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751565AbcFXNYp (ORCPT ); Fri, 24 Jun 2016 09:24:45 -0400 Date: Fri, 24 Jun 2016 15:24:41 +0200 From: Linus =?utf-8?Q?L=C3=BCssing?= To: Daniel Danzberger Cc: bridge@lists.linux-foundation.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, stephen@networkplumber.org, davem@davemloft.net Subject: Re: [PATCH net] Bridge: Fix ipv6 mc snooping if bridge has no ipv6 address Message-ID: <20160624132441.GJ5511@otheros> References: <1466764518-11358-1-git-send-email-daniel@dd-wrt.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1466764518-11358-1-git-send-email-daniel@dd-wrt.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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(). Acked-by: Linus Lüssing From mboxrd@z Thu Jan 1 00:00:00 1970 From: Linus =?utf-8?Q?L=C3=BCssing?= Subject: Re: [PATCH net] Bridge: Fix ipv6 mc snooping if bridge has no ipv6 address Date: Fri, 24 Jun 2016 15:24:41 +0200 Message-ID: <20160624132441.GJ5511@otheros> References: <1466764518-11358-1-git-send-email-daniel@dd-wrt.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: netdev@vger.kernel.org, bridge@lists.linux-foundation.org, linux-kernel@vger.kernel.org, davem@davemloft.net To: Daniel Danzberger Return-path: Content-Disposition: inline In-Reply-To: <1466764518-11358-1-git-send-email-daniel@dd-wrt.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: bridge-bounces@lists.linux-foundation.org Errors-To: bridge-bounces@lists.linux-foundation.org List-Id: netdev.vger.kernel.org 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. >=20 > 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. >=20 > 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 >=20 > Otherwise it has to forward/flood the ipv6 multicast traffic, > because snooping cannot work. >=20 > 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 bridg= e > and returns a false state for the local querier in > __br_multicast_querier_exists(). Acked-by: Linus L=C3=BCssing