xref: /openbmc/linux/net/dsa/Kconfig (revision de8c12110a130337c8e7e7b8250de0580e644dee)
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	select 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	select PACKING
115	help
116	  Say Y or M if you want to enable NPI tagging for the Ocelot switches
117	  (VSC7511, VSC7512, VSC7513, VSC7514, VSC9953, VSC9959). In this mode,
118	  the frames over the Ethernet CPU port are prepended with a
119	  hardware-defined injection/extraction frame header.  Flow control
120	  (PAUSE frames) over the CPU port is not supported when operating in
121	  this mode.
122
123config NET_DSA_TAG_OCELOT_8021Q
124	tristate "Tag driver for Ocelot family of switches, using VLAN"
125	depends on MSCC_OCELOT_SWITCH_LIB || \
126	          (MSCC_OCELOT_SWITCH_LIB=n && COMPILE_TEST)
127	select NET_DSA_TAG_8021Q
128	help
129	  Say Y or M if you want to enable support for tagging frames with a
130	  custom VLAN-based header. Frames that require timestamping, such as
131	  PTP, are not delivered over Ethernet but over register-based MMIO.
132	  Flow control over the CPU port is functional in this mode. When using
133	  this mode, less TCAM resources (VCAP IS1, IS2, ES0) are available for
134	  use with tc-flower.
135
136config NET_DSA_TAG_QCA
137	tristate "Tag driver for Qualcomm Atheros QCA8K switches"
138	help
139	  Say Y or M if you want to enable support for tagging frames for
140	  the Qualcomm Atheros QCA8K switches.
141
142config NET_DSA_TAG_LAN9303
143	tristate "Tag driver for SMSC/Microchip LAN9303 family of switches"
144	help
145	  Say Y or M if you want to enable support for tagging frames for the
146	  SMSC/Microchip LAN9303 family of switches.
147
148config NET_DSA_TAG_SJA1105
149	tristate "Tag driver for NXP SJA1105 switches"
150	select NET_DSA_TAG_8021Q
151	select PACKING
152	help
153	  Say Y or M if you want to enable support for tagging frames with the
154	  NXP SJA1105 switch family. Both the native tagging protocol (which
155	  is only for link-local traffic) as well as non-native tagging (based
156	  on a custom 802.1Q VLAN header) are available.
157
158config NET_DSA_TAG_TRAILER
159	tristate "Tag driver for switches using a trailer tag"
160	help
161	  Say Y or M if you want to enable support for tagging frames at
162	  with a trailed. e.g. Marvell 88E6060.
163
164config NET_DSA_TAG_XRS700X
165	tristate "Tag driver for XRS700x switches"
166	help
167	  Say Y or M if you want to enable support for tagging frames for
168	  Arrow SpeedChips XRS700x switches that use a single byte tag trailer.
169
170endif
171