From: Felix Fietkau Date: Mon, 20 Sep 2021 15:55:39 +0000 (+0200) Subject: wireless: only apply wireless device attributes to the base vif interface X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=6fa9b042ff4dc2ef91a8b8c49cbc02cdfca0cf28;p=project%2Fnetifd.git wireless: only apply wireless device attributes to the base vif interface 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 --- diff --git a/wireless.c b/wireless.c index 0e6447d..29feb6a 100644 --- a/wireless.c +++ b/wireless.c @@ -328,14 +328,14 @@ static void wireless_interface_handle_link(struct wireless_interface *vif, const 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; } }