From: Vladimir Oltean <vladimir.olt...@nxp.com> This series is an attempt to support as much as possible in terms of traffic I/O from the network stack with the only dsa_8021q user thus far, sja1105.
The hardware doesn't support pushing a second VLAN tag to packets that are already tagged, so our only option is to combine the dsa_8021q with the user tag into a single tag and decode that on the CPU. The assumption is that there is a type of use cases for which 7 VLANs per port are more than sufficient, and that there's another type of use cases where the full 4096 entries are barely enough. Those use cases are very different from one another, so I prefer trying to give both the best experience by creating this best_effort_vlan_filtering knob to select the mode in which they want to operate in. This series depends on "[v4,resend,net-next,0/4] Cross-chip bridging for disjoint DSA trees", submitted here: https://patchwork.ozlabs.org/project/netdev/cover/20200510163743.18032-1-olte...@gmail.com/ Russell King (1): net: dsa: provide an option for drivers to always receive bridge VLANs Vladimir Oltean (14): net: dsa: tag_8021q: introduce a vid_is_dsa_8021q helper net: dsa: sja1105: keep the VLAN awareness state in a driver variable net: dsa: sja1105: deny alterations of dsa_8021q VLANs from the bridge net: dsa: sja1105: save/restore VLANs using a delta commit method net: dsa: sja1105: allow VLAN configuration from the bridge in all states net: dsa: sja1105: exit sja1105_vlan_filtering when called multiple times net: dsa: sja1105: prepare tagger for handling DSA tags and VLAN simultaneously net: dsa: tag_8021q: support up to 8 VLANs per port using sub-VLANs net: dsa: tag_sja1105: implement sub-VLAN decoding net: dsa: sja1105: add a new best_effort_vlan_filtering devlink parameter net: dsa: sja1105: add packing ops for the Retagging Table net: dsa: sja1105: implement a common frame memory partitioning function net: dsa: sja1105: implement VLAN retagging for dsa_8021q sub-VLANs docs: net: dsa: sja1105: document the best_effort_vlan_filtering option .../networking/devlink-params-sja1105.txt | 27 + Documentation/networking/dsa/sja1105.rst | 211 +++- drivers/net/dsa/sja1105/sja1105.h | 29 + .../net/dsa/sja1105/sja1105_dynamic_config.c | 33 + drivers/net/dsa/sja1105/sja1105_main.c | 1072 +++++++++++++++-- drivers/net/dsa/sja1105/sja1105_spi.c | 6 + .../net/dsa/sja1105/sja1105_static_config.c | 62 +- .../net/dsa/sja1105/sja1105_static_config.h | 16 + drivers/net/dsa/sja1105/sja1105_vl.c | 20 +- include/linux/dsa/8021q.h | 42 +- include/linux/dsa/sja1105.h | 5 + include/net/dsa.h | 1 + net/dsa/slave.c | 12 +- net/dsa/tag_8021q.c | 108 +- net/dsa/tag_sja1105.c | 38 +- 15 files changed, 1443 insertions(+), 239 deletions(-) create mode 100644 Documentation/networking/devlink-params-sja1105.txt -- 2.17.1