xref: /openbmc/linux/net/dsa/Kconfig (revision 01c2c1ad)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2b3422a31SBen Hutchingsconfig HAVE_NET_DSA
3b3422a31SBen Hutchings	def_bool y
43a89eaa6SVivien Didelot	depends on INET && NETDEVICES && !S390
5b3422a31SBen Hutchings
6b3422a31SBen Hutchings# Drivers must select NET_DSA and the appropriate tagging format
7b3422a31SBen Hutchings
80b9f9dfbSAndrew Lunnmenuconfig NET_DSA
9c6f15070SMathieu Olivari	tristate "Distributed Switch Architecture"
10f4b6bcc7SJakub Kicinski	depends on HAVE_NET_DSA
11ee0ab7a2SAndrew Lunn	depends on BRIDGE || BRIDGE=n
1294ead4caSFlorian Fainelli	depends on HSR || HSR=n
13e131a563SAlexander Lobakin	select GRO_CELLS
143a89eaa6SVivien Didelot	select NET_SWITCHDEV
1511d8f3ddSFlorian Fainelli	select PHYLINK
16f6b19b35SJiri Pirko	select NET_DEVLINK
17a7f7f624SMasahiro Yamada	help
18c6f15070SMathieu Olivari	  Say Y if you want to enable support for the hardware switches supported
19c6f15070SMathieu Olivari	  by the Distributed Switch Architecture.
2091da11f8SLennert Buytenhek
21b3422a31SBen Hutchingsif NET_DSA
2291da11f8SLennert Buytenhek
23f9bbe447SVladimir Oltean# tagging formats
24f9bbe447SVladimir Olteanconfig NET_DSA_TAG_8021Q
25129bd7caSFlorian Fainelli	tristate
26f9bbe447SVladimir Oltean	select VLAN_8021Q
27f9bbe447SVladimir Oltean	help
28f9bbe447SVladimir Oltean	  Unlike the other tagging protocols, the 802.1Q config option simply
29f9bbe447SVladimir Oltean	  provides helpers for other tagging implementations that might rely on
30f9bbe447SVladimir Oltean	  VLAN in one way or another. It is not a complete solution.
31f9bbe447SVladimir Oltean
32f9bbe447SVladimir Oltean	  Drivers which use these helpers should select this as dependency.
33f9bbe447SVladimir Oltean
3448fda74fSOleksij Rempelconfig NET_DSA_TAG_AR9331
3548fda74fSOleksij Rempel	tristate "Tag driver for Atheros AR9331 SoC with built-in switch"
3648fda74fSOleksij Rempel	help
3748fda74fSOleksij Rempel	  Say Y or M if you want to enable support for tagging frames for
3848fda74fSOleksij Rempel	  the Atheros AR9331 SoC with built-in switch.
3948fda74fSOleksij Rempel
400b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_BRCM_COMMON
410b9f9dfbSAndrew Lunn	tristate
420b9f9dfbSAndrew Lunn	default n
430b9f9dfbSAndrew Lunn
445037d532SFlorian Fainelliconfig NET_DSA_TAG_BRCM
450b9f9dfbSAndrew Lunn	tristate "Tag driver for Broadcom switches using in-frame headers"
460b9f9dfbSAndrew Lunn	select NET_DSA_TAG_BRCM_COMMON
470b9f9dfbSAndrew Lunn	help
480b9f9dfbSAndrew Lunn	  Say Y if you want to enable support for tagging frames for the
490b9f9dfbSAndrew Lunn	  Broadcom switches which place the tag after the MAC source address.
500b9f9dfbSAndrew Lunn
515037d532SFlorian Fainelli
52b74b70c4SFlorian Fainelliconfig NET_DSA_TAG_BRCM_PREPEND
530b9f9dfbSAndrew Lunn	tristate "Tag driver for Broadcom switches using prepended headers"
540b9f9dfbSAndrew Lunn	select NET_DSA_TAG_BRCM_COMMON
550b9f9dfbSAndrew Lunn	help
560b9f9dfbSAndrew Lunn	  Say Y if you want to enable support for tagging frames for the
570b9f9dfbSAndrew Lunn	  Broadcom switches which places the tag before the Ethernet header
580b9f9dfbSAndrew Lunn	  (prepended).
5991da11f8SLennert Buytenhek
6001ef09caSKurt Kanzenbachconfig NET_DSA_TAG_HELLCREEK
6101ef09caSKurt Kanzenbach	tristate "Tag driver for Hirschmann Hellcreek TSN switches"
6201ef09caSKurt Kanzenbach	help
6301ef09caSKurt Kanzenbach	  Say Y or M if you want to enable support for tagging frames
6401ef09caSKurt Kanzenbach	  for the Hirschmann Hellcreek TSN switches.
6501ef09caSKurt Kanzenbach
6679691192SHauke Mehrtensconfig NET_DSA_TAG_GSWIP
670b9f9dfbSAndrew Lunn	tristate "Tag driver for Lantiq / Intel GSWIP switches"
680b9f9dfbSAndrew Lunn	help
690b9f9dfbSAndrew Lunn	  Say Y or M if you want to enable support for tagging frames for the
700b9f9dfbSAndrew Lunn	  Lantiq / Intel GSWIP switches.
7179691192SHauke Mehrtens
72469ee5feSTobias Waldekranzconfig NET_DSA_TAG_DSA_COMMON
73469ee5feSTobias Waldekranz	tristate
74469ee5feSTobias Waldekranz
750b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_DSA
760b9f9dfbSAndrew Lunn	tristate "Tag driver for Marvell switches using DSA headers"
77469ee5feSTobias Waldekranz	select NET_DSA_TAG_DSA_COMMON
780b9f9dfbSAndrew Lunn	help
790b9f9dfbSAndrew Lunn	  Say Y or M if you want to enable support for tagging frames for the
800b9f9dfbSAndrew Lunn	  Marvell switches which use DSA headers.
818b8010fbSWoojung Huh
820b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_EDSA
830b9f9dfbSAndrew Lunn	tristate "Tag driver for Marvell switches using EtherType DSA headers"
84469ee5feSTobias Waldekranz	select NET_DSA_TAG_DSA_COMMON
850b9f9dfbSAndrew Lunn	help
860b9f9dfbSAndrew Lunn	  Say Y or M if you want to enable support for tagging frames for the
870b9f9dfbSAndrew Lunn	  Marvell switches which use EtherType DSA headers.
88cafdc45cSJohn Crispin
895cd8985aSSean Wangconfig NET_DSA_TAG_MTK
900b9f9dfbSAndrew Lunn	tristate "Tag driver for Mediatek switches"
910b9f9dfbSAndrew Lunn	help
920b9f9dfbSAndrew Lunn	  Say Y or M if you want to enable support for tagging frames for
930b9f9dfbSAndrew Lunn	  Mediatek switches.
94e8fe177aSJuergen Beisert
950b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_KSZ
96f4073e91SGeorge McCollister	tristate "Tag driver for Microchip 8795/9477/9893 families of switches"
970b9f9dfbSAndrew Lunn	help
980b9f9dfbSAndrew Lunn	  Say Y if you want to enable support for tagging frames for the
99f4073e91SGeorge McCollister	  Microchip 8795/9477/9893 families of switches.
1000b9f9dfbSAndrew Lunn
101efd7fe68SLinus Walleijconfig NET_DSA_TAG_RTL4_A
102efd7fe68SLinus Walleij	tristate "Tag driver for Realtek 4 byte protocol A tags"
103efd7fe68SLinus Walleij	help
104efd7fe68SLinus Walleij	  Say Y or M if you want to enable support for tagging frames for the
105efd7fe68SLinus Walleij	  Realtek switches with 4 byte protocol A tags, sich as found in
106efd7fe68SLinus Walleij	  the Realtek RTL8366RB.
107efd7fe68SLinus Walleij
1088dce89aaSVladimir Olteanconfig NET_DSA_TAG_OCELOT
1097c83a7c5SVladimir Oltean	tristate "Tag driver for Ocelot family of switches, using NPI port"
1108dce89aaSVladimir Oltean	select PACKING
1118dce89aaSVladimir Oltean	help
1127c83a7c5SVladimir Oltean	  Say Y or M if you want to enable NPI tagging for the Ocelot switches
1137c83a7c5SVladimir Oltean	  (VSC7511, VSC7512, VSC7513, VSC7514, VSC9953, VSC9959). In this mode,
1147c83a7c5SVladimir Oltean	  the frames over the Ethernet CPU port are prepended with a
1157c83a7c5SVladimir Oltean	  hardware-defined injection/extraction frame header.  Flow control
1167c83a7c5SVladimir Oltean	  (PAUSE frames) over the CPU port is not supported when operating in
1177c83a7c5SVladimir Oltean	  this mode.
1187c83a7c5SVladimir Oltean
1197c83a7c5SVladimir Olteanconfig NET_DSA_TAG_OCELOT_8021Q
1207c83a7c5SVladimir Oltean	tristate "Tag driver for Ocelot family of switches, using VLAN"
121*01c2c1adSArnd Bergmann	depends on MSCC_OCELOT_SWITCH_LIB || \
122*01c2c1adSArnd Bergmann	          (MSCC_OCELOT_SWITCH_LIB=n && COMPILE_TEST)
1237c83a7c5SVladimir Oltean	select NET_DSA_TAG_8021Q
1247c83a7c5SVladimir Oltean	help
1257c83a7c5SVladimir Oltean	  Say Y or M if you want to enable support for tagging frames with a
1267c83a7c5SVladimir Oltean	  custom VLAN-based header. Frames that require timestamping, such as
1277c83a7c5SVladimir Oltean	  PTP, are not delivered over Ethernet but over register-based MMIO.
1287c83a7c5SVladimir Oltean	  Flow control over the CPU port is functional in this mode. When using
1297c83a7c5SVladimir Oltean	  this mode, less TCAM resources (VCAP IS1, IS2, ES0) are available for
1307c83a7c5SVladimir Oltean	  use with tc-flower.
1318dce89aaSVladimir Oltean
132eb7b7211SAndrew Lunnconfig NET_DSA_TAG_QCA
1330b9f9dfbSAndrew Lunn	tristate "Tag driver for Qualcomm Atheros QCA8K switches"
1340b9f9dfbSAndrew Lunn	help
1350b9f9dfbSAndrew Lunn	  Say Y or M if you want to enable support for tagging frames for
1360b9f9dfbSAndrew Lunn	  the Qualcomm Atheros QCA8K switches.
1370b9f9dfbSAndrew Lunn
1380b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_LAN9303
1390b9f9dfbSAndrew Lunn	tristate "Tag driver for SMSC/Microchip LAN9303 family of switches"
1400b9f9dfbSAndrew Lunn	help
1410b9f9dfbSAndrew Lunn	  Say Y or M if you want to enable support for tagging frames for the
1420b9f9dfbSAndrew Lunn	  SMSC/Microchip LAN9303 family of switches.
1430b9f9dfbSAndrew Lunn
144227d07a0SVladimir Olteanconfig NET_DSA_TAG_SJA1105
145227d07a0SVladimir Oltean	tristate "Tag driver for NXP SJA1105 switches"
146227d07a0SVladimir Oltean	select NET_DSA_TAG_8021Q
1476358f38cSVladimir Oltean	select PACKING
148227d07a0SVladimir Oltean	help
149227d07a0SVladimir Oltean	  Say Y or M if you want to enable support for tagging frames with the
150227d07a0SVladimir Oltean	  NXP SJA1105 switch family. Both the native tagging protocol (which
151227d07a0SVladimir Oltean	  is only for link-local traffic) as well as non-native tagging (based
152227d07a0SVladimir Oltean	  on a custom 802.1Q VLAN header) are available.
153227d07a0SVladimir Oltean
1540b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_TRAILER
1550b9f9dfbSAndrew Lunn	tristate "Tag driver for switches using a trailer tag"
1560b9f9dfbSAndrew Lunn	help
1570b9f9dfbSAndrew Lunn	  Say Y or M if you want to enable support for tagging frames at
1580b9f9dfbSAndrew Lunn	  with a trailed. e.g. Marvell 88E6060.
159e8fe177aSJuergen Beisert
16054a52823SGeorge McCollisterconfig NET_DSA_TAG_XRS700X
16154a52823SGeorge McCollister	tristate "Tag driver for XRS700x switches"
16254a52823SGeorge McCollister	help
16354a52823SGeorge McCollister	  Say Y or M if you want to enable support for tagging frames for
16454a52823SGeorge McCollister	  Arrow SpeedChips XRS700x switches that use a single byte tag trailer.
16554a52823SGeorge McCollister
166b3422a31SBen Hutchingsendif
167