diff options
author | David S. Miller <davem@davemloft.net> | 2016-03-01 16:24:54 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-03-01 16:24:54 -0500 |
commit | ec1606c0906de35dbc6f21aea75c2b950104cae5 (patch) | |
tree | 923ad677a36f4dae005e1f52c1973456fe2b23a9 /drivers/net/dsa/mv88e6352.c | |
parent | 7f66ee41566d00f80ed15c0cec0b237f7af8ac0f (diff) | |
parent | 214cdb998739428b09d80b4b152faa7d1e6ad156 (diff) | |
download | linux-ec1606c0906de35dbc6f21aea75c2b950104cae5.tar.gz linux-ec1606c0906de35dbc6f21aea75c2b950104cae5.tar.xz |
Merge branch 'mv88e6xxx-vlan-filtering'
Vivien Didelot says:
====================
net: dsa: mv88e6xxx: implement VLAN filtering
This patchset fixes hardware bridging for non 802.1Q aware systems.
The mv88e6xxx DSA driver currently depends on CONFIG_VLAN_8021Q and
CONFIG_BRIDGE_VLAN_FILTERING enabled for correct bridging between switch ports.
Patch 1/9 adds support for the VLAN filtering switchdev attribute in DSA.
Patchs 2/9 and 3/9 add helper functions for the following patches.
Patchs 4/9 to 6/9 assign dynamic address databases to VLANs, ports, and
bridge groups (the lowest available FID is cleared and assigned), and thus
restore support for per-port FDB operations.
Patchs 7/9 to 9/9 refine ports isolation and setup 802.1Q on user demand.
With this patchset, ports get correctly bridged and the driver behaves as
expected, with or without 802.1Q support.
With CONFIG_VLAN_8021Q enabled, setting a default PVID to the bridge correctly
propagates the corresponding VLAN, in addition to the hardware bridging:
# echo 42 > /sys/class/net/<bridge>/bridge/default_pvid
But considering CONFIG_BRIDGE_VLAN_FILTERING enabled, the hardware VLAN
filtering is enabled on all bridge members only when the user requests it:
# echo 1 > /sys/class/net/<bridge>/bridge/vlan_filtering
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/dsa/mv88e6352.c')
-rw-r--r-- | drivers/net/dsa/mv88e6352.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/dsa/mv88e6352.c b/drivers/net/dsa/mv88e6352.c index bbca36ac4f77..a41fa5043d77 100644 --- a/drivers/net/dsa/mv88e6352.c +++ b/drivers/net/dsa/mv88e6352.c @@ -327,6 +327,7 @@ struct dsa_switch_driver mv88e6352_switch_driver = { .port_join_bridge = mv88e6xxx_port_bridge_join, .port_leave_bridge = mv88e6xxx_port_bridge_leave, .port_stp_update = mv88e6xxx_port_stp_update, + .port_vlan_filtering = mv88e6xxx_port_vlan_filtering, .port_vlan_prepare = mv88e6xxx_port_vlan_prepare, .port_vlan_add = mv88e6xxx_port_vlan_add, .port_vlan_del = mv88e6xxx_port_vlan_del, |