[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
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
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(-)