linux/net/batman-adv
Linus Lüssing 7a68cc16b8 batman-adv: mcast: add MRD + routable IPv4 multicast with bridges support
This adds support for routable IPv4 multicast addresses
(224.0.0.0/4, excluding 224.0.0.0/24) in bridged setups.

This utilizes the Multicast Router Discovery (MRD, RFC4286) support
in the Linux bridge. batman-adv will now query the Linux bridge for
IPv4 multicast routers, which the bridge has previously learned about
via MRD.

This allows us to then safely send routable IPv4 multicast packets in
bridged setups to multicast listeners and multicast routers only. Before
we had to flood such packets to avoid potential multicast packet loss to
IPv4 multicast routers, which we were not able to detect before.

With the bridge MRD integration, we are now also able to perform more
fine-grained detection of IPv6 multicast routers in bridged setups:
Before we were "guessing" IPv6 multicast routers by looking up multicast
listeners for the link-local All Routers multicast address (ff02::2),
which every IPv6 multicast router is listening to. However this would
also include more nodes than necessary: For instance nodes which are
just a router for unicast, but not multicast would be included, too.

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>
2021-05-30 13:38:27 +02:00
..
bat_algo.c batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
bat_algo.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
bat_iv_ogm.c batman-adv: Always send iface index+name in genlmsg 2021-05-17 12:00:44 +02:00
bat_iv_ogm.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
bat_v_elp.c batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
bat_v_elp.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
bat_v_ogm.c batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
bat_v_ogm.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
bat_v.c batman-adv: Always send iface index+name in genlmsg 2021-05-17 12:00:44 +02:00
bat_v.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
bitarray.c batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
bitarray.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
bridge_loop_avoidance.c batman-adv: Drop unused header preempt.h 2021-03-23 21:52:28 +01:00
bridge_loop_avoidance.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
distributed-arp-table.c batman-adv: Fix names for kernel-doc blocks 2021-02-06 09:22:45 +01:00
distributed-arp-table.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
fragmentation.c batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
fragmentation.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
gateway_client.c batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
gateway_client.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
gateway_common.c batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
gateway_common.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
hard-interface.c batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
hard-interface.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
hash.c batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
hash.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
Kconfig This feature/cleanup patchset is an updated version of the pull request 2021-02-08 11:32:40 -08:00
log.c batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
log.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
main.c module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
main.h batman-adv: bcast: queue per interface, if needed 2021-05-17 12:00:44 +02:00
Makefile batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
multicast.c batman-adv: mcast: add MRD + routable IPv4 multicast with bridges support 2021-05-30 13:38:27 +02:00
multicast.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
netlink.c batman-adv: Always send iface index+name in genlmsg 2021-05-17 12:00:44 +02:00
netlink.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
network-coding.c batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
network-coding.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
originator.c batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
originator.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
routing.c batman-adv: bcast: queue per interface, if needed 2021-05-17 12:00:44 +02:00
routing.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
send.c batman-adv: bcast: avoid skb-copy for (re)queued broadcasts 2021-05-17 12:00:44 +02:00
send.h batman-adv: bcast: queue per interface, if needed 2021-05-17 12:00:44 +02:00
soft-interface.c batman-adv: bcast: queue per interface, if needed 2021-05-17 12:00:44 +02:00
soft-interface.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
tp_meter.c batman-adv: Fix names for kernel-doc blocks 2021-02-06 09:22:45 +01:00
tp_meter.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
trace.c batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
trace.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
translation-table.c batman-adv: initialize "struct batadv_tvlv_tt_vlan_data"->reserved field 2021-04-05 15:06:03 -07:00
translation-table.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
tvlv.c batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
tvlv.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
types.h batman-adv: Fix order of kernel doc in batadv_priv 2021-03-23 21:49:14 +01:00