[Omnia] kernel's bridge FDB not reconciling switch's ATU
Issue observed by users and reported in forums:
- https://forum.turris.cz/t/to-lan-switch-or-bridge-blocks-dhcp-replies-intermittently/13242
- https://forum.turris.cz/t/lan-ports-arent-accessible-for-wifi-client-for-the-first-250-330-seconds-after-connection/12071
- https://forum.turris.cz/t/omnia-vlan-on-dsa-port-breaks-arp-responses-tos-4-0-5/12584
- https://forum.openwrt.org/t/access-point-configuration-problem/52938
With the Wlan cards and the switch utilising different buses there is no direct information exchange but only via CPU/kernel. That results in the switch's ATU being unaware of client MAC addresses connected to Wlan since the bridge/DSA driver does not reconcile its bridge FDB entries with the switch's ATU.
For that the node's clients roaming from one of its Lan ports to a Wlan port are not able to receive traffic from the Lan ports until the switch's ATU ageing register (default ~ 300 seconds) clears the roamed client's MAC, as it remains unaware that the client has moved to another port (Wlan) and therefore drops traffic for that client's MAC.
The issue started to manifest only with the introduction of DSA and subsequent removal of OpenWrt's swconfig which if enabled routed all Lan traffic through the CPU(s).
Whilst this may seem like an inherent design flaw of the kernel's DSA/bridge driver it may not be accepted upstream as such.