And one more thought/idea that just came to my mind:
Maybe after adding dynamic VLAN detection from traffic we could then also exclude the annoying, actually typically unused VID 0 from the static addition? That way we would save quite a bit of overhead as each VLAN currently quite significantly increases the OGM size.
So basically thinking of simply adding a "if (!vid) return" to (.ndo_vlan_rx_add_vid =) batadv_interface_add_vid().
One could still use VID 0 on bat0, it just wouldn't be detected as quickly/immediately, would take an actual payload packet to be added.
Currently VID 0 is added because we set "dev->features |= NETIF_F_HW_VLAN_CTAG_FILTER" in batadv_softif_init_early(). Which in turn triggers: net/8021q/vlan.c:vlan_device_event()->vlan_vid_add(dev, htons(ETH_P_8021Q), 0) And triggers the message "adding VLAN 0 to HW filter on device bat0" in dmesg.
But of course, first the BLA induced 30 seconds broadcast filtering with each added VLAN would need to be solved. As that might be a too easy DoS potential, I guess? Could still need some feedback on how to best solve that (bat_priv->bla.num_requests per VLAN?).
Regards, Linus