[Bridge] [PATCH 1/2] bridge: multicast: add sanity check for general query destination

2014-03-09 Thread Linus Lüssing
multicast traffic as the bridge did not learn about these listeners. Reported-by: Jan Stancek Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c | 19 +++ 1 file changed, 19 insertions(+) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index fb0e36f

Re: [Bridge] bridge is not forwaring ICMP6 neighbor solicitation to KVM guest

2014-03-05 Thread Linus Lüssing
On Wed, Mar 05, 2014 at 07:10:07AM -0500, Jan Stancek wrote: > > > - Original Message - > > From: "Linus Lüssing" > > To: "Jan Stancek" > > Cc: net...@vger.kernel.org, "Florian Westphal" , > > bridge@lists.linux-foundati

Re: [Bridge] bridge is not forwaring ICMP6 neighbor solicitation to KVM guest

2014-03-04 Thread Linus Lüssing
On Tue, Mar 04, 2014 at 06:06:29AM -0500, Jan Stancek wrote: > > > - Original Message - > > From: "Linus Lüssing" > > To: "Jan Stancek" > > Cc: net...@vger.kernel.org, "Florian Westphal" , > > bridge@lists.linux-foundati

Re: [Bridge] bridge is not forwaring ICMP6 neighbor solicitation to KVM guest

2014-03-04 Thread Linus Lüssing
Hi Jan, On Tue, Mar 04, 2014 at 03:02:36AM -0500, Jan Stancek wrote: > > For the broken query, ok, it's your manually crafted query. But > > did you see a query with such a bogus source address "in the > > wild", too? (I'm curious how urgent this sanity check is) > > It's real packet I managed to

Re: [Bridge] [PATCH] bridge: multicast: add sanity check for query source addresses

2014-03-04 Thread Linus Lüssing
On Tue, Mar 04, 2014 at 10:06:14AM +0100, Hannes Frederic Sowa wrote: > > diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c > > index ef66365..fb0e36f 100644 > > --- a/net/bridge/br_multicast.c > > +++ b/net/bridge/br_multicast.c > > @@ -1235,6 +1235,12 @@ static int br_ip6_multica

[Bridge] [PATCH] bridge: multicast: add sanity check for query source addresses

2014-03-03 Thread Linus Lüssing
about these listeners. Reported-by: Jan Stancek Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c |6 ++ 1 file changed, 6 insertions(+) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index ef66365..fb0e36f 100644 --- a/net/bridge/br_multicast.c +++ b/net

Re: [Bridge] bridge is not forwaring ICMP6 neighbor solicitation to KVM guest

2014-03-03 Thread Linus Lüssing
Hi Jan, On Mon, Mar 03, 2014 at 05:45:49PM -0500, Jan Stancek wrote: > There is also bridge on host B. I assume that doesn't matter > but I could set up host B without bridge if needed. It can matter, but in this case it doesn't :). > > What I'm curious about is, whether the guest receives > > t

Re: [Bridge] bridge is not forwaring ICMP6 neighbor solicitation to KVM guest

2014-03-03 Thread Linus Lüssing
On Mon, Mar 03, 2014 at 04:40:40PM -0500, Vlad Yasevich wrote: > I did notice a minor issue in the bridge code. The following > code: >/* Prevent flooding this packet if there is no listener present */ > if (!ipv6_addr_is_ll_all_nodes(&ip6h->daddr)) > BR_INPUT_SKB_C

Re: [Bridge] bridge is not forwaring ICMP6 neighbor solicitation to KVM guest

2014-03-03 Thread Linus Lüssing
Hi Jan, On Mon, Mar 03, 2014 at 02:47:15PM -0500, Jan Stancek wrote: > I'm seeing an issue where bridge (sometimes) stops forwarding ICMP6 > neighbor solicitation packets to KVM guest and as result KVM guest doesn't > respond with neighbor advertisement. Hm, okay, that's not supposed to happen.

[Bridge] [PATCH net-next 2/2] bridge: apply multicast snooping to IPv6 link-local, too

