batman-adv: mcast: fix duplicate mcast packets from BLA backbone to mesh
authorLinus Lüssing <linus.luessing@c0d3.blue>
Tue, 15 Sep 2020 07:54:10 +0000 (09:54 +0200)
committerSimon Wunderlich <sw@simonwunderlich.de>
Tue, 15 Sep 2020 08:05:24 +0000 (10:05 +0200)
commit2369e827046920ef0599e6a36b975ac5c0a359c2
tree147dd308fd1fcb8f4d52d9a1bba2c91dc052af43
parent74c09b7275126da1b642b90c9cdc3ae8b729ad4b
batman-adv: mcast: fix duplicate mcast packets from BLA backbone to mesh

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>
net/batman-adv/bridge_loop_avoidance.c