| # 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 BCM63xx 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 | 
 | 	  BCM63xx legacy switches which place the tag after the MAC source | 
 | 	  address. | 
 | 	  This tag is used in BCM63xx legacy switches which work without the | 
 | 	  original FCS and length before the tag insertion. | 
 |  | 
 | config NET_DSA_TAG_BRCM_LEGACY_FCS | 
 | 	tristate "Tag driver for BCM53xx 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 | 
 | 	  BCM53xx legacy switches which place the tag after the MAC source | 
 | 	  address. | 
 | 	  This tag is used in BCM53xx legacy switches which expect original | 
 | 	  FCS and length before the tag insertion to be present. | 
 |  | 
 | 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, such 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_VSC73XX_8021Q | 
 | 	tristate "Tag driver for Microchip/Vitesse VSC73xx 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. | 
 |  | 
 | 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 |