[PATCH v5 0/2] Add 802.1AD protocol support for dsa switch and ocelot driver

From: hongbo . wang
Date: Fri Aug 07 2020 - 07:11:38 EST


From: "hongbo.wang" <hongbo.wang@xxxxxxx>

1. the patch 0001* is for setting single port into 802.1AD(QinQ) mode,
before this patch, the function dsa_slave_vlan_rx_add_vid didn't pass
the parameter "proto" to next port level, so switch's port can't get
parameter "proto"
after applying this patch, the following command can be supported:
ip link set br0 type bridge vlan_protocol 802.1ad
ip link add link swp1 name swp1.100 type vlan protocol 802.1ad id 100

2. the patch 0002* is for setting QinQ related registers in ocelot
switch driver, after applying this patch, the switch(VSC99599)'s port can
enable or disable QinQ mode.

3. Version log
v5:
a. add devlink to enable qinq_mode of ocelot's single port
b. modify br_switchdev_port_vlan_add to pass bridge's vlan_proto to port driver
c. enable NETIF_F_HW_VLAN_STAG_FILTER in ocelot driver
v4:
a. modify slave.c to support "ip set br0 type bridge vlan_protocol 802.1ad"
b. modify ocelot.c, if enable QinQ, set VLAN_AWARE_ENA and VLAN_POP_CNT per
port when vlan_filter=1
v3: combine two patches to one post

hongbo.wang (2):
net: dsa: Add protocol support for 802.1AD when adding or deleting
vlan for dsa switch port
net: dsa: ocelot: Add support for QinQ Operation

drivers/net/dsa/ocelot/felix.c | 124 +++++++++++++++++++++++++++++
drivers/net/ethernet/mscc/ocelot.c | 40 ++++++++--
include/net/switchdev.h | 1 +
include/soc/mscc/ocelot.h | 4 +
net/bridge/br_switchdev.c | 22 +++++
net/dsa/dsa_priv.h | 4 +-
net/dsa/port.c | 6 +-
net/dsa/slave.c | 53 +++++++-----
net/dsa/tag_8021q.c | 4 +-
9 files changed, 228 insertions(+), 30 deletions(-)

--
2.17.1