netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johannes Berg <johannes@sipsolutions.net>
To: "Linus Lüssing" <linus.luessing@c0d3.blue>,
	"M. Braun" <michael-dev@fami-braun.de>
Cc: netdev@vger.kernel.org, bridge@lists.linux-foundation.org,
	linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
	"David S . Miller" <davem@davemloft.net>,
	Felix Fietkau <nbd@nbd.name>
Subject: Re: [PATCH net-next] bridge: multicast to unicast
Date: Mon, 09 Jan 2017 09:08:56 +0100	[thread overview]
Message-ID: <1483949336.17582.3.camel@sipsolutions.net> (raw)
In-Reply-To: <20170107145516.GE3134@otheros>

On Sat, 2017-01-07 at 15:55 +0100, Linus Lüssing wrote:
> On Sat, Jan 07, 2017 at 11:32:57AM +0100, M. Braun wrote:
> > Am 06.01.2017 um 14:54 schrieb Johannes Berg:
> > > 
> > > > The bridge layer can use IGMP snooping to ensure that the
> > > > multicast
> > > > stream is only transmitted to clients that are actually a
> > > > member of
> > > > the group. Can the mac80211 feature do the same?
> > > 
> > > No, it'll convert the packet for all clients that are behind that
> > > netdev. But that's an argument for dropping the mac80211 feature,
> > > which
> > > hasn't been merged upstream yet, no?
> > 
> > But there is multicast/broadcast traffic like e.g. ARP and some IP
> > multicast groups that are not covered by IGMP snooping. The
> > mac80211
> > patch converts this to unicast as well, which the bridge cannot do.
> > 
> > That way, these features both complement and overlap each other.
> 
> Right, I'd agree with that.

Ok.

> I didn't write it explicitly in the commit message, but yes, the
> like anything concerning bridge multicast snooping, bridge
> multicast-to-unicast can only affect packets as noted in
> RFC4541 ("Considerations for Internet Group Management Protocol (IGMP)
> and Multicast Listener Discovery (MLD) Snooping Switches"), too.
> 
> So it is only working for IPv4 multicast, excluding link-local
> (224.0.0.0/24), and IPv6 multicast, excluding all-host-multicast
> (ff02::1).
> 
> And does not concern ARP in any way.
> 
> 
> The nice complementary effect is, that the bridge can first sieve
> out those IP packets thanks to IGMP/MLD snooping knowledge and for
> anything else, like ARP, 224.0.0.x or ff02::1, the mac80211
> multicast-to-unicast could do its job.
> 
> 
> For APs with a small number of STAs (like your private home AP),
> you might want to enable both bridge multicast-to-unicast and
> mac80211 multicast-to-unicast for this complementary effect. While
> on public APs with 30 to 50 STAs with varying distances and bitrates,
> you might only one to enable the bridge one, because sending an ARP
> packet 50x might actually reduce performance and airtime
> significantly.

Does it make sense to implement the two in separate layers though?

Clearly, this part needs to be implemented in the bridge layer due to
the snooping knowledge, but the code is very similar to what mac80211
has now.

It would probably not make sense to combine the two options into one,
but it seems relatively simple for bridge to also implement the one
mac80211 tentatively has now, with multiple benefits:

 * single place for configuration, leading to less possible confusion

 * single implementation for all wireless devices, including ones with
   Full-MAC firmware that don't use mac80211

 * code sharing for the duplication, although admittedly not so much

Thoughts?

johannes

  reply	other threads:[~2017-01-09  8:08 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-02 19:32 [PATCH net-next] bridge: multicast to unicast Linus Lüssing
2017-01-03 11:58 ` Nikolay Aleksandrov via Bridge
2017-01-03 13:15 ` Felix Fietkau
2017-01-06 12:47 ` Johannes Berg
2017-01-06 13:52   ` Felix Fietkau
2017-01-06 13:54     ` Johannes Berg
2017-01-06 13:54       ` Felix Fietkau
2017-01-07 10:32       ` M. Braun
2017-01-07 14:55         ` Linus Lüssing
2017-01-09  8:08           ` Johannes Berg [this message]
2017-01-09 11:44             ` M. Braun
2017-01-09 12:15               ` Johannes Berg
2017-01-09 15:25                 ` michael-dev
2017-01-09 15:47                   ` Johannes Berg
2017-01-09 21:23               ` Linus Lüssing
2017-01-09 21:30                 ` Stephen Hemminger
2017-01-10  4:18                   ` Linus Lüssing
2017-01-10 10:56                     ` Johannes Berg
2017-01-10 17:17                       ` Dave Taht
2017-01-10 17:23                         ` Felix Fietkau
2017-01-10 18:24                           ` Dave Taht
2017-01-10 21:27                       ` Felix Fietkau
2017-01-11 11:26                         ` IgorMitsyanko
2017-01-11 11:30                           ` Felix Fietkau
2017-01-11 12:15                             ` IgorMitsyanko
2017-01-11 12:21                               ` Felix Fietkau
2017-01-07 15:15   ` Linus Lüssing
2017-01-09  8:05     ` Johannes Berg
2017-01-09 12:42       ` Linus Lüssing
2017-01-09 12:44         ` Johannes Berg
2017-01-09 23:12           ` Linus Lüssing
2017-01-11  9:17             ` Johannes Berg
2017-01-07  3:13 ` Stephen Hemminger
2017-01-07 15:06   ` Linus Lüssing
2017-01-09  8:36   ` Jean-Pierre Tosoni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1483949336.17582.3.camel@sipsolutions.net \
    --to=johannes@sipsolutions.net \
    --cc=bridge@lists.linux-foundation.org \
    --cc=davem@davemloft.net \
    --cc=linus.luessing@c0d3.blue \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=michael-dev@fami-braun.de \
    --cc=nbd@nbd.name \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).