18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ciconfig HAVE_NET_DSA
38c2ecf20Sopenharmony_ci	def_bool y
48c2ecf20Sopenharmony_ci	depends on INET && NETDEVICES && !S390
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci# Drivers must select NET_DSA and the appropriate tagging format
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_cimenuconfig NET_DSA
98c2ecf20Sopenharmony_ci	tristate "Distributed Switch Architecture"
108c2ecf20Sopenharmony_ci	depends on HAVE_NET_DSA
118c2ecf20Sopenharmony_ci	depends on BRIDGE || BRIDGE=n
128c2ecf20Sopenharmony_ci	select GRO_CELLS
138c2ecf20Sopenharmony_ci	select NET_SWITCHDEV
148c2ecf20Sopenharmony_ci	select PHYLINK
158c2ecf20Sopenharmony_ci	select NET_DEVLINK
168c2ecf20Sopenharmony_ci	help
178c2ecf20Sopenharmony_ci	  Say Y if you want to enable support for the hardware switches supported
188c2ecf20Sopenharmony_ci	  by the Distributed Switch Architecture.
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ciif NET_DSA
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci# tagging formats
238c2ecf20Sopenharmony_ciconfig NET_DSA_TAG_8021Q
248c2ecf20Sopenharmony_ci	tristate
258c2ecf20Sopenharmony_ci	select VLAN_8021Q
268c2ecf20Sopenharmony_ci	help
278c2ecf20Sopenharmony_ci	  Unlike the other tagging protocols, the 802.1Q config option simply
288c2ecf20Sopenharmony_ci	  provides helpers for other tagging implementations that might rely on
298c2ecf20Sopenharmony_ci	  VLAN in one way or another. It is not a complete solution.
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci	  Drivers which use these helpers should select this as dependency.
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ciconfig NET_DSA_TAG_AR9331
348c2ecf20Sopenharmony_ci	tristate "Tag driver for Atheros AR9331 SoC with built-in switch"
358c2ecf20Sopenharmony_ci	help
368c2ecf20Sopenharmony_ci	  Say Y or M if you want to enable support for tagging frames for
378c2ecf20Sopenharmony_ci	  the Atheros AR9331 SoC with built-in switch.
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ciconfig NET_DSA_TAG_BRCM_COMMON
408c2ecf20Sopenharmony_ci	tristate
418c2ecf20Sopenharmony_ci	default n
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ciconfig NET_DSA_TAG_BRCM
448c2ecf20Sopenharmony_ci	tristate "Tag driver for Broadcom switches using in-frame headers"
458c2ecf20Sopenharmony_ci	select NET_DSA_TAG_BRCM_COMMON
468c2ecf20Sopenharmony_ci	help
478c2ecf20Sopenharmony_ci	  Say Y if you want to enable support for tagging frames for the
488c2ecf20Sopenharmony_ci	  Broadcom switches which place the tag after the MAC source address.
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ciconfig NET_DSA_TAG_BRCM_PREPEND
528c2ecf20Sopenharmony_ci	tristate "Tag driver for Broadcom switches using prepended headers"
538c2ecf20Sopenharmony_ci	select NET_DSA_TAG_BRCM_COMMON
548c2ecf20Sopenharmony_ci	help
558c2ecf20Sopenharmony_ci	  Say Y if you want to enable support for tagging frames for the
568c2ecf20Sopenharmony_ci	  Broadcom switches which places the tag before the Ethernet header
578c2ecf20Sopenharmony_ci	  (prepended).
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ciconfig NET_DSA_TAG_GSWIP
608c2ecf20Sopenharmony_ci	tristate "Tag driver for Lantiq / Intel GSWIP switches"
618c2ecf20Sopenharmony_ci	help
628c2ecf20Sopenharmony_ci	  Say Y or M if you want to enable support for tagging frames for the
638c2ecf20Sopenharmony_ci	  Lantiq / Intel GSWIP switches.
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ciconfig NET_DSA_TAG_DSA
668c2ecf20Sopenharmony_ci	tristate "Tag driver for Marvell switches using DSA headers"
678c2ecf20Sopenharmony_ci	help
688c2ecf20Sopenharmony_ci	  Say Y or M if you want to enable support for tagging frames for the
698c2ecf20Sopenharmony_ci	  Marvell switches which use DSA headers.
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ciconfig NET_DSA_TAG_EDSA
728c2ecf20Sopenharmony_ci	tristate "Tag driver for Marvell switches using EtherType DSA headers"
738c2ecf20Sopenharmony_ci	help
748c2ecf20Sopenharmony_ci	  Say Y or M if you want to enable support for tagging frames for the
758c2ecf20Sopenharmony_ci	  Marvell switches which use EtherType DSA headers.
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ciconfig NET_DSA_TAG_MTK
788c2ecf20Sopenharmony_ci	tristate "Tag driver for Mediatek switches"
798c2ecf20Sopenharmony_ci	help
808c2ecf20Sopenharmony_ci	  Say Y or M if you want to enable support for tagging frames for
818c2ecf20Sopenharmony_ci	  Mediatek switches.
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ciconfig NET_DSA_TAG_KSZ
848c2ecf20Sopenharmony_ci	tristate "Tag driver for Microchip 8795/9477/9893 families of switches"
858c2ecf20Sopenharmony_ci	help
868c2ecf20Sopenharmony_ci	  Say Y if you want to enable support for tagging frames for the
878c2ecf20Sopenharmony_ci	  Microchip 8795/9477/9893 families of switches.
888c2ecf20Sopenharmony_ci
898c2ecf20Sopenharmony_ciconfig NET_DSA_TAG_RTL4_A
908c2ecf20Sopenharmony_ci	tristate "Tag driver for Realtek 4 byte protocol A tags"
918c2ecf20Sopenharmony_ci	help
928c2ecf20Sopenharmony_ci	  Say Y or M if you want to enable support for tagging frames for the
938c2ecf20Sopenharmony_ci	  Realtek switches with 4 byte protocol A tags, sich as found in
948c2ecf20Sopenharmony_ci	  the Realtek RTL8366RB.
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ciconfig NET_DSA_TAG_OCELOT
978c2ecf20Sopenharmony_ci	tristate "Tag driver for Ocelot family of switches"
988c2ecf20Sopenharmony_ci	select PACKING
998c2ecf20Sopenharmony_ci	help
1008c2ecf20Sopenharmony_ci	  Say Y or M if you want to enable support for tagging frames for the
1018c2ecf20Sopenharmony_ci	  Ocelot switches (VSC7511, VSC7512, VSC7513, VSC7514, VSC9959).
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_ciconfig NET_DSA_TAG_QCA
1048c2ecf20Sopenharmony_ci	tristate "Tag driver for Qualcomm Atheros QCA8K switches"
1058c2ecf20Sopenharmony_ci	help
1068c2ecf20Sopenharmony_ci	  Say Y or M if you want to enable support for tagging frames for
1078c2ecf20Sopenharmony_ci	  the Qualcomm Atheros QCA8K switches.
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ciconfig NET_DSA_TAG_LAN9303
1108c2ecf20Sopenharmony_ci	tristate "Tag driver for SMSC/Microchip LAN9303 family of switches"
1118c2ecf20Sopenharmony_ci	help
1128c2ecf20Sopenharmony_ci	  Say Y or M if you want to enable support for tagging frames for the
1138c2ecf20Sopenharmony_ci	  SMSC/Microchip LAN9303 family of switches.
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ciconfig NET_DSA_TAG_SJA1105
1168c2ecf20Sopenharmony_ci	tristate "Tag driver for NXP SJA1105 switches"
1178c2ecf20Sopenharmony_ci	select NET_DSA_TAG_8021Q
1188c2ecf20Sopenharmony_ci	select PACKING
1198c2ecf20Sopenharmony_ci	help
1208c2ecf20Sopenharmony_ci	  Say Y or M if you want to enable support for tagging frames with the
1218c2ecf20Sopenharmony_ci	  NXP SJA1105 switch family. Both the native tagging protocol (which
1228c2ecf20Sopenharmony_ci	  is only for link-local traffic) as well as non-native tagging (based
1238c2ecf20Sopenharmony_ci	  on a custom 802.1Q VLAN header) are available.
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ciconfig NET_DSA_TAG_TRAILER
1268c2ecf20Sopenharmony_ci	tristate "Tag driver for switches using a trailer tag"
1278c2ecf20Sopenharmony_ci	help
1288c2ecf20Sopenharmony_ci	  Say Y or M if you want to enable support for tagging frames at
1298c2ecf20Sopenharmony_ci	  with a trailed. e.g. Marvell 88E6060.
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_ciendif
132