[OpenWrt-Devel] [PATCHv2 netifd 1/3] bridge: Fix multicast_to_unicast feature by hairpin+isolate

Felix Fietkau nbd at openwrt.org
Wed Aug 5 07:28:23 EDT 2015

On 2015-08-05 01:00, Linus Lüssing wrote:
> All IGMP and MLD versions suffer from a specific limitation (from a
> snooping switch perspective): Report suppression.
> Once a listener hears an IGMPv2/3 or MLDv1 report for the same group
> itself participates in then it might (if this listener is an IGMPv3 or
> MLDv2 listener) or will (if this is an IGMPv1/2 or MLDv1 listener)
> refrain from sending its own report.
> Therefore we might currently miss such surpressing listeners as they
> won't receive the multicast packet with the mangled, unicasted
> destination.
> Fixing this by first isolating the STAs and giving the bridge more
> control over traffic forwarding. E.g. refraining to forward listener
> reports to other STAs.
> For broadcast and unicast traffic to an STA on the same AP, the hairpin
> feature of the bridge will reflect such traffic back to the AP
> interface. However, if the AP interface is actually configured to
> isolate STAs, then hairpin is kept disabled.
> Signed-off-by: Linus Lüssing <linus.luessing at c0d3.blue>
This patch turns on hairpin mode and assumes that the driver script
checks the multicast_to_unicast flag.
This is somewhat broken, since you only consider the hostapd.sh script,
but there are other driver implementations out there (including some
out-of-tree ones).
I think a better approach would be to check the conditions that are used
to enable hairpin mode and use them to alter the vif isolate options in
the json data.
You could do this from within netifd-wireless.sh, and drop the hostapd
change entirely.

- Felix
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org

More information about the openwrt-devel mailing list