summaryrefslogtreecommitdiff
path: root/system-linux.c
diff options
context:
space:
mode:
Diffstat (limited to 'system-linux.c')
-rw-r--r--system-linux.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/system-linux.c b/system-linux.c
index 85942a5..355bf69 100644
--- a/system-linux.c
+++ b/system-linux.c
@@ -404,6 +404,11 @@ static void system_bridge_set_hairpin_mode(struct device *dev, const char *val)
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);
@@ -893,6 +898,9 @@ retry:
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;
}