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