xref: /linux/net/dsa/Kconfig (revision c79c3c34f75d72a066e292b10aa50fc758c97c89)
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 GRO_CELLS
13	select NET_SWITCHDEV
14	select PHYLINK
15	select NET_DEVLINK
16	help
17	  Say Y if you want to enable support for the hardware switches supported
18	  by the Distributed Switch Architecture.
19
20if NET_DSA
21
22# tagging formats
23config NET_DSA_TAG_8021Q
24	tristate
25	select VLAN_8021Q
26	help
27	  Unlike the other tagging protocols, the 802.1Q config option simply
28	  provides helpers for other tagging implementations that might rely on
29	  VLAN in one way or another. It is not a complete solution.
30
31	  Drivers which use these helpers should select this as dependency.
32
33config NET_DSA_TAG_AR9331
34	tristate "Tag driver for Atheros AR9331 SoC with built-in switch"
35	help
36	  Say Y or M if you want to enable support for tagging frames for
37	  the Atheros AR9331 SoC with built-in switch.
38
39config NET_DSA_TAG_BRCM_COMMON
40	tristate
41	default n
42
43config NET_DSA_TAG_BRCM
44	tristate "Tag driver for Broadcom switches using in-frame headers"
45	select NET_DSA_TAG_BRCM_COMMON
46	help
47	  Say Y if you want to enable support for tagging frames for the
48	  Broadcom switches which place the tag after the MAC source address.
49
50
51config NET_DSA_TAG_BRCM_PREPEND
52	tristate "Tag driver for Broadcom switches using prepended headers"
53	select NET_DSA_TAG_BRCM_COMMON
54	help
55	  Say Y if you want to enable support for tagging frames for the
56	  Broadcom switches which places the tag before the Ethernet header
57	  (prepended).
58
59config NET_DSA_TAG_HELLCREEK
60	tristate "Tag driver for Hirschmann Hellcreek TSN switches"
61	help
62	  Say Y or M if you want to enable support for tagging frames
63	  for the Hirschmann Hellcreek TSN switches.
64
65config NET_DSA_TAG_GSWIP
66	tristate "Tag driver for Lantiq / Intel GSWIP switches"
67	help
68	  Say Y or M if you want to enable support for tagging frames for the
69	  Lantiq / Intel GSWIP switches.
70
71config NET_DSA_TAG_DSA_COMMON
72	tristate
73
74config NET_DSA_TAG_DSA
75	tristate "Tag driver for Marvell switches using DSA headers"
76	select NET_DSA_TAG_DSA_COMMON
77	help
78	  Say Y or M if you want to enable support for tagging frames for the
79	  Marvell switches which use DSA headers.
80
81config NET_DSA_TAG_EDSA
82	tristate "Tag driver for Marvell switches using EtherType DSA headers"
83	select NET_DSA_TAG_DSA_COMMON
84	help
85	  Say Y or M if you want to enable support for tagging frames for the
86	  Marvell switches which use EtherType DSA headers.
87
88config NET_DSA_TAG_MTK
89	tristate "Tag driver for Mediatek switches"
90	help
91	  Say Y or M if you want to enable support for tagging frames for
92	  Mediatek switches.
93
94config NET_DSA_TAG_KSZ
95	tristate "Tag driver for Microchip 8795/9477/9893 families of switches"
96	help
97	  Say Y if you want to enable support for tagging frames for the
98	  Microchip 8795/9477/9893 families of switches.
99
100config NET_DSA_TAG_RTL4_A
101	tristate "Tag driver for Realtek 4 byte protocol A tags"
102	help
103	  Say Y or M if you want to enable support for tagging frames for the
104	  Realtek switches with 4 byte protocol A tags, sich as found in
105	  the Realtek RTL8366RB.
106
107config NET_DSA_TAG_OCELOT
108	tristate "Tag driver for Ocelot family of switches, using NPI port"
109	select PACKING
110	help
111	  Say Y or M if you want to enable NPI tagging for the Ocelot switches
112	  (VSC7511, VSC7512, VSC7513, VSC7514, VSC9953, VSC9959). In this mode,
113	  the frames over the Ethernet CPU port are prepended with a
114	  hardware-defined injection/extraction frame header.  Flow control
115	  (PAUSE frames) over the CPU port is not supported when operating in
116	  this mode.
117
118config NET_DSA_TAG_OCELOT_8021Q
119	tristate "Tag driver for Ocelot family of switches, using VLAN"
120	select NET_DSA_TAG_8021Q
121	help
122	  Say Y or M if you want to enable support for tagging frames with a
123	  custom VLAN-based header. Frames that require timestamping, such as
124	  PTP, are not delivered over Ethernet but over register-based MMIO.
125	  Flow control over the CPU port is functional in this mode. When using
126	  this mode, less TCAM resources (VCAP IS1, IS2, ES0) are available for
127	  use with tc-flower.
128
129config NET_DSA_TAG_QCA
130	tristate "Tag driver for Qualcomm Atheros QCA8K switches"
131	help
132	  Say Y or M if you want to enable support for tagging frames for
133	  the Qualcomm Atheros QCA8K switches.
134
135config NET_DSA_TAG_LAN9303
136	tristate "Tag driver for SMSC/Microchip LAN9303 family of switches"
137	help
138	  Say Y or M if you want to enable support for tagging frames for the
139	  SMSC/Microchip LAN9303 family of switches.
140
141config NET_DSA_TAG_SJA1105
142	tristate "Tag driver for NXP SJA1105 switches"
143	select NET_DSA_TAG_8021Q
144	select PACKING
145	help
146	  Say Y or M if you want to enable support for tagging frames with the
147	  NXP SJA1105 switch family. Both the native tagging protocol (which
148	  is only for link-local traffic) as well as non-native tagging (based
149	  on a custom 802.1Q VLAN header) are available.
150
151config NET_DSA_TAG_TRAILER
152	tristate "Tag driver for switches using a trailer tag"
153	help
154	  Say Y or M if you want to enable support for tagging frames at
155	  with a trailed. e.g. Marvell 88E6060.
156
157config NET_DSA_TAG_XRS700X
158	tristate "Tag driver for XRS700x switches"
159	help
160	  Say Y or M if you want to enable support for tagging frames for
161	  Arrow SpeedChips XRS700x switches that use a single byte tag trailer.
162
163endif
164