2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-11 23:23:52 +08:00
linux-next/net/batman-adv
Linus Lüssing 687937ab34 batman-adv: Add multicast optimization support for bridged setups
With this patch we are finally able to support multicast optimizations
in bridged setups, too. So far, if a bridge was added on top of a
soft-interface (e.g. bat0) the batman-adv multicast optimizations
needed to be disabled to avoid packetloss.

Current Linux bridge implementations and API can now provide us
with the so far missing information about interested but "remote"
multicast receivers behind bridge ports.

The Linux bridge performs the detection of remote participants
interested in multicast packets with its own and mature so
called IGMP and MLD snooping code and stores that in its
database. With the new API provided by the bridge batman-adv can
now simply hook into this database.

We then reliably announce the gathered multicast listeners to
other nodes through the batman-adv translation table.

Additionally, the Linux bridge provides us with the information about
whether an IGMP/MLD querier exists. If there is none then we need to
disable multicast optimizations as we cannot learn about multicast
listeners on external, bridged-in host then.

Tested-by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
2016-06-30 10:29:43 +02:00
..
bat_algo.h batman-adv: init ELP tweaking options only once 2016-06-30 10:29:43 +02:00
bat_iv_ogm.c batman-adv: remove ogm_emit and ogm_schedule API calls 2016-06-30 10:29:43 +02:00
bat_v_elp.c batman-adv: init ELP tweaking options only once 2016-06-30 10:29:43 +02:00
bat_v_elp.h batman-adv: initialize ELP orig address on secondary interfaces 2016-05-18 11:49:44 +08:00
bat_v_ogm.c batman-adv: refactor batadv_neigh_node_* functions to follow common style 2016-06-30 10:29:43 +02:00
bat_v_ogm.h batman-adv: OGMv2 - implement originators logic 2016-02-29 16:05:31 +08:00
bat_v.c batman-adv: init ELP tweaking options only once 2016-06-30 10:29:43 +02:00
bitarray.c batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
bitarray.h batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
bridge_loop_avoidance.c batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
bridge_loop_avoidance.h batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
debugfs.c batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
debugfs.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
distributed-arp-table.c batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
distributed-arp-table.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
fragmentation.c batman-adv: Include frame priority in fragment header 2016-06-30 10:29:43 +02:00
fragmentation.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
gateway_client.c batman-adv: move GW mode and selection class to private data structure 2016-06-30 10:29:43 +02:00
gateway_client.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
gateway_common.c batman-adv: move GW mode and selection class to private data structure 2016-06-30 10:29:43 +02:00
gateway_common.h batman-adv: add throughput override attribute to hard_ifaces 2016-02-29 16:05:32 +08:00
hard-interface.c batman-adv: init ELP tweaking options only once 2016-06-30 10:29:43 +02:00
hard-interface.h batman-adv: Create batman soft interfaces within correct netns. 2016-05-10 18:26:44 +08:00
hash.c batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
hash.h batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
icmp_socket.c batman-adv: fix wrong names in kerneldoc 2016-05-04 02:22:03 +08:00
icmp_socket.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
Kconfig batman-adv: Add multicast optimization support for bridged setups 2016-06-30 10:29:43 +02:00
main.c batman-adv: remove ogm_emit and ogm_schedule API calls 2016-06-30 10:29:43 +02:00
main.h batman-adv: Start new development cycle 2016-06-30 10:29:43 +02:00
Makefile batman-adv: OGMv2 - add basic infrastructure 2016-02-29 16:05:31 +08:00
multicast.c batman-adv: Add multicast optimization support for bridged setups 2016-06-30 10:29:43 +02:00
multicast.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
network-coding.c batman-adv: use batadv_compare_eth when possible 2016-05-10 18:28:54 +08:00
network-coding.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
originator.c batman-adv: remove unused callback from batadv_algo_ops struct 2016-06-30 10:29:43 +02:00
originator.h batman-adv: refactor batadv_neigh_node_* functions to follow common style 2016-06-30 10:29:43 +02:00
packet.h batman-adv: Include frame priority in fragment header 2016-06-30 10:29:43 +02:00
routing.c batman-adv: Include frame priority in fragment header 2016-06-30 10:29:43 +02:00
routing.h batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
send.c batman-adv: remove ogm_emit and ogm_schedule API calls 2016-06-30 10:29:43 +02:00
send.h batman-adv: remove ogm_emit and ogm_schedule API calls 2016-06-30 10:29:43 +02:00
soft-interface.c batman-adv: move GW mode and selection class to private data structure 2016-06-30 10:29:43 +02:00
soft-interface.h batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
sysfs.c batman-adv: move GW mode and selection class to private data structure 2016-06-30 10:29:43 +02:00
sysfs.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
translation-table.c batman-adv: remove unused vid local variable in tt seq print 2016-06-30 10:29:43 +02:00
translation-table.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
types.h batman-adv: Add multicast optimization support for bridged setups 2016-06-30 10:29:43 +02:00