xref: /linux/net/dsa/Kconfig (revision ebf68996de0ab250c5d520eb2291ab65643e9a1e)
1# SPDX-License-Identifier: GPL-2.0-only
2config HAVE_NET_DSA
3	def_bool y
4	depends on INET && NETDEVICES && !S390
5
6# Drivers must select NET_DSA and the appropriate tagging format
7
8menuconfig NET_DSA
9	tristate "Distributed Switch Architecture"
10	depends on HAVE_NET_DSA
11	depends on BRIDGE || BRIDGE=n
12	select NET_SWITCHDEV
13	select PHYLINK
14	select NET_DEVLINK
15	---help---
16	  Say Y if you want to enable support for the hardware switches supported
17	  by the Distributed Switch Architecture.
18
19if NET_DSA
20
21# tagging formats
22config NET_DSA_TAG_8021Q
23	tristate "Tag driver for switches using custom 802.1Q VLAN headers"
24	select VLAN_8021Q
25	help
26	  Unlike the other tagging protocols, the 802.1Q config option simply
27	  provides helpers for other tagging implementations that might rely on
28	  VLAN in one way or another. It is not a complete solution.
29
30	  Drivers which use these helpers should select this as dependency.
31
32config NET_DSA_TAG_BRCM_COMMON
33	tristate
34	default n
35
36config NET_DSA_TAG_BRCM
37	tristate "Tag driver for Broadcom switches using in-frame headers"
38	select NET_DSA_TAG_BRCM_COMMON
39	help
40	  Say Y if you want to enable support for tagging frames for the
41	  Broadcom switches which place the tag after the MAC source address.
42
43
44config NET_DSA_TAG_BRCM_PREPEND
45	tristate "Tag driver for Broadcom switches using prepended headers"
46	select NET_DSA_TAG_BRCM_COMMON
47	help
48	  Say Y if you want to enable support for tagging frames for the
49	  Broadcom switches which places the tag before the Ethernet header
50	  (prepended).
51
52config NET_DSA_TAG_GSWIP
53	tristate "Tag driver for Lantiq / Intel GSWIP switches"
54	help
55	  Say Y or M if you want to enable support for tagging frames for the
56	  Lantiq / Intel GSWIP switches.
57
58config NET_DSA_TAG_DSA
59	tristate "Tag driver for Marvell switches using DSA headers"
60	help
61	  Say Y or M if you want to enable support for tagging frames for the
62	  Marvell switches which use DSA headers.
63
64config NET_DSA_TAG_EDSA
65	tristate "Tag driver for Marvell switches using EtherType DSA headers"
66	help
67	  Say Y or M if you want to enable support for tagging frames for the
68	  Marvell switches which use EtherType DSA headers.
69
70config NET_DSA_TAG_MTK
71	tristate "Tag driver for Mediatek switches"
72	help
73	  Say Y or M if you want to enable support for tagging frames for
74	  Mediatek switches.
75
76config NET_DSA_TAG_KSZ_COMMON
77	tristate
78	default n
79
80config NET_DSA_TAG_KSZ
81	tristate "Tag driver for Microchip 9893 family of switches"
82	select NET_DSA_TAG_KSZ_COMMON
83	help
84	  Say Y if you want to enable support for tagging frames for the
85	  Microchip 9893 family of switches.
86
87config NET_DSA_TAG_KSZ9477
88	tristate "Tag driver for Microchip 9477 family of switches"
89	select NET_DSA_TAG_KSZ_COMMON
90	help
91	  Say Y if you want to enable support for tagging frames for the
92	  Microchip 9477 family of switches.
93
94config NET_DSA_TAG_QCA
95	tristate "Tag driver for Qualcomm Atheros QCA8K switches"
96	help
97	  Say Y or M if you want to enable support for tagging frames for
98	  the Qualcomm Atheros QCA8K switches.
99
100config NET_DSA_TAG_LAN9303
101	tristate "Tag driver for SMSC/Microchip LAN9303 family of switches"
102	help
103	  Say Y or M if you want to enable support for tagging frames for the
104	  SMSC/Microchip LAN9303 family of switches.
105
106config NET_DSA_TAG_SJA1105
107	tristate "Tag driver for NXP SJA1105 switches"
108	select NET_DSA_TAG_8021Q
109	help
110	  Say Y or M if you want to enable support for tagging frames with the
111	  NXP SJA1105 switch family. Both the native tagging protocol (which
112	  is only for link-local traffic) as well as non-native tagging (based
113	  on a custom 802.1Q VLAN header) are available.
114
115config NET_DSA_TAG_TRAILER
116	tristate "Tag driver for switches using a trailer tag"
117	help
118	  Say Y or M if you want to enable support for tagging frames at
119	  with a trailed. e.g. Marvell 88E6060.
120
121endif
122