From: "Linus Lüssing" <linus.luessing@c0d3.blue>
To: b.a.t.m.a.n@lists.open-mesh.org
Subject: [PATCH v3 0/5] Implementation of a Stateless Multicast Packet Type
Date: Mon, 26 Dec 2022 21:42:32 +0100 [thread overview]
Message-ID: <20221226204237.10403-1-linus.luessing@c0d3.blue> (raw)
Hi,
The following patchset implements a stateless, TVLV capable batman-adv
multicast packet type.
The new batman-adv multicast packet type allows to contain several
originator destination MAC addresses within a TVLV. Routers on the way will
potentially split the batman-adv multicast packet and adjust its tracker
TVLV contents.
Routing decisions are still based on the selected BATMAN IV or BATMAN V
routing algorithm. So this new batman-adv multicast packet type retains
the same loop-free properties.
The purpose of this new packet type is to allow to forward an IP
multicast packet with less transmissions / overhead than the
multicast-via-multiple-unicasts approach. Or to reach a lot more
destinations (currently up to 196, depending on the payload size, see
Wiki documentation for details) than with the default multicast fanout
for the via-unicasts approach.
This will allow using applications like mDNS again in several Freifunk
communities. And with less transmissions will also make more bulky
multicast applications, like media streaming (to an assessable amount of
receivers) a lot more feasible.
This approach is way simpler than the original multicast (tracker) packet
approach we envisioned years ago. As it involves no maintenance of an
extra, state based multicast routing table. However the TVLV capability
should allow to extend things later, to split control and data plane a bit
more for instance, to further increase the number of destinations, to
further reduce overhead.
A compact overview can be found in the Wiki here, including limitations:
https://www.open-mesh.org/projects/batman-adv/wiki/Multicast-Packet-Type
Regards, Linus
___
Changelog v3:
* PATCH 1/5:
* remove now obsolete includes
* PATCH 2/5:
* fix batadv_tvlv_handler_register() in network-coding.c
* add missing include for linux/skbuff.h
* move variable declarations out of the switch case
in batadv_tvlv_call_handler()
* PATCH 3/5:
* remove unnecessary include of multicast.h in routing.c
* add a few missing includes to multicast_forw.c
(linux/byteorder/generic.h, linux/errno.h, linux/gfp.h, linux/stddef.h
uapi/linux/batadv_packet.h, multicast.h)
* PATCH 4/5:
* add missing rcu_read_unlock() in error case before returning in
batadv_mcast_forw_push_dests_list()
* remove unnecessary include of soft-interface.h in multicast_forw.c
* add a few missing includes to multicast_forw.c
(linux/bug.h, linux/build_bug.h, linux/limits.h, linux/rculist.h,
linux/rcupdate.h, linux/string.h)
* make batadv_mcast_forw_mode_by_count() static
* fix return types in the declaration of
batadv_mcast_forw_packet_hdrlen() and batadv_mcast_forw_push()
in multicast.h
* fix typo in commit message: "that the are capable of"
-> "that the*y* are capable of"
* PATCH 5/5:
* make batadv_mcast_forw_shrink_pack_dests() adhere to 80 characters
per line for consistency
* add a "continue" statement after the jump label in
batadv_mcast_forw_shrink_pack_dests() to silence the sparse error
"error: label at end of compound statement"
Changelog v2:
* Add "[PATCH v2 0/5]" prefix to title of cover letter, so that
Patchwork can hopefully find it - no other changes
next reply other threads:[~2022-12-26 20:42 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-26 20:42 Linus Lüssing [this message]
2022-12-26 20:42 ` [PATCH v3 1/5] batman-adv: mcast: remove now redundant single ucast forwarding Linus Lüssing
2022-12-26 20:42 ` [PATCH v3 2/5] batman-adv: tvlv: prepare for tvlv enabled multicast packet type Linus Lüssing
2022-12-26 20:42 ` [PATCH v3 3/5] batman-adv: mcast: implement multicast packet reception and forwarding Linus Lüssing
2022-12-27 9:07 ` Sven Eckelmann
2022-12-27 11:58 ` Linus Lüssing
2022-12-27 12:47 ` Sven Eckelmann
2022-12-26 20:42 ` [PATCH v3 4/5] batman-adv: mcast: implement multicast packet generation Linus Lüssing
2022-12-27 9:34 ` Sven Eckelmann
2022-12-26 20:42 ` [PATCH v3 5/5] batman-adv: mcast: shrink tracker packet after scrubbing Linus Lüssing
2022-12-27 10:46 ` Sven Eckelmann
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=20221226204237.10403-1-linus.luessing@c0d3.blue \
--to=linus.luessing@c0d3.blue \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.