Per-station interfaces in 4-addr AP mode must not inherit them, because
this can cause reflected packets by enabling hairpin mode.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!ifname)
ifname = vif->ifname;
- if (up) {
+ if (up && ifname != vif->ifname) {
struct device *dev = device_get(ifname, 2);
if (dev) {
dev->wireless_isolate = vif->isolate;
dev->wireless_proxyarp = vif->proxyarp;
dev->wireless = true;
dev->wireless_ap = vif->ap_mode;
- dev->bpdu_filter = dev->wireless_ap && ifname == vif->ifname;
+ dev->bpdu_filter = dev->wireless_ap;
}
}