public inbox for b.a.t.m.a.n@lists.open-mesh.org
 help / color / mirror / Atom feed
From: Simon Wunderlich <sw@simonwunderlich.de>
To: b.a.t.m.a.n@lists.open-mesh.org
Subject: Re: [B.A.T.M.A.N.] [PATCH] batman-adv: Add multicast optimization support for bridged setups
Date: Sat, 21 Jun 2014 14:09:51 +0200	[thread overview]
Message-ID: <201406211409.51239.sw@simonwunderlich.de> (raw)
In-Reply-To: <20140620155712.GU29033@Linus-Debian>

> On Wed, Jun 18, 2014 at 12:53:20PM +0800, Marek Lindner wrote:
> > Thanks for the clarifications but that does not address my question. To
> > be more precise: In batadv_mcast_mla_update() your code is calling
> > batadv_mcast_mla_softif_get() which queries the bridge interface (if
> > bridged). A couple of lines later batadv_mcast_mla_bridge_get() is
> > called (if bridged). It looks to me the code queries the bridge twice ?
> > 
> > Then, I am comparing the kernel doc to get the difference but I see none:
> >  * batadv_mcast_mla_softif_get - get softif multicast listeners
> >  * @dev: the device to collect multicast addresses from
> >  * @mcast_list: a list to put found addresses into
> >  *
> >  * Collect multicast addresses of the local multicast listeners
> >  * on the given soft interface, dev, in the given mcast_list.
> >  *
> >  * If there is a bridge interface on top of dev, collect from that one
> >  * instead.
> >  
> >  ===============================================================
> >  
> >  * batadv_mcast_mla_bridge_get - get bridged-in multicast listeners
> >  * @dev: a bridge slave whose bridge to collect multicast addresses from
> >  * @mcast_list: a list to put found addresses into
> >  *
> >  * Collects multicast addresses of the bridged-in multicast listeners
> >  * from the bridge on top of the given soft interface, dev, in the
> >  * given mcast_list.
> > 
> > What is the difference between these calls and why doesn't the code
> > explain that difference ?
> 
> Okay, another try, now with pictures :) :
> 
> 
> So far we are doing this:
> 
> https://metameute.de/~tux/batman-adv/multicast-listener-fetching-no-bridge.
> png
> 
> So we are able to fetch local listeners (with "local" I mean
> listeners which are present on the same kernel) from bat0
> via batadv_mcast_mla_softif_get(). And are announcing them in the
> mesh cloud so that multicast senders know which nodes they need to
> send their data to.
> 
> This box with the local listener could be an embedded router running
> batman-adv receiving music via multicast and playing it directly over
> its USB sound card.
> 
> ---
> 
> With this patch batadv_mla_bridge_get() is being added:
> 
> https://metameute.de/~tux/batman-adv/multicast-listener-fetching-with-bridg
> e.png
> 
> Now we are able to detect bridged-in listeners (with "bridged-in" I
> mean listeners behind the bridge of a batman-adv node, some
> alien device). For instance this could be a non-Linux laptop
> wanting to receive the same or a different multicast music stream.
> 
> Also note, that in the bridge-case batadv_mcast_mla_softif_get()
> gets its local listener information from a different device now,
> marked in orange: Just like you wouldn't use IP addresses+routes
> on bat0 anymore but br0 instead, also the local multicast
> listeners will be registering to br0 instead of bat0 now. That's
> where the "bridge ? bridge : dev" code changes in this patch for
> batadv_mcast_mla_softif_get() come from.
> 
> ---
> 
> tl;dr: batadv_mla_softif_get() is for multicast listeners *on* a
> batman-adv node, batadv_mla_bridge_get() for multicast listeners
> *behind* the bridge of a batman-adv node.
> 
> 
> If the pictures are somehow helpful and if others feel this is
> worth a new wiki page in the batadv-multicast-docs, I can create
> one. (Also, I hope especially the second one isn't too overloaded,
> if someone has ideas how to simplify it, I'd be glad to hear about
> it.)

Thanks for the pictures! I think it would be great to have them in the wiki in 
any case, so please add them (maybe as a subpage for now). :)

I'm still preparing to get this patch tested, I can't test it in my usual 
kvm/OpenWRT environment as it depends on the latest kernel ...  but I'm 
preparing that now. :)

Cheers,
	Simon

      parent reply	other threads:[~2014-06-21 12:09 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-12  0:00 [B.A.T.M.A.N.] [PATCH] batman-adv: Add multicast optimization support for bridged setups Linus Lüssing
2014-06-17 14:50 ` Marek Lindner
2014-06-17 22:24   ` Linus Lüssing
2014-06-18  4:53     ` Marek Lindner
2014-06-20 15:57       ` Linus Lüssing
2014-06-21  6:57         ` Marek Lindner
2014-06-21 12:09         ` Simon Wunderlich [this message]

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=201406211409.51239.sw@simonwunderlich.de \
    --to=sw@simonwunderlich.de \
    --cc=b.a.t.m.a.n@lists.open-mesh.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