From 6fa9b042ff4dc2ef91a8b8c49cbc02cdfca0cf28 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 20 Sep 2021 17:55:39 +0200 Subject: [PATCH] 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 --- wireless.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; } } -- 2.30.2