These are three fixes for issues which occur when using the batman-adv multicast-to-unicast feature.
They fix issues when using the multicast-to-unicast conversion while BLA is enabled and some nodes are sharing the same LAN side. Here it either causes "just" duplicates in the "good" scenario (Patch 3/3). But can also cause multiple BLA backbones to send a frame from the mesh into the same, shared LAN segment (Patch 2/3). Or in the worst case, even reflect packets back to the host in the shared LAN, which completely confuses switches/bridges and ICMPv6 Neighbor Discovery (Patch 1/3).
Regards, Linus
---
Changelog v4: * Patch 1/3: - fixed build with CONFIG_BATMAN_ADV_MCAST=n -> dummy for batadv_mcast_forw_send_orig() * Patch 2/3: - fixed parameters for batadv_bla_rx() with CONFIG_BATMAN_ADV_BLA=n (bool is_bcast -> int packet_type)
Changelog v3: * removed 1/4, as it was already applied * renamed title (excluded TT, as already applied)
* Patch 1/3: - moved bla-backbone check into multicast code: -> to stay on the safe side for net, to touch less other code paths - the issue was observed specifically for multicast and the fix was tested for that - added a note regarding implications for mcast-fanout * Patch 2/3: - previous approach was broken, it would break the DHCPv6 gateway code; instead distinguish by batadv 3 vs. 4 addr unicast header - added some more code comments - updated commit message with new approach * Patch 3/3: - made code a bit more verbose and explicit - added some more code comments - added missing kernel doc for "orig" parameter to new batadv_bla_check_duplist()
Changelog v2: * Adding "Fixes:" lines