162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci 362306a36Sopenharmony_cimenuconfig NET_DSA 462306a36Sopenharmony_ci tristate "Distributed Switch Architecture" 562306a36Sopenharmony_ci depends on BRIDGE || BRIDGE=n 662306a36Sopenharmony_ci depends on HSR || HSR=n 762306a36Sopenharmony_ci depends on INET && NETDEVICES 862306a36Sopenharmony_ci select GRO_CELLS 962306a36Sopenharmony_ci select NET_SWITCHDEV 1062306a36Sopenharmony_ci select PHYLINK 1162306a36Sopenharmony_ci select NET_DEVLINK 1262306a36Sopenharmony_ci imply NET_SELFTESTS 1362306a36Sopenharmony_ci help 1462306a36Sopenharmony_ci Say Y if you want to enable support for the hardware switches supported 1562306a36Sopenharmony_ci by the Distributed Switch Architecture. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciif NET_DSA 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci# Drivers must select the appropriate tagging format(s) 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ciconfig NET_DSA_TAG_NONE 2262306a36Sopenharmony_ci tristate "No-op tag driver" 2362306a36Sopenharmony_ci help 2462306a36Sopenharmony_ci Say Y or M if you want to enable support for switches which don't tag 2562306a36Sopenharmony_ci frames over the CPU port. 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ciconfig NET_DSA_TAG_AR9331 2862306a36Sopenharmony_ci tristate "Tag driver for Atheros AR9331 SoC with built-in switch" 2962306a36Sopenharmony_ci help 3062306a36Sopenharmony_ci Say Y or M if you want to enable support for tagging frames for 3162306a36Sopenharmony_ci the Atheros AR9331 SoC with built-in switch. 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ciconfig NET_DSA_TAG_BRCM_COMMON 3462306a36Sopenharmony_ci tristate 3562306a36Sopenharmony_ci default n 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ciconfig NET_DSA_TAG_BRCM 3862306a36Sopenharmony_ci tristate "Tag driver for Broadcom switches using in-frame headers" 3962306a36Sopenharmony_ci select NET_DSA_TAG_BRCM_COMMON 4062306a36Sopenharmony_ci help 4162306a36Sopenharmony_ci Say Y if you want to enable support for tagging frames for the 4262306a36Sopenharmony_ci Broadcom switches which place the tag after the MAC source address. 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ciconfig NET_DSA_TAG_BRCM_LEGACY 4562306a36Sopenharmony_ci tristate "Tag driver for Broadcom legacy switches using in-frame headers" 4662306a36Sopenharmony_ci select NET_DSA_TAG_BRCM_COMMON 4762306a36Sopenharmony_ci help 4862306a36Sopenharmony_ci Say Y if you want to enable support for tagging frames for the 4962306a36Sopenharmony_ci Broadcom legacy switches which place the tag after the MAC source 5062306a36Sopenharmony_ci address. 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ciconfig NET_DSA_TAG_BRCM_PREPEND 5362306a36Sopenharmony_ci tristate "Tag driver for Broadcom switches using prepended headers" 5462306a36Sopenharmony_ci select NET_DSA_TAG_BRCM_COMMON 5562306a36Sopenharmony_ci help 5662306a36Sopenharmony_ci Say Y if you want to enable support for tagging frames for the 5762306a36Sopenharmony_ci Broadcom switches which places the tag before the Ethernet header 5862306a36Sopenharmony_ci (prepended). 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ciconfig NET_DSA_TAG_HELLCREEK 6162306a36Sopenharmony_ci tristate "Tag driver for Hirschmann Hellcreek TSN switches" 6262306a36Sopenharmony_ci help 6362306a36Sopenharmony_ci Say Y or M if you want to enable support for tagging frames 6462306a36Sopenharmony_ci for the Hirschmann Hellcreek TSN switches. 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ciconfig NET_DSA_TAG_GSWIP 6762306a36Sopenharmony_ci tristate "Tag driver for Lantiq / Intel GSWIP switches" 6862306a36Sopenharmony_ci help 6962306a36Sopenharmony_ci Say Y or M if you want to enable support for tagging frames for the 7062306a36Sopenharmony_ci Lantiq / Intel GSWIP switches. 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ciconfig NET_DSA_TAG_DSA_COMMON 7362306a36Sopenharmony_ci tristate 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ciconfig NET_DSA_TAG_DSA 7662306a36Sopenharmony_ci tristate "Tag driver for Marvell switches using DSA headers" 7762306a36Sopenharmony_ci select NET_DSA_TAG_DSA_COMMON 7862306a36Sopenharmony_ci help 7962306a36Sopenharmony_ci Say Y or M if you want to enable support for tagging frames for the 8062306a36Sopenharmony_ci Marvell switches which use DSA headers. 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ciconfig NET_DSA_TAG_EDSA 8362306a36Sopenharmony_ci tristate "Tag driver for Marvell switches using EtherType DSA headers" 8462306a36Sopenharmony_ci select NET_DSA_TAG_DSA_COMMON 8562306a36Sopenharmony_ci help 8662306a36Sopenharmony_ci Say Y or M if you want to enable support for tagging frames for the 8762306a36Sopenharmony_ci Marvell switches which use EtherType DSA headers. 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ciconfig NET_DSA_TAG_MTK 9062306a36Sopenharmony_ci tristate "Tag driver for Mediatek switches" 9162306a36Sopenharmony_ci help 9262306a36Sopenharmony_ci Say Y or M if you want to enable support for tagging frames for 9362306a36Sopenharmony_ci Mediatek switches. 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ciconfig NET_DSA_TAG_KSZ 9662306a36Sopenharmony_ci tristate "Tag driver for Microchip 8795/937x/9477/9893 families of switches" 9762306a36Sopenharmony_ci help 9862306a36Sopenharmony_ci Say Y if you want to enable support for tagging frames for the 9962306a36Sopenharmony_ci Microchip 8795/937x/9477/9893 families of switches. 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ciconfig NET_DSA_TAG_OCELOT 10262306a36Sopenharmony_ci tristate "Tag driver for Ocelot family of switches, using NPI port" 10362306a36Sopenharmony_ci select PACKING 10462306a36Sopenharmony_ci help 10562306a36Sopenharmony_ci Say Y or M if you want to enable NPI tagging for the Ocelot switches 10662306a36Sopenharmony_ci (VSC7511, VSC7512, VSC7513, VSC7514, VSC9953, VSC9959). In this mode, 10762306a36Sopenharmony_ci the frames over the Ethernet CPU port are prepended with a 10862306a36Sopenharmony_ci hardware-defined injection/extraction frame header. Flow control 10962306a36Sopenharmony_ci (PAUSE frames) over the CPU port is not supported when operating in 11062306a36Sopenharmony_ci this mode. 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ciconfig NET_DSA_TAG_OCELOT_8021Q 11362306a36Sopenharmony_ci tristate "Tag driver for Ocelot family of switches, using VLAN" 11462306a36Sopenharmony_ci help 11562306a36Sopenharmony_ci Say Y or M if you want to enable support for tagging frames with a 11662306a36Sopenharmony_ci custom VLAN-based header. Frames that require timestamping, such as 11762306a36Sopenharmony_ci PTP, are not delivered over Ethernet but over register-based MMIO. 11862306a36Sopenharmony_ci Flow control over the CPU port is functional in this mode. When using 11962306a36Sopenharmony_ci this mode, less TCAM resources (VCAP IS1, IS2, ES0) are available for 12062306a36Sopenharmony_ci use with tc-flower. 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ciconfig NET_DSA_TAG_QCA 12362306a36Sopenharmony_ci tristate "Tag driver for Qualcomm Atheros QCA8K switches" 12462306a36Sopenharmony_ci help 12562306a36Sopenharmony_ci Say Y or M if you want to enable support for tagging frames for 12662306a36Sopenharmony_ci the Qualcomm Atheros QCA8K switches. 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ciconfig NET_DSA_TAG_RTL4_A 12962306a36Sopenharmony_ci tristate "Tag driver for Realtek 4 byte protocol A tags" 13062306a36Sopenharmony_ci help 13162306a36Sopenharmony_ci Say Y or M if you want to enable support for tagging frames for the 13262306a36Sopenharmony_ci Realtek switches with 4 byte protocol A tags, sich as found in 13362306a36Sopenharmony_ci the Realtek RTL8366RB. 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ciconfig NET_DSA_TAG_RTL8_4 13662306a36Sopenharmony_ci tristate "Tag driver for Realtek 8 byte protocol 4 tags" 13762306a36Sopenharmony_ci help 13862306a36Sopenharmony_ci Say Y or M if you want to enable support for tagging frames for Realtek 13962306a36Sopenharmony_ci switches with 8 byte protocol 4 tags, such as the Realtek RTL8365MB-VC. 14062306a36Sopenharmony_ci 14162306a36Sopenharmony_ciconfig NET_DSA_TAG_RZN1_A5PSW 14262306a36Sopenharmony_ci tristate "Tag driver for Renesas RZ/N1 A5PSW switch" 14362306a36Sopenharmony_ci help 14462306a36Sopenharmony_ci Say Y or M if you want to enable support for tagging frames for 14562306a36Sopenharmony_ci Renesas RZ/N1 embedded switch that uses an 8 byte tag located after 14662306a36Sopenharmony_ci destination MAC address. 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ciconfig NET_DSA_TAG_LAN9303 14962306a36Sopenharmony_ci tristate "Tag driver for SMSC/Microchip LAN9303 family of switches" 15062306a36Sopenharmony_ci help 15162306a36Sopenharmony_ci Say Y or M if you want to enable support for tagging frames for the 15262306a36Sopenharmony_ci SMSC/Microchip LAN9303 family of switches. 15362306a36Sopenharmony_ci 15462306a36Sopenharmony_ciconfig NET_DSA_TAG_SJA1105 15562306a36Sopenharmony_ci tristate "Tag driver for NXP SJA1105 switches" 15662306a36Sopenharmony_ci select PACKING 15762306a36Sopenharmony_ci help 15862306a36Sopenharmony_ci Say Y or M if you want to enable support for tagging frames with the 15962306a36Sopenharmony_ci NXP SJA1105 switch family. Both the native tagging protocol (which 16062306a36Sopenharmony_ci is only for link-local traffic) as well as non-native tagging (based 16162306a36Sopenharmony_ci on a custom 802.1Q VLAN header) are available. 16262306a36Sopenharmony_ci 16362306a36Sopenharmony_ciconfig NET_DSA_TAG_TRAILER 16462306a36Sopenharmony_ci tristate "Tag driver for switches using a trailer tag" 16562306a36Sopenharmony_ci help 16662306a36Sopenharmony_ci Say Y or M if you want to enable support for tagging frames at 16762306a36Sopenharmony_ci with a trailed. e.g. Marvell 88E6060. 16862306a36Sopenharmony_ci 16962306a36Sopenharmony_ciconfig NET_DSA_TAG_XRS700X 17062306a36Sopenharmony_ci tristate "Tag driver for XRS700x switches" 17162306a36Sopenharmony_ci help 17262306a36Sopenharmony_ci Say Y or M if you want to enable support for tagging frames for 17362306a36Sopenharmony_ci Arrow SpeedChips XRS700x switches that use a single byte tag trailer. 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ciendif 176