[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

[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 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] [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 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 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

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 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

[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] 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

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] 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

[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] [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] [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

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] [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

[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] [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

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: 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

[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

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, > > +

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

[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

[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

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

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

[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

[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] 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] [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

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.

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 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

[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] [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

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] 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-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

[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

[Bridge] [PATCH 2/2] bridge: multicast: enable snooping on general queries only

2014-03-09 Thread Linus Lüssing
traffic as the bridge did not learn about these listeners. With this patch the snooping code is enabled upon receiving valid, general queries only. Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c |8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/net/bridge

[Bridge] [PATCHv2 2/2] bridge: multicast: enable snooping on general queries only

2014-03-10 Thread Linus Lüssing
traffic as the bridge did not learn about these listeners. With this patch the snooping code is enabled upon receiving valid, general queries only. Signed-off-by: Linus Lüssing --- v2: unchanged net/bridge/br_multicast.c |8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a

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

2014-03-10 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 --- v2: simplified is_general_query variable assignment (thanks Cong!) net/bridge/br_multicast.c | 19 +++ 1 file changed, 19 insertions(+) diff --git a/net

Re: [Bridge] [PATCHv2 2/2] bridge: multicast: enable snooping on general queries only

2014-03-10 Thread Linus Lüssing
On Mon, Mar 10, 2014 at 11:56:00PM +0100, Hannes Frederic Sowa wrote: > On Mon, Mar 10, 2014 at 10:25:25PM +0100, Linus Lüssing wrote: > > br_multicast_query_received(br, port, &br->ip6_querier, > > - !ipv6_addr_any(&a

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

2014-03-11 Thread Linus Lüssing
- Original Message ----- > > From: "Linus Lüssing" > > To: "Jan Stancek" > > Cc: net...@vger.kernel.org, "Florian Westphal" , > > bridge@lists.linux-foundation.org > > Sent: Wednesday, 5 March, 2014 3:27:07 PM > > S

[Bridge] [PATCH] bridge: simplify a br_multicast_query_received() function call

2014-04-21 Thread Linus Lüssing
eported-by: Hannes Frederic Sowa Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c |3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 7b757b5..d2c3aae 100644 --- a/net/bridge/br_multicast.c +++ b/

Re: [Bridge] [PATCH] bridge: simplify a br_multicast_query_received() function call

2014-05-01 Thread Linus Lüssing
On Wed, Apr 23, 2014 at 02:47:48PM -0400, David Miller wrote: > > --- a/net/bridge/br_multicast.c > > +++ b/net/bridge/br_multicast.c > > @@ -1282,8 +1282,7 @@ static int br_ip6_multicast_query(struct net_bridge > > *br, > > goto out; > > } > > > > - br_multicast_query_received

[Bridge] [PATCH net-next 2/4] bridge: adhere to querier election mechanism specified by RFCs

2014-05-21 Thread Linus Lüssing
s than the currently selected one. This slight optimization is supposed to make it more RFC compliant (but is rather uncritical and therefore probably not necessary to be queued for stable kernels). Signed-off-by: Linus Lüssing --- net/bridge/br_multicas

[Bridge] bridge: multicast snooping patches / exports

2014-05-21 Thread Linus Lüssing
Hi, The first patch is simply a cosmetic patch. So far I (and maybe others too?) have been regularly confusing these two structs, therefore I'd suggest renaming them and therefore making the follow-up patches easier to understand and nicer to fit in. The second patch fixes a minor issue, but prob

[Bridge] [PATCH net-next 1/4] bridge: rename struct bridge_mcast_query/querier

2014-05-21 Thread Linus Lüssing
the "struct bridge_mcast_querier" but for storing information about the selected querier (no matter if our own or a foreign querier). Signed-off-by: Linus Lüssing --- net/bridge/br_mdb.c |4 +- net/bridge/br_multicast.c | 169 +++--

[Bridge] [PATCH net-next 3/4] bridge: add export of multicast database adjacent to net_dev

2014-05-21 Thread Linus Lüssing
net_device itself. Adding bridge support to the batman-adv multicast optimization requires batman-adv knowing about the existence of bridged-in multicast listeners to be able to reliably serve them with multicast packets. Signed-off-by: Linus Lüssing --- include/linux/if_bridge.h | 18

[Bridge] [PATCH net-next 4/4] bridge: memorize and export selected IGMP/MLD querier port

2014-05-21 Thread Linus Lüssing
Adding bridge support to the batman-adv multicast optimization requires batman-adv knowing about the existence of bridged-in IGMP/MLD queriers to be able to reliably serve any multicast listener behind this same bridge. Signed-off-by: Linus Lüssing --- include/linux/if_bridge.h |1 + net

[Bridge] [PATCHv2 net-next 0/4] bridge: multicast snooping patches / exports

2014-05-24 Thread Linus Lüssing
Changes in v2: * fix a nasty typo in PATCH 1/4, br_multicast_update_query_timer(): "br->multicast_query_interval" vs. "br->multicast_querier_interval" => this accidentally reduced the other querier present timer from 255 to 125 seconds * fix a typo in PATCH 2/4, br_ip{4,6}_multicast_quer

[Bridge] [PATCHv2 net-next 1/4] bridge: rename struct bridge_mcast_query/querier

2014-05-24 Thread Linus Lüssing
the "struct bridge_mcast_querier" but for storing information about the selected querier (no matter if our own or a foreign querier). Signed-off-by: Linus Lüssing --- net/bridge/br_mdb.c |4 +- net/bridge/br_multicast.c | 169 +++--

[Bridge] [PATCHv2 net-next 3/4] bridge: add export of multicast database adjacent to net_dev

2014-05-24 Thread Linus Lüssing
net_device itself. Adding bridge support to the batman-adv multicast optimization requires batman-adv knowing about the existence of bridged-in multicast listeners to be able to reliably serve them with multicast packets. Signed-off-by: Linus Lüssing --- include/linux/if_bridge.h | 18

[Bridge] [PATCHv2 net-next 4/4] bridge: memorize and export selected IGMP/MLD querier port

2014-05-24 Thread Linus Lüssing
Adding bridge support to the batman-adv multicast optimization requires batman-adv knowing about the existence of bridged-in IGMP/MLD queriers to be able to reliably serve any multicast listener behind this same bridge. Signed-off-by: Linus Lüssing --- include/linux/if_bridge.h |1 + net

[Bridge] [PATCHv2 net-next 2/4] bridge: adhere to querier election mechanism specified by RFCs

2014-05-24 Thread Linus Lüssing
s than the currently selected one. This slight optimization is supposed to make it more RFC compliant (but is rather uncritical and therefore probably not necessary to be queued for stable kernels). Signed-off-by: Linus Lüssing --- net/bridge/br_multicas

[Bridge] [PATCHv3 net-next 1/4] bridge: rename struct bridge_mcast_query/querier

2014-06-02 Thread Linus Lüssing
the "struct bridge_mcast_querier" but for storing information about the selected querier (no matter if our own or a foreign querier). Signed-off-by: Linus Lüssing --- net/bridge/br_mdb.c |4 +- net/bridge/br_multicast.c | 169 +++--

[Bridge] [PATCHv3 net-next 3/4] bridge: add export of multicast database adjacent to net_dev

2014-06-02 Thread Linus Lüssing
net_device itself. Adding bridge support to the batman-adv multicast optimization requires batman-adv knowing about the existence of bridged-in multicast listeners to be able to reliably serve them with multicast packets. Signed-off-by: Linus Lüssing --- include/linux/if_bridge.h | 18

[Bridge] [PATCHv3 net-next 2/4] bridge: adhere to querier election mechanism specified by RFCs

2014-06-02 Thread Linus Lüssing
s than the currently selected one. This slight optimization is supposed to make it more RFC compliant (but is rather uncritical and therefore probably not necessary to be queued for stable kernels). Signed-off-by: Linus Lüssing --- net/bridge/br_multicas

[Bridge] [PATCHv3 net-next 4/4] bridge: memorize and export selected IGMP/MLD querier port

2014-06-02 Thread Linus Lüssing
Adding bridge support to the batman-adv multicast optimization requires batman-adv knowing about the existence of bridged-in IGMP/MLD queriers to be able to reliably serve any multicast listener behind this same bridge. Signed-off-by: Linus Lüssing --- include/linux/if_bridge.h |1 + net

[Bridge] [PATCHv3 net-next 0/4] bridge: multicast snooping patches / exports

2014-06-02 Thread Linus Lüssing
Changes in v3: * use EXPORT_SYMBOL_GPL() instead of EXPORT_SYMBOL() Cheers

Re: [Bridge] [PATCHv3 net-next 0/4] bridge: multicast snooping patches / exports

2014-06-05 Thread Linus Lüssing
On Thu, Jun 05, 2014 at 12:43:11AM -0700, David Miller wrote: > From: Linus Lüssing > Date: Mon, 2 Jun 2014 20:42:15 +0200 > > > Changes in v3: > > > > * use EXPORT_SYMBOL_GPL() instead of EXPORT_SYMBOL() > > This is not a sufficient header posting. > >

[Bridge] [PATCHv4 net-next 0/4] bridge: multicast snooping patches / exports

2014-06-07 Thread Linus Lüssing
The first patch is simply a cosmetic patch. So far I (and maybe others too?) have been regularly confusing these two structs, therefore I'd suggest renaming them and therefore making the follow-up patches easier to understand and nicer to fit in. The second patch fixes a minor issue, but probably

[Bridge] [PATCHv4 net-next 3/4] bridge: add export of multicast database adjacent to net_dev

2014-06-07 Thread Linus Lüssing
net_device itself. Adding bridge support to the batman-adv multicast optimization requires batman-adv knowing about the existence of bridged-in multicast listeners to be able to reliably serve them with multicast packets. Signed-off-by: Linus Lüssing --- include/linux/if_bridge.h | 18

[Bridge] [PATCHv4 net-next 1/4] bridge: rename struct bridge_mcast_query/querier

2014-06-07 Thread Linus Lüssing
the "struct bridge_mcast_querier" but for storing information about the selected querier (no matter if our own or a foreign querier). Signed-off-by: Linus Lüssing --- net/bridge/br_mdb.c |4 +- net/bridge/br_multicast.c | 169 +++--

[Bridge] [PATCHv4 net-next 2/4] bridge: adhere to querier election mechanism specified by RFCs

2014-06-07 Thread Linus Lüssing
s than the currently selected one. This slight optimization is supposed to make it more RFC compliant (but is rather uncritical and therefore probably not necessary to be queued for stable kernels). Signed-off-by: Linus Lüssing --- net/bridge/br_multicas

[Bridge] [PATCHv4 net-next 4/4] bridge: memorize and export selected IGMP/MLD querier port

2014-06-07 Thread Linus Lüssing
Adding bridge support to the batman-adv multicast optimization requires batman-adv knowing about the existence of bridged-in IGMP/MLD queriers to be able to reliably serve any multicast listener behind this same bridge. Signed-off-by: Linus Lüssing --- include/linux/if_bridge.h |1 + net

[Bridge] [PATCH 0/2 net-next] bridge: fix bugs introduced by last multicast patchset

2014-06-11 Thread Linus Lüssing
Once my last patchset got applied, I got slapped by an automatic smatch and build bot. Here are two patches fixing the according issues, a potential null pointer dereference and a compile error when compiling without IPv6. [PATCH 1/2] is probably not the ideal solution - the assignment of the grou

[Bridge] [PATCH 1/2] bridge: fix smatch warning / potential null pointer dereference

2014-06-11 Thread Linus Lüssing
pointer dereference. Fixing this by skipping the multicast specific MLD Query parsing again if no multicast group address is available. Introduced by dc4eb53a996a78bfb8ea07b47423ff5a3aadc362 ("bridge: adhere to querier election mechanism specified by RFCs") Reported-by: Dan Carpenter

[Bridge] [PATCH 2/2] bridge: fix compile error when compiling without IPv6 support

2014-06-11 Thread Linus Lüssing
ted IGMP/MLD querier port") Reported-by: kbuild test robot Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c |2 ++ 1 file changed, 2 insertions(+) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 876e5fb..abfa0b65 100644 --- a/net/bridge/br_mul

Re: [Bridge] [PATCHv2 net-next 2/4] bridge: adhere to querier election mechanism specified by RFCs

2014-06-26 Thread Linus Lüssing
Hi Ajith, On Mon, Jun 23, 2014 at 07:58:21AM +0530, Ajith Adapa wrote: > Hi Luessing, > > As per RFC 4541, snooping switches send query with source address as > 0.0.0.0 since port in a L2 switch doesn't have ip-address configured. Hm, I'm not quite sure whether this is true. Do you have a secti

[Bridge] [PATCH net-next 0/4] bridge: multicast snooping exports #2

2014-07-06 Thread Linus Lüssing
Hi, Some people pointed out to me that it might be helpful to add stubs for the newly added multicast exports. That way e.g. batman-adv should continue to be compile and useable without having to have a kernel compiled with bridge code in the future. This is what the first patch is supposed to do.

[Bridge] [PATCH net-next 1/2] bridge: adding stubs for multicast exports

2014-07-06 Thread Linus Lüssing
To make users (e.g. batman-adv soon) load- and runnable even if the bridge was compiled without snooping capabilities - or even if the kernel was compiled without any bridge code at all. Signed-off-by: Linus Lüssing --- include/linux/if_bridge.h | 14 ++ 1 file changed, 14

[Bridge] [PATCH net-next 2/2] bridge: export knowledge about the presence of IGMP/MLD queriers

2014-07-06 Thread Linus Lüssing
future. Signed-off-by: Linus Lüssing --- include/linux/if_bridge.h |6 ++ net/bridge/br_multicast.c | 37 + 2 files changed, 43 insertions(+) diff --git a/include/linux/if_bridge.h b/include/linux/if_bridge.h index e0c575c..808dcb8 100644 --- a

Re: [Bridge] Multicast packets being lost (3.10 stable)

2014-09-10 Thread Linus Lüssing
nt since 3.14) 7) bridge: multicast: enable snooping on general queries only -> 20a599bec (present since 3.14) Let me know what you'd think about that or if there's any trouble applying them to older kernels. Cheers, Linus On Tue, Mar 25, 2014 at 02:06:07PM +0100, Linus Lüssing wrote:

[Bridge] [PATCH] bridge: fix netfilter/NF_BR_LOCAL_OUT for own, locally generated queries

2014-09-21 Thread Linus Lüssing
DST=ff02:::::::0001, \ IPv6 priority=0x0, Next Header=0 Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c |3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 7751c92..9d0

Re: [Bridge] [PATCH] bridge: fix netfilter/NF_BR_LOCAL_OUT for own, locally generated queries

2014-11-25 Thread Linus Lüssing
On Mon, Sep 22, 2014 at 01:32:44AM +0200, Linus Lüssing wrote: > Ebtables on the OUTPUT chain (NF_BR_LOCAL_OUT) would not work as expected > for both locally generated IGMP and MLD queries. The IP header specific > filter options are off by 14 Bytes for netfilter (actual output on > i

Re: [Bridge] [PATCH] bridge: fix netfilter/NF_BR_LOCAL_OUT for own, locally generated queries

2014-11-25 Thread Linus Lüssing
On Mon, Nov 03, 2014 at 06:01:46AM +0800, Herbert Xu wrote: > On Mon, Sep 22, 2014 at 01:32:44AM +0200, Linus Lüssing wrote: > > Signed-off-by: Linus Lüssing > > Acked-by: Herbert Xu Hi David, are there any unanswered questions left? Cheers, Linus

Re: [Bridge] Multicast packets being lost (3.10 stable)

2014-12-10 Thread Linus Lüssing
cally generated queries -> f0b4eeced (since 3.18) If there's anything unclear, just let me know. Thanks :)! Cheers, Linus On Wed, Sep 10, 2014 at 03:33:41PM +0200, Linus Lüssing wrote: > I just got a complaint about bridges, multicast and a > 3.10 kernel again. Seems like nobody had a

Re: [Bridge] bride: IPv6 multicast snooping enhancements

2015-02-10 Thread Linus Lüssing
Hi Vasily, On Tue, Feb 10, 2015 at 11:44:29AM +0300, Vasily Averin wrote: > This patch prevent forwarding of ICMPv6 in bridges, > so containers/VMs with virtual eth adapters connected in local bridge cannot > ping each other via ipv6 (but can do it via ipv4) If a host wants to receive packets, t

Re: [Bridge] bride: IPv6 multicast snooping enhancements

2015-02-12 Thread Linus Lüssing
On Tue, Feb 10, 2015 at 04:59:09PM +0300, Vasily Averin wrote: > I'm trying to fix ICMPv6 processing broken in OpenVZ after rebase to last > RHEL6u6 kernel. > After some unclear manipulation bridge begins to forward icmp6 NS (fe02::1) > into wrong port, > and at present I do not found the reason

[Bridge] [PATCH RFCv2 0/4] batman-adv: Unicasting multicast reports to querier-node only

2015-04-01 Thread Linus Lüssing
The last round of multicast patches send to the batman-adv mailinglist to add support for the multicast optimizations in bridged scenarios, too, unfortunately had one major conceptual flaw: It could lead to packet loss. It's not sufficient to have the unicasting of reports implemented on bridge-nod

[Bridge] [PATCH RFCv2 1/4] bridge: multicast: call skb_checksum_{simple_, }validate

2015-04-01 Thread Linus Lüssing
Let's use these new, neat helpers. Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c | 28 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index c465876..3c630c7 100644 --- a/net/b

[Bridge] [PATCH RFCv2 2/4] net: Export IGMP/MLD message validation code

2015-04-01 Thread Linus Lüssing
With this patch, the IGMP and MLD message validation functions are moved from the bridge code to the IPv4/IPv6 multicast files. Some small refactoring was done to enhance readibility and to iron out some differences in behaviour between the IGMP and MLD parsing code (e.g. the skb-cloning of MLD mes

[Bridge] [PATCH RFCv2 3/4] batman-adv: Forward IGMP/MLD reports to selected querier (only)

2015-04-01 Thread Linus Lüssing
With this patch IGMP or MLD reports are only forwarded to the selected IGMP/MLD querier as RFC4541 suggests. This is necessary to avoid multicast packet loss in bridged scenarios later: An IGMPv2/MLDv1 querier does not actively join the multicast group the reports are sent to. Because of this, thi

[Bridge] [PATCH RFCv2 4/4] batman-adv: Increase BATADV_TVLV_MCAST version number to 2

2015-04-01 Thread Linus Lüssing
The multicast optimizations bridge integration will require the just implemented IGMP/MLD report handling later. Therefore bumping the version number. --- net/batman-adv/multicast.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/net/batman-adv/multicast.c b/net/ba

[Bridge] [PATCH RFCv3 0/4] batman-adv: Unicasting multicast reports to querier-node only

2015-04-07 Thread Linus Lüssing
The last round of multicast patches send to the batman-adv mailinglist to add support for the multicast optimizations in bridged scenarios, too, unfortunately had one major conceptual flaw: It could lead to packet loss. It's not sufficient to have the unicasting of reports implemented on bridge-nod

[Bridge] [PATCH RFCv3 1/4] bridge: multicast: call skb_checksum_{simple_, }validate

2015-04-07 Thread Linus Lüssing
Let's use these new, neat helpers. Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c | 28 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index c465876..3c630c7 100644 --- a/net/b

[Bridge] [PATCH RFCv3 2/4] net: Export IGMP/MLD message validation code

2015-04-07 Thread Linus Lüssing
With this patch, the IGMP and MLD message validation functions are moved from the bridge code to the IPv4/IPv6 multicast files. Some small refactoring was done to enhance readibility and to iron out some differences in behaviour between the IGMP and MLD parsing code (e.g. the skb-cloning of MLD mes

[Bridge] [PATCH RFCv3 4/4] batman-adv: Increase BATADV_TVLV_MCAST version number to 2

2015-04-07 Thread Linus Lüssing
The multicast optimizations bridge integration will require the just implemented IGMP/MLD report handling later. Therefore bumping the version number. --- net/batman-adv/multicast.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/net/batman-adv/multicast.c b/net/ba

[Bridge] [PATCH RFCv3 3/4] batman-adv: Forward IGMP/MLD reports to selected querier (only)

2015-04-07 Thread Linus Lüssing
With this patch IGMP or MLD reports are only forwarded to the selected IGMP/MLD querier as RFC4541 suggests. This is necessary to avoid multicast packet loss in bridged scenarios later: An IGMPv2/MLDv1 querier does not actively join the multicast group the reports are sent to. Because of this, thi

Re: [Bridge] [B.A.T.M.A.N.] [PATCH 2/2] net: Export IGMP/MLD message validation code

2015-04-10 Thread Linus Lüssing
On Fri, Apr 10, 2015 at 07:46:39PM +0200, Linus Lüssing wrote: > diff --git a/net/ipv6/mcast_snoop.c b/net/ipv6/mcast_snoop.c > new file mode 100644 > index 000..95b34c0 > --- /dev/null > +++ b/net/ipv6/mcast_snoop.c > @@ -0,0 +1,198 @@ > +/* Copyright (C) 2015: Linu

[Bridge] [PATCHv2 net-next 2/2] net: Export IGMP/MLD message validation code

2015-04-13 Thread Linus Lüssing
messages is now only done if necessary, just like the IGMP part always did). Finally, these IGMP and MLD message validation functions are exported so that not only the bridge can use it but batman-adv later, too. Signed-off-by: Linus Lüssing --- include/linux/igmp.h |1 + include/linux

[Bridge] [PATCHv2 net-next 1/2] bridge: multicast: call skb_checksum_{simple_, }validate

2015-04-13 Thread Linus Lüssing
Let's use these new, neat helpers. Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c | 28 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 4b6722f..b52f4cb 100644 --- a/net/b

[Bridge] [PATCHv2 net-next 0/2] Exporting IGMP/MLD checking from bridge code

2015-04-13 Thread Linus Lüssing
The multicast optimizations in batman-adv are yet only usable and enabled in non-bridged scenarios. To be able to support bridged setups batman-adv needs to be able to detect IGMP/MLD queriers and reports on mesh nodes without bridges, too. See the following link for details: http://www.open-mesh.

[Bridge] [PATCHv3 net-next 0/2] Exporting IGMP/MLD checking from bridge code

2015-05-02 Thread Linus Lüssing
The multicast optimizations in batman-adv are yet only usable and enabled in non-bridged scenarios. To be able to support bridged setups batman-adv needs to be able to detect IGMP/MLD queriers and reports on mesh nodes without bridges, too. See the following link for details: http://www.open-mesh.

[Bridge] [PATCHv3 net-next 1/2] bridge: multicast: call skb_checksum_{simple_, }validate

2015-05-02 Thread Linus Lüssing
Let's use these new, neat helpers. Signed-off-by: Linus Lüssing --- net/bridge/br_multicast.c | 28 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 4b6722f..b52f4cb 100644 --- a/net/b

  1   2   3   >