linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v2 00/11] net: bridge: split IPv4/v6 mc router state and export for batman-adv
@ 2021-05-09 19:44 Linus Lüssing
  2021-05-09 19:44 ` [net-next v2 01/11] net: bridge: mcast: rename multicast router lists and timers Linus Lüssing
                   ` (10 more replies)
  0 siblings, 11 replies; 24+ messages in thread
From: Linus Lüssing @ 2021-05-09 19:44 UTC (permalink / raw)
  To: netdev
  Cc: Roopa Prabhu, Nikolay Aleksandrov, Jakub Kicinski,
	David S . Miller, bridge, b.a.t.m.a.n, linux-kernel

Hi,

The following patches are splitting the so far combined multicast router
state in the Linux bridge into two ones, one for IPv4 and one for IPv6,
for a more fine-grained detection of multicast routers. This avoids
sending IPv4 multicast packets to an IPv6-only multicast router and 
avoids sending IPv6 multicast packets to an IPv4-only multicast router.
This also allows batman-adv to make use of the now split information in
the final patch.

The first eight patches prepare the bridge code to avoid duplicate
code or IPv6-#ifdef clutter for the multicast router state split. And 
contain no functional changes yet.

The ninth patch then implements the IPv4+IPv6 multicast router state
split.

Patch number ten adds IPv4+IPv6 specific timers to the mdb netlink
router port dump, so that the timers validity can be checked individually
from userspace.

The final, eleventh patch exports this now per protocol family multicast
router state so that batman-adv can then later make full use of the 
Multicast Router Discovery (MRD) support in the Linux bridge. The 
batman-adv protocol format currently expects separate multicast router
states for IPv4 and IPv6, therefore it depends on the first patch.
batman-adv will then make use of this newly exported functions like
this[0].

Regards, Linus

[0]: https://git.open-mesh.org/batman-adv.git/shortlog/refs/heads/linus/multicast-routeable-mrd
     -> https://git.open-mesh.org/batman-adv.git/commit/d4bed3a92427445708baeb1f2d1841c5fb816fd4

Changelog v2: 

* split into multiple patches as suggested by Nikolay
* added helper functions to br_multicast_flood(), avoiding
  IPv6 #ifdef clutter
* fixed reverse xmas tree ordering in br_rports_fill_info() and 
  added helper functions to avoid IPv6 #ifdef clutter
* Added a common br_multicast_add_router() and a helper function
  to retrieve the correct slot to avoid duplicate code for an
  ip4 and ip6 variant
* replaced the "1" and "2" constants in br_multicast_is_router()
  with the appropriate enums
* added br_{ip4,ip6}_multicast_rport_del() wrappers to reduce
  IPv6 #ifdef clutter
* added return values to br_*multicast_rport_del() to only notify
  if the port was actually removed and did not race with a readdition
  somewhere else
* added empty, void br_ip6_multicast_mark_router() if compiled
  without IPv6, to reduce IPv6 #ifdef clutter



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

end of thread, other threads:[~2021-05-11 11:29 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-09 19:44 [PATCH net-next v2 00/11] net: bridge: split IPv4/v6 mc router state and export for batman-adv Linus Lüssing
2021-05-09 19:44 ` [net-next v2 01/11] net: bridge: mcast: rename multicast router lists and timers Linus Lüssing
2021-05-11  9:12   ` Nikolay Aleksandrov
2021-05-09 19:45 ` [net-next v2 02/11] net: bridge: mcast: add wrappers for router node retrieval Linus Lüssing
2021-05-11  9:12   ` Nikolay Aleksandrov
2021-05-09 19:45 ` [net-next v2 03/11] net: bridge: mcast: prepare mdb netlink for mcast router split Linus Lüssing
2021-05-11  9:13   ` Nikolay Aleksandrov
2021-05-09 19:45 ` [net-next v2 04/11] net: bridge: mcast: prepare query reception " Linus Lüssing
2021-05-11  9:13   ` Nikolay Aleksandrov
2021-05-09 19:45 ` [net-next v2 05/11] net: bridge: mcast: prepare is-router function " Linus Lüssing
2021-05-11  9:16   ` Nikolay Aleksandrov
2021-05-09 19:45 ` [net-next v2 06/11] net: bridge: mcast: prepare expiry functions " Linus Lüssing
2021-05-11  9:16   ` Nikolay Aleksandrov
2021-05-09 19:45 ` [net-next v2 07/11] net: bridge: mcast: prepare add-router function " Linus Lüssing
2021-05-09 19:45 ` [net-next v2 08/11] net: bridge: mcast: split router port del+notify " Linus Lüssing
2021-05-11  9:19   ` Nikolay Aleksandrov
2021-05-09 19:45 ` [net-next v2 09/11] net: bridge: mcast: split multicast router state for IPv4 and IPv6 Linus Lüssing
2021-05-11  9:29   ` Nikolay Aleksandrov
2021-05-11  9:33     ` Nikolay Aleksandrov
2021-05-11 11:28     ` Linus Lüssing
2021-05-09 19:45 ` [net-next v2 10/11] net: bridge: mcast: add ip4+ip6 mcast router timers to mdb netlink Linus Lüssing
2021-05-11  9:30   ` Nikolay Aleksandrov
2021-05-09 19:45 ` [net-next v2 11/11] net: bridge: mcast: export multicast router presence adjacent to a port Linus Lüssing
2021-05-11  9:23   ` Nikolay Aleksandrov

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