# SPDX-License-Identifier: GPL-2.0-only
config HAVE_NET_DSA
	def_bool y
	depends on INET && NETDEVICES && !S390

# Drivers must select NET_DSA and the appropriate tagging format

menuconfig NET_DSA
	tristate "Distributed Switch Architecture"
	depends on HAVE_NET_DSA
	depends on BRIDGE || BRIDGE=n
	select GRO_CELLS
	select NET_SWITCHDEV
	select PHYLINK
	select NET_DEVLINK
	help
	  Say Y if you want to enable support for the hardware switches supported
	  by the Distributed Switch Architecture.

if NET_DSA

# tagging formats
config NET_DSA_TAG_8021Q
	tristate
	select VLAN_8021Q
	help
	  Unlike the other tagging protocols, the 802.1Q config option simply
	  provides helpers for other tagging implementations that might rely on
	  VLAN in one way or another. It is not a complete solution.

	  Drivers which use these helpers should select this as dependency.

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_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_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
	tristate "Tag driver for Marvell switches using DSA headers"
	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"
	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/9477/9893 families of switches"
	help
	  Say Y if you want to enable support for tagging frames for the
	  Microchip 8795/9477/9893 families of switches.

config NET_DSA_TAG_OCELOT
	tristate "Tag driver for Ocelot family of switches"
	select PACKING
	help
	  Say Y or M if you want to enable support for tagging frames for the
	  Ocelot switches (VSC7511, VSC7512, VSC7513, VSC7514, VSC9959).

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_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 NET_DSA_TAG_8021Q
	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.

endif
