Regular AP/VLAN interfaces using 3-address modes should transmit any
STP packets, since devices behind them can not be part of any working bridge
topology. Enable a feature that drops any incoming or outgoing STP packets.
This does not apply to WDS AP VLAN or client mode interfaces, since they
could act as a proper bridge link
Signed-off-by: Felix Fietkau <nbd@nbd.name>
bool wireless;
bool wireless_ap;
bool wireless_isolate;
+ bool bpdu_filter;
struct interface *config_iface;
system_set_dev_sysctl("/sys/class/net/%s/brport/hairpin_mode", dev->ifname, val);
}
+static void system_bridge_set_bpdu_filter(struct device *dev, const char *val)
+{
+ system_set_dev_sysctl("/sys/class/net/%s/brport/bpdu_filter", dev->ifname, val);
+}
+
static void system_bridge_set_isolated(struct device *dev, const char *val)
{
system_set_dev_sysctl("/sys/class/net/%s/brport/isolated", dev->ifname, val);
dev->settings.isolate)
system_bridge_set_isolated(dev, "1");
+ if (dev->bpdu_filter)
+ system_bridge_set_bpdu_filter(dev, dev->bpdu_filter ? "1" : "0");
+
return ret;
}
dev->wireless_isolate = vif->isolate;
dev->wireless = true;
dev->wireless_ap = vif->ap_mode;
+ dev->bpdu_filter = dev->wireless_ap && ifname == vif->ifname;
}
}
dev->wireless_isolate = vlan->isolate;
dev->wireless = true;
dev->wireless_ap = true;
+ dev->bpdu_filter = true;
}
}