]> Pileus Git - ~andy/linux/blobdiff - net/bridge/br_sysfs_br.c
bridge: Add vlan filtering infrastructure
[~andy/linux] / net / bridge / br_sysfs_br.c
index 5913a3a0047b35575fa45ebfd7d3a74cad7b75d9..8baa9c08e1a4b1442d4d99e4d448f25b03685e47 100644 (file)
@@ -691,6 +691,24 @@ static ssize_t store_nf_call_arptables(
 static DEVICE_ATTR(nf_call_arptables, S_IRUGO | S_IWUSR,
                   show_nf_call_arptables, store_nf_call_arptables);
 #endif
+#ifdef CONFIG_BRIDGE_VLAN_FILTERING
+static ssize_t show_vlan_filtering(struct device *d,
+                                  struct device_attribute *attr,
+                                  char *buf)
+{
+       struct net_bridge *br = to_bridge(d);
+       return sprintf(buf, "%d\n", br->vlan_enabled);
+}
+
+static ssize_t store_vlan_filtering(struct device *d,
+                                   struct device_attribute *attr,
+                                   const char *buf, size_t len)
+{
+       return store_bridge_parm(d, buf, len, br_vlan_filter_toggle);
+}
+static DEVICE_ATTR(vlan_filtering, S_IRUGO | S_IWUSR,
+                  show_vlan_filtering, store_vlan_filtering);
+#endif
 
 static struct attribute *bridge_attrs[] = {
        &dev_attr_forward_delay.attr,
@@ -731,6 +749,9 @@ static struct attribute *bridge_attrs[] = {
        &dev_attr_nf_call_iptables.attr,
        &dev_attr_nf_call_ip6tables.attr,
        &dev_attr_nf_call_arptables.attr,
+#endif
+#ifdef CONFIG_BRIDGE_VLAN_FILTERING
+       &dev_attr_vlan_filtering.attr,
 #endif
        NULL
 };