
There is no reason that I can see why the no-op tagging protocol should be registered manually, so make it a module and make all drivers which have any sort of reference to DSA_TAG_PROTO_NONE select it. Note that I don't know if ksz_get_tag_protocol() really needs this, or if it's just the logic which is poorly written. All switches seem to have their own tagging protocol, and DSA_TAG_PROTO_NONE is just a fallback that never gets used. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
5.9 KiB
SPDX-License-Identifier: GPL-2.0-only
menuconfig NET_DSA tristate "Distributed Switch Architecture" depends on BRIDGE || BRIDGE=n depends on HSR || HSR=n depends on INET && NETDEVICES select GRO_CELLS select NET_SWITCHDEV select PHYLINK select NET_DEVLINK imply NET_SELFTESTS help Say Y if you want to enable support for the hardware switches supported by the Distributed Switch Architecture.
if NET_DSA
Drivers must select the appropriate tagging format(s)
config NET_DSA_TAG_NONE tristate "No-op tag driver" help Say Y or M if you want to enable support for switches which don't tag frames over the CPU port.
config NET_DSA_TAG_AR9331 tristate "Tag driver for Atheros AR9331 SoC with built-in switch" help Say Y or M if you want to enable support for tagging frames for the Atheros AR9331 SoC with built-in switch.
config NET_DSA_TAG_BRCM_COMMON tristate default n
config NET_DSA_TAG_BRCM tristate "Tag driver for Broadcom switches using in-frame headers" select NET_DSA_TAG_BRCM_COMMON help Say Y if you want to enable support for tagging frames for the Broadcom switches which place the tag after the MAC source address.
config NET_DSA_TAG_BRCM_LEGACY tristate "Tag driver for Broadcom legacy switches using in-frame headers" select NET_DSA_TAG_BRCM_COMMON help Say Y if you want to enable support for tagging frames for the Broadcom legacy switches which place the tag after the MAC source address.
config NET_DSA_TAG_BRCM_PREPEND tristate "Tag driver for Broadcom switches using prepended headers" select NET_DSA_TAG_BRCM_COMMON help Say Y if you want to enable support for tagging frames for the Broadcom switches which places the tag before the Ethernet header (prepended).
config NET_DSA_TAG_HELLCREEK tristate "Tag driver for Hirschmann Hellcreek TSN switches" help Say Y or M if you want to enable support for tagging frames for the Hirschmann Hellcreek TSN switches.
config NET_DSA_TAG_GSWIP tristate "Tag driver for Lantiq / Intel GSWIP switches" help Say Y or M if you want to enable support for tagging frames for the Lantiq / Intel GSWIP switches.
config NET_DSA_TAG_DSA_COMMON tristate
config NET_DSA_TAG_DSA tristate "Tag driver for Marvell switches using DSA headers" select NET_DSA_TAG_DSA_COMMON help Say Y or M if you want to enable support for tagging frames for the Marvell switches which use DSA headers.
config NET_DSA_TAG_EDSA tristate "Tag driver for Marvell switches using EtherType DSA headers" select NET_DSA_TAG_DSA_COMMON help Say Y or M if you want to enable support for tagging frames for the Marvell switches which use EtherType DSA headers.
config NET_DSA_TAG_MTK tristate "Tag driver for Mediatek switches" help Say Y or M if you want to enable support for tagging frames for Mediatek switches.
config NET_DSA_TAG_KSZ tristate "Tag driver for Microchip 8795/937x/9477/9893 families of switches" help Say Y if you want to enable support for tagging frames for the Microchip 8795/937x/9477/9893 families of switches.
config NET_DSA_TAG_OCELOT tristate "Tag driver for Ocelot family of switches, using NPI port" select PACKING help Say Y or M if you want to enable NPI tagging for the Ocelot switches (VSC7511, VSC7512, VSC7513, VSC7514, VSC9953, VSC9959). In this mode, the frames over the Ethernet CPU port are prepended with a hardware-defined injection/extraction frame header. Flow control (PAUSE frames) over the CPU port is not supported when operating in this mode.
config NET_DSA_TAG_OCELOT_8021Q tristate "Tag driver for Ocelot family of switches, using VLAN" help Say Y or M if you want to enable support for tagging frames with a custom VLAN-based header. Frames that require timestamping, such as PTP, are not delivered over Ethernet but over register-based MMIO. Flow control over the CPU port is functional in this mode. When using this mode, less TCAM resources (VCAP IS1, IS2, ES0) are available for use with tc-flower.
config NET_DSA_TAG_QCA tristate "Tag driver for Qualcomm Atheros QCA8K switches" help Say Y or M if you want to enable support for tagging frames for the Qualcomm Atheros QCA8K switches.
config NET_DSA_TAG_RTL4_A tristate "Tag driver for Realtek 4 byte protocol A tags" help Say Y or M if you want to enable support for tagging frames for the Realtek switches with 4 byte protocol A tags, sich as found in the Realtek RTL8366RB.
config NET_DSA_TAG_RTL8_4 tristate "Tag driver for Realtek 8 byte protocol 4 tags" help Say Y or M if you want to enable support for tagging frames for Realtek switches with 8 byte protocol 4 tags, such as the Realtek RTL8365MB-VC.
config NET_DSA_TAG_RZN1_A5PSW tristate "Tag driver for Renesas RZ/N1 A5PSW switch" help Say Y or M if you want to enable support for tagging frames for Renesas RZ/N1 embedded switch that uses an 8 byte tag located after destination MAC address.
config NET_DSA_TAG_LAN9303 tristate "Tag driver for SMSC/Microchip LAN9303 family of switches" help Say Y or M if you want to enable support for tagging frames for the SMSC/Microchip LAN9303 family of switches.
config NET_DSA_TAG_SJA1105 tristate "Tag driver for NXP SJA1105 switches" select PACKING help Say Y or M if you want to enable support for tagging frames with the NXP SJA1105 switch family. Both the native tagging protocol (which is only for link-local traffic) as well as non-native tagging (based on a custom 802.1Q VLAN header) are available.
config NET_DSA_TAG_TRAILER tristate "Tag driver for switches using a trailer tag" help Say Y or M if you want to enable support for tagging frames at with a trailed. e.g. Marvell 88E6060.
config NET_DSA_TAG_XRS700X tristate "Tag driver for XRS700x switches" help Say Y or M if you want to enable support for tagging frames for Arrow SpeedChips XRS700x switches that use a single byte tag trailer.
endif