# 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