kernel-fxtec-pro1x/net/batman-adv
Linus Lüssing 41f5e62866 batman-adv: mcast: fix duplicate mcast packets from BLA backbone to mesh
[ Upstream commit 2369e827046920ef0599e6a36b975ac5c0a359c2 ]

Scenario:
* Multicast frame send from BLA backbone gateways (multiple nodes
  with their bat0 bridged together, with BLA enabled) sharing the same
  LAN to nodes in the mesh

Issue:
* Nodes receive the frame multiple times on bat0 from the mesh,
  once from each foreign BLA backbone gateway which shares the same LAN
  with another

For multicast frames via batman-adv broadcast packets coming from the
same BLA backbone but from different backbone gateways duplicates are
currently detected via a CRC history of previously received packets.

However this CRC so far was not performed for multicast frames received
via batman-adv unicast packets. Fixing this by appyling the same check
for such packets, too.

Room for improvements in the future: Ideally we would introduce the
possibility to not only claim a client, but a complete originator, too.
This would allow us to only send a multicast-in-unicast packet from a BLA
backbone gateway claiming the node and by that avoid potential redundant
transmissions in the first place.

Fixes: 279e89b2281a ("batman-adv: add broadcast duplicate check")
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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-10-01 13:14:52 +02:00
..
bat_algo.c
bat_algo.h
bat_iv_ogm.c batman-adv: Don't schedule OGM for disabled interface 2020-03-18 07:14:22 +01:00
bat_iv_ogm.h
bat_v.c
bat_v.h
bat_v_elp.c batman-adv: Revert "disable ethtool link speed detection when auto negotiation off" 2020-06-22 09:05:12 +02:00
bat_v_elp.h
bat_v_ogm.c batman-adv: Fix own OGM check in aggregated OGMs 2020-09-09 19:04:24 +02:00
bat_v_ogm.h
bitarray.c
bitarray.h
bridge_loop_avoidance.c batman-adv: mcast: fix duplicate mcast packets from BLA backbone to mesh 2020-10-01 13:14:52 +02:00
bridge_loop_avoidance.h batman-adv: mcast: fix duplicate mcast packets in BLA backbone from mesh 2020-10-01 13:14:52 +02:00
debugfs.c
debugfs.h
distributed-arp-table.c batman-adv: Fix DAT candidate selection on little endian systems 2020-01-23 08:21:34 +01:00
distributed-arp-table.h
fragmentation.c
fragmentation.h
gateway_client.c batman-adv: Avoid uninitialized chaddr when handling DHCP 2020-09-09 19:04:24 +02:00
gateway_client.h
gateway_common.c
gateway_common.h
hard-interface.c batman-adv: Avoid free/alloc race when handling OGM buffer 2019-11-06 13:06:22 +01:00
hard-interface.h
hash.c
hash.h
icmp_socket.c
icmp_socket.h
Kconfig
log.c
log.h
main.c
main.h
Makefile
multicast.c
multicast.h
netlink.c batman-adv: fix uninit-value in batadv_netlink_get_ifindex() 2019-09-16 08:21:41 +02:00
netlink.h
network-coding.c batman-adv: fix batadv_nc_random_weight_tq 2020-05-14 07:57:21 +02:00
network-coding.h
originator.c
originator.h
routing.c batman-adv: mcast/TT: fix wrongly dropped or rerouted packets 2020-10-01 13:14:51 +02:00
routing.h
send.c
send.h
soft-interface.c batman-adv: mcast: fix duplicate mcast packets in BLA backbone from mesh 2020-10-01 13:14:52 +02:00
soft-interface.h
sysfs.c batman-adv: Fix refcnt leak in batadv_store_throughput_override 2020-05-14 07:57:22 +02:00
sysfs.h
tp_meter.c
tp_meter.h
translation-table.c
translation-table.h
tvlv.c
tvlv.h
types.h batman-adv: Avoid free/alloc race when handling OGM2 buffer 2020-03-18 07:14:25 +01:00