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