linux/net/batman-adv
Linus Lüssing 32e727449c batman-adv: Add multicast-to-unicast support for multiple targets
With this patch multicast packets with a limited number of destinations
(current default: 16) will be split and transmitted by the originator as
individual unicast transmissions.

Wifi broadcasts with their low bitrate are still a costly undertaking.
In a mesh network this cost multiplies with the overall size of the mesh
network. Therefore using multiple unicast transmissions instead of
broadcast flooding is almost always less burdensome for the mesh
network.

The maximum amount of unicast packets can be configured via the newly
introduced multicast_fanout parameter. If this limit is exceeded
distribution will fall back to classic broadcast flooding.

The multicast-to-unicast conversion is performed on the initial
multicast sender node and counts on a final destination node, mesh-wide
basis (and not next hop, neighbor node basis).

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
2019-03-25 10:01:13 +01:00
..
bat_algo.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_algo.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_iv_ogm.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_iv_ogm.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_v_elp.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_v_elp.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_v_ogm.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_v_ogm.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_v.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_v.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bitarray.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bitarray.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bridge_loop_avoidance.c batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
bridge_loop_avoidance.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
debugfs.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
debugfs.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
distributed-arp-table.c batman-adv: allow updating DAT entry timeouts on incoming ARP Replies 2019-03-25 10:01:13 +01:00
distributed-arp-table.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
fragmentation.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
fragmentation.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
gateway_client.c batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
gateway_client.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
gateway_common.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
gateway_common.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
hard-interface.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
hard-interface.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
hash.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
hash.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
icmp_socket.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
icmp_socket.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
Kconfig batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
log.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
log.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
main.c batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
main.h batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
Makefile batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
multicast.c batman-adv: Add multicast-to-unicast support for multiple targets 2019-03-25 10:01:13 +01:00
multicast.h batman-adv: Add multicast-to-unicast support for multiple targets 2019-03-25 10:01:13 +01:00
netlink.c batman-adv: Add multicast-to-unicast support for multiple targets 2019-03-25 10:01:13 +01:00
netlink.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
network-coding.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
network-coding.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
originator.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
originator.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
routing.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
routing.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
send.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
send.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
soft-interface.c batman-adv: Add multicast-to-unicast support for multiple targets 2019-03-25 10:01:13 +01:00
soft-interface.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
sysfs.c batman-adv: Warn about sysfs file access 2019-03-25 10:01:12 +01:00
sysfs.h batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
tp_meter.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
tp_meter.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
trace.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
trace.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
translation-table.c batman-adv: Add multicast-to-unicast support for multiple targets 2019-03-25 10:01:13 +01:00
translation-table.h batman-adv: Add multicast-to-unicast support for multiple targets 2019-03-25 10:01:13 +01:00
tvlv.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
tvlv.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
types.h batman-adv: Add multicast-to-unicast support for multiple targets 2019-03-25 10:01:13 +01:00