bridge: Fix multicast_to_unicast feature by hairpin+isolate
authorLinus Lüssing <linus.luessing@c0d3.blue>
Sun, 23 Aug 2015 15:19:26 +0000 (17:19 +0200)
committerFelix Fietkau <nbd@openwrt.org>
Tue, 25 Aug 2015 06:46:17 +0000 (08:46 +0200)
commit827145f01d849c663f18e356157fd71f1a7cc45d
tree3593b66ff746da1d3e66aad86490a4fa3e5a791e
parent6ed631e55686b909e6db25838e6e591316933c97
bridge: Fix multicast_to_unicast feature by hairpin+isolate

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@c0d3.blue>
device.h
scripts/netifd-wireless.sh
system-linux.c
wireless.c
wireless.h