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