b.a.t.m.a.n.lists.open-mesh.org archive mirror
 help / color / mirror / Atom feed
* [B.A.T.M.A.N.] [PATCH 0/1] batman-adv: Always flood IGMP/MLD reports
@ 2015-06-21 13:36 Linus Lüssing
  2015-06-21 13:36 ` [B.A.T.M.A.N.] [PATCH 1/1] " Linus Lüssing
  2015-06-22 17:55 ` [B.A.T.M.A.N.] [PATCH 0/1] " Linus Lüssing
  0 siblings, 2 replies; 9+ messages in thread
From: Linus Lüssing @ 2015-06-21 13:36 UTC (permalink / raw)
  To: b.a.t.m.a.n

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-nodes only. Nodes without bridges need to either unicast them, too
or as done with this patch flood them uncoditionally.

The issue is described in detail here:

https://www.open-mesh.org/projects/batman-adv/wiki/Multicast-optimizations-listener-reports


This patch substitutes and greatly simplifies the following patchset:
"batman-adv: Unicasting multicast reports to querier-node only"

The reason for doing this is, that I think the disadvantages of this
simpler approach noted in the wikipage above (e.g. report overhead in
large mesh networks) can be better compensated by segmenting the
IGMP/MLD domain via ebtables (drop all queries and reports coming out
of bat0 or before entering bat0) and the "multicast_router" bridge
port flag on bat0 (flood all multicast to this bat0 port, let
batman-adv deal with the optimizations from here on). Segmenting the
IGMP/MLD domain also has the nice advantage of being able to run a
querier on every mesh node which therefore is a way more decentral
approach.

Cheers, Linus

-----

Changelog

v1:
 * Removed query snooping and state
 * Squashed all three patches into one
 * Renamed "batadv_mcast_tvlv_ogm_handler_v1()" to *_v2()
 * Added explicit icmpv6.h include
 * Rebased on top of master

Old changelog of
"batman-adv: Unicasting multicast reports to querier-node only"
v6:
 * compat: copied copyright headers from original upstream c files
 * compat: unified ordering in compat c files:
   -> copyright header, then includes, then kernel specific functions
v5:
 * Removed RFC tag: Needed exports got merged to net-next and are going to
   be available with Linux 4.2
 * Redid compat solution - now fully backwards compatible down to 2.6.33
v4:
 * excluded bridge part from this patchset, they should
   hopefully be added to net-next soon
 * Added a compat solution (PATCH 3/3)
 * Removed Kconfig-depends as by David's suggestion the needed parsing
   functions for MLD are going to be forced built-ins even if IPv6 is
   going to be built as a module
 * Removed unused variable 'int ret' in batadv_mcast_is_report_ipv6()
 * Adjusted to new folder structure
v3:
 * Adding Kconfig-depends and #if's
   (so basically adding similar dependancy constraints as the bridge code
    has, except that there are no depends if batman-adv gets compiled without
    multicast optimizations)
   -> the case of IPv6=M and batman-adv=y is still impossible if multicast
      optimizations are enabled; but I don't see the practical demand for that
      either - people who use IPv6 as a module will probably also want to
      use batman-adv as a module
v2:
 * various bugfixes (now runtime tested, too - should(tm) work)
 * added netdev+bridge mailinglists

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-06-29  4:42 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-21 13:36 [B.A.T.M.A.N.] [PATCH 0/1] batman-adv: Always flood IGMP/MLD reports Linus Lüssing
2015-06-21 13:36 ` [B.A.T.M.A.N.] [PATCH 1/1] " Linus Lüssing
2015-06-26 12:43   ` Simon Wunderlich
2015-06-28  1:37   ` Marek Lindner
2015-06-28  3:59     ` Linus Lüssing
2015-06-28 13:21       ` Marek Lindner
2015-06-29  2:52         ` Linus Lüssing
2015-06-29  4:42           ` Linus Lüssing
2015-06-22 17:55 ` [B.A.T.M.A.N.] [PATCH 0/1] " Linus Lüssing

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