2013-09-03 Thread Linus Lüssing
The multicast snooping code should have matured enough to be safely applicable to IPv6 link-local multicast addresses (excluding the link-local all nodes address, ff02::1), too. Signed-off-by: Linus Lüssing --- net/bridge/br_mdb.c |3 ++- net/bridge/br_multicast.c |7 --- net

[Bridge] [PATCH net-next 1/2] bridge: prevent flooding IPv6 packets that do not have a listener

2013-09-03 Thread Linus Lüssing
("bridge: Only flood unregistered groups to routers") did for IPv4, let's do the same for IPv6 with the same reasoning. Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/net/bridge/br_multicast

[Bridge] bride: IPv6 multicast snooping enhancements

2013-09-03 Thread Linus Lüssing
Hi, Here are two, small feature changes I would like to submit to increase the usefulness of the multicast snooping of the bridge code. The first patch is an unaltered one I had submitted before, but since it got no feedback I'm resubmitting it here for net-next. With the recently added patch to

[Bridge] [PATCHv2] bridge: separate querier and query timer into IGMP/IPv4 and MLD/IPv6 ones

2013-08-30 Thread Linus Lüssing
pecific by using separate timers for the snooped IGMP and MLD queries as well as separate timers for our internal IGMP and MLD queriers. Signed-off-by: Linus Lüssing --- net/bridge/br_device.c|2 +- net/bridge/br_input.c |2 +- net/bridge/br_mdb.c | 14 ++- net/bridge/br_m

[Bridge] [PATCH] bridge: separate querier and query timer into IGMP/IPv4 and MLD/IPv6 ones

2013-08-26 Thread Linus Lüssing
pecific by using separate timers for the snooped IGMP and MLD queries as well as separate timers for our internal IGMP and MLD queriers. Signed-off-by: Linus Lüssing --- net/bridge/br_device.c|2 +- net/bridge/br_input.c |2 +- net/bridge/br_mdb.c | 14 +- net/bridge/br_m

Re: [Bridge] [PATCH] bridge: don't try to update timers in case of broken MLD queries

2013-08-05 Thread Linus Lüssing
On Mon, Aug 05, 2013 at 03:42:22PM -0700, Stephen Hemminger wrote: > On Tue, 6 Aug 2013 00:32:05 +0200 > Linus Lüssing wrote: > > > Currently we are reading an uninitialized value for the max_delay > > variable when snooping an MLD query message of invalid length and would

Re: [Bridge] [PATCHv3] bridge: disable snooping if there is no querier

2013-08-05 Thread Linus Lüssing
his patch we are flooding multicast packets if our querier is > > > disabled and if we didn't detect any other querier. > > > > > > A grace period of the Maximum Response Delay of the querier is added to > > > give multicast responses enough time to arrive an

[Bridge] [PATCH] bridge: don't try to update timers in case of broken MLD queries

2013-08-05 Thread Linus Lüssing
: "bridge: disable snooping if there is no querier" (b00589af3b04) Reported-by: Paul Bolle Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 61c5e8

[Bridge] [PATCHv3] bridge: disable snooping if there is no querier

2013-07-31 Thread Linus Lüssing
mum Response Delay of the querier is added to give multicast responses enough time to arrive and to be learned from before disabling the flooding behaviour again. Signed-off-by: Linus Lüssing --- v3: changed type of multicast_querier_delay_time from atomic64_t to unsigned long

Re: [Bridge] [PATCHv2] bridge: disable snooping if there is no querier

2013-07-27 Thread Linus Lüssing
On Fri, Jul 26, 2013 at 11:19:00PM +0100, Adam Baker wrote: > On 25/07/13 14:56, Linus Lüssing wrote: > >If there is no querier on a link then we won't get periodic reports and > >therefore won't be able to learn about multicast listeners behind ports, > >potent

Re: [Bridge] [PATCHv2] bridge: disable snooping if there is no querier

2013-07-25 Thread Linus Lüssing
On Thu, Jul 25, 2013 at 09:01:40AM -0700, Stephen Hemminger wrote: > On Thu, 25 Jul 2013 15:56:20 +0200 > Linus Lüssing wrote: > > > > > +static void br_multicast_update_querier_timer(struct net_bridge *br, > > +

[Bridge] [PATCHv2] bridge: disable snooping if there is no querier

2013-07-25 Thread Linus Lüssing
mum Response Delay of the querier is added to give multicast responses enough time to arrive and to be learned from before disabling the flooding behaviour again. Signed-off-by: Linus Lüssing --- v2: added missing, empty br_multicast_querier_exists() to avoid build failures if CONFIG_BRIDGE_IGMP_S

[Bridge] [PATCH] bridge: disable snooping if there is no querier

2013-07-25 Thread Linus Lüssing
mum Response Delay of the querier is added to give multicast responses enough time to arrive and to be learned from before disabling the flooding behaviour again. Signed-off-by: Linus Lüssing --- net/bridge/br_device.c|3 ++- net/bridge/br_input.c |3 ++- net/bri

Re: [Bridge] [PATCH] bridge: prevent flooding IPv6 packets that do not have a listener

2013-07-22 Thread Linus Lüssing
Hi Herbert, Were there any reasons I might not be aware of which prevented you from adding the same change you introduced in "bridge: Only flood unregistered groups to routers" for IPv6, too? If not and if no one else comes up with any objection, then I'd still be happy if this patch could find i

[Bridge] [PATCH] bridge: prevent flooding IPv6 packets that do not have a listener

2013-06-21 Thread Linus Lüssing
("bridge: Only flood unregistered groups to routers") did for IPv4, let's do the same for IPv6 with the same reasoning. Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/net/bridge/br_multicast

[Bridge] [PATCH] bridge: fix switched interval for MLD Query types

2013-06-16 Thread Linus Lüssing
on 7.3+7.8) Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c |5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 81f2389..d6448e3 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c @@ -46

[Bridge] [RFC PATCH] bridge: Add export of multicast database adjacent to net_dev

2013-02-03 Thread Linus Lüssing
net_device itself. A multicast optimization currently implemented for batman-adv requires this data. Signed-off-by: Linus Lüssing --- include/linux/if_bridge.h | 17 + net/bridge/br_multicast.c | 59 + net/bridge/br_private.h | 11

Re: [Bridge] [PATCH] bridge: mcast snooping, fix IPv6 MLD checksum calculation

2011-03-27 Thread Linus Lüssing
Hmm, if so, then I don't know how to test and verify that now though. Cheers, Linus On Sun, Mar 27, 2011 at 02:37:49PM +0800, Herbert Xu wrote: > On Sun, Mar 27, 2011 at 08:27:23AM +0200, Linus Lüssing wrote: > > In contrast to IGMP, the MLDv1/2 message checksum needs to include

[Bridge] [PATCH] bridge: mcast snooping, fix length check of snooped MLDv1/2

2011-03-26 Thread Linus Lüssing
underrun when substracting the offset and therefore to a very high new value of 'len' due to its unsignedness. This will ultimately lead to the pskb_trim_rcsum() practically never being called, even in the cases where it should. Signed-off-by: Linus Lüssing --- net/bridge/br_multica

[Bridge] [PATCH] bridge: mcast snooping, fix IPv6 MLD checksum calculation

2011-03-26 Thread Linus Lüssing
ion for the checksum validation when parsing a snooped IPv6 MLDv1/2 message of another host, leading to possibly ignored, though valid MLDv1/2 messages. This commit shall fix this issue. Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c |5 - 1 files changed, 4 insertions(+), 1 deleti

[Bridge] bridge: mcast snooping, fixes for IPv6 MLDv1/2 parsing

2011-03-26 Thread Linus Lüssing
Hi everyone, The following two patches are fixing two issues, related to the parsing of IPv6 MLD messages. The first one fixes an observed issue which lead to ignored MLD messages. In the tests this patch fixes the issue in my scenario. However I'm not so familiar with the checksumming functions

[Bridge] Checksumming bug in bridge multicast snooping for IPv6?

2011-03-26 Thread Linus Lüssing
Hi everyone, Somehow I'm having trouble with the IPv6 bridge snooping again: MLDv2 Reports are dropped by the multicast snooping feature, looks like it has something to do with checksums. Wireshark does not display any weirdness, it at least reports the MLD reports checksum as correct. The setup

Re: [Bridge] build breakage due to br_multicast.c referencing ipv6_dev_get_saddr()

2011-03-22 Thread Linus Lüssing
> One unrelated other observation with this change of yours: > daddr is an input argument to ipv6_dev_get_saddr(), yet > it gets initialized only after the function was called. Is that > really correct? Hmm, that wasn't intentional. I tested that again and so far I still always got the right source

[Bridge] [PATCH] bridge: Fix possibly wrong MLD queries' ethernet source address

2011-03-22 Thread Linus Lüssing
and only after that fetching the source address. Reported-by: Jan Beulich Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 030a002..f61eb2e 100644

[Bridge] [PATCH 1/2] bridge: Fix MLD queries' ethernet source address

2011-02-17 Thread Linus Lüssing
eries destination MAC should always be 33:33:00:00:00:01 which matches the IPv6 header's multicast destination ff02::1. Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multica

[Bridge] [PATCH 2/2] bridge: Use IPv6 link-local address for multicast listener queries

2011-02-17 Thread Linus Lüssing
with a MLD response (which was not the case before). Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c |3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index f904a2e..2d88861 100644 --- a/net/bridge/br_multica

Re: [Bridge] Multicast snooping fixes and suggestions

2011-02-17 Thread Linus Lüssing
> These look correct. Did you test them with real traffic? Yes, I did. With these patches the hashlist and linked lists per port are being filled correctly for IPv6 - initially. Verified that with both some printk()s for the per port mglists as well as with vlc. With patch 5/5 this also worked fin

[Bridge] [PATCH 5/5] bridge: Allow mcast snooping for transient link local addresses too

2011-02-17 Thread Linus Lüssing
transient multicast addresses instead of non-link-local addresses. Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c |9 - 1 files changed, 4 insertions(+), 5 deletions(-) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index e8fdaab..b5eb28a 100644 --- a

[Bridge] [PATCH 3/5] bridge: Add missing ntohs()s for MLDv2 report parsing

2011-02-17 Thread Linus Lüssing
The nsrcs number is 2 Byte wide, therefore we need to call ntohs() before using it. Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c |5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 45dcf10

[Bridge] [PATCH 4/5] ipv6: Add IPv6 multicast address flag defines

2011-02-17 Thread Linus Lüssing
This commit adds the missing IPv6 multicast address flag defines to complement the already existing multicast address scope defines and to be able to check these flags nicely in the future. Signed-off-by: Linus Lüssing --- include/net/ipv6.h | 12 1 files changed, 12 insertions

[Bridge] [PATCH 1/5] bridge: Fix IPv6 multicast snooping by storing correct protocol type

2011-02-17 Thread Linus Lüssing
The protocol type for IPv6 entries in the hash table for multicast bridge snooping is falsely set to ETH_P_IP, marking it as an IPv4 address, instead of setting it to ETH_P_IPV6, which results in negative look-ups in the hash table later. Signed-off-by: Linus Lüssing --- net/bridge

[Bridge] Multicast snooping fixes and suggestions

2011-02-17 Thread Linus Lüssing
Hello everyone, While testing the (very awesome!) bridge igmp/mld snooping support I came across two issues which are breaking IPv6 multicast snooping and IPv6 non-link-local multicast on bridges with multicast snooping support enabled in general. The first two patches shall fix these issues. The

[Bridge] [PATCH 2/5] bridge: Fix IPv6 multicast snooping by correcting offset in MLDv2 report

2011-02-17 Thread Linus Lüssing
-by: Linus Lüssing --- net/bridge/br_multicast.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 135d929..45dcf10 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c @@ -1014,7 +1014,7 @@ static

<    1   2   3