xref: /linux/net/dsa/Kconfig (revision 91ec2035134982b98fab0609a9fd8480e8217dc1)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2b3422a31SBen Hutchings
30b9f9dfbSAndrew Lunnmenuconfig NET_DSA
4c6f15070SMathieu Olivari	tristate "Distributed Switch Architecture"
5ee0ab7a2SAndrew Lunn	depends on BRIDGE || BRIDGE=n
694ead4caSFlorian Fainelli	depends on HSR || HSR=n
7227d7206SAlexander Lobakin	depends on INET && NETDEVICES
8e131a563SAlexander Lobakin	select GRO_CELLS
93a89eaa6SVivien Didelot	select NET_SWITCHDEV
1011d8f3ddSFlorian Fainelli	select PHYLINK
11f6b19b35SJiri Pirko	select NET_DEVLINK
124a52dd8fSOleksij Rempel	imply NET_SELFTESTS
13a7f7f624SMasahiro Yamada	help
14c6f15070SMathieu Olivari	  Say Y if you want to enable support for the hardware switches supported
15c6f15070SMathieu Olivari	  by the Distributed Switch Architecture.
1691da11f8SLennert Buytenhek
17b3422a31SBen Hutchingsif NET_DSA
1891da11f8SLennert Buytenhek
19227d7206SAlexander Lobakin# Drivers must select the appropriate tagging format(s)
20227d7206SAlexander Lobakin
21d2be3204SVladimir Olteanconfig NET_DSA_TAG_NONE
22d2be3204SVladimir Oltean	tristate "No-op tag driver"
23d2be3204SVladimir Oltean	help
24d2be3204SVladimir Oltean	  Say Y or M if you want to enable support for switches which don't tag
25d2be3204SVladimir Oltean	  frames over the CPU port.
26d2be3204SVladimir Oltean
2748fda74fSOleksij Rempelconfig NET_DSA_TAG_AR9331
2848fda74fSOleksij Rempel	tristate "Tag driver for Atheros AR9331 SoC with built-in switch"
2948fda74fSOleksij Rempel	help
3048fda74fSOleksij Rempel	  Say Y or M if you want to enable support for tagging frames for
3148fda74fSOleksij Rempel	  the Atheros AR9331 SoC with built-in switch.
3248fda74fSOleksij Rempel
330b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_BRCM_COMMON
340b9f9dfbSAndrew Lunn	tristate
350b9f9dfbSAndrew Lunn	default n
360b9f9dfbSAndrew Lunn
375037d532SFlorian Fainelliconfig NET_DSA_TAG_BRCM
380b9f9dfbSAndrew Lunn	tristate "Tag driver for Broadcom switches using in-frame headers"
390b9f9dfbSAndrew Lunn	select NET_DSA_TAG_BRCM_COMMON
400b9f9dfbSAndrew Lunn	help
410b9f9dfbSAndrew Lunn	  Say Y if you want to enable support for tagging frames for the
420b9f9dfbSAndrew Lunn	  Broadcom switches which place the tag after the MAC source address.
430b9f9dfbSAndrew Lunn
44964dbf18SÁlvaro Fernández Rojasconfig NET_DSA_TAG_BRCM_LEGACY
45ef07df39SÁlvaro Fernández Rojas	tristate "Tag driver for BCM63xx legacy switches using in-frame headers"
46964dbf18SÁlvaro Fernández Rojas	select NET_DSA_TAG_BRCM_COMMON
47964dbf18SÁlvaro Fernández Rojas	help
48964dbf18SÁlvaro Fernández Rojas	  Say Y if you want to enable support for tagging frames for the
49ef07df39SÁlvaro Fernández Rojas	  BCM63xx legacy switches which place the tag after the MAC source
50964dbf18SÁlvaro Fernández Rojas	  address.
51ef07df39SÁlvaro Fernández Rojas	  This tag is used in BCM63xx legacy switches which work without the
52ef07df39SÁlvaro Fernández Rojas	  original FCS and length before the tag insertion.
53ef07df39SÁlvaro Fernández Rojas
54ef07df39SÁlvaro Fernández Rojasconfig NET_DSA_TAG_BRCM_LEGACY_FCS
55ef07df39SÁlvaro Fernández Rojas	tristate "Tag driver for BCM53xx legacy switches using in-frame headers"
56ef07df39SÁlvaro Fernández Rojas	select NET_DSA_TAG_BRCM_COMMON
57ef07df39SÁlvaro Fernández Rojas	help
58ef07df39SÁlvaro Fernández Rojas	  Say Y if you want to enable support for tagging frames for the
59ef07df39SÁlvaro Fernández Rojas	  BCM53xx legacy switches which place the tag after the MAC source
60ef07df39SÁlvaro Fernández Rojas	  address.
61ef07df39SÁlvaro Fernández Rojas	  This tag is used in BCM53xx legacy switches which expect original
62ef07df39SÁlvaro Fernández Rojas	  FCS and length before the tag insertion to be present.
635037d532SFlorian Fainelli
64b74b70c4SFlorian Fainelliconfig NET_DSA_TAG_BRCM_PREPEND
650b9f9dfbSAndrew Lunn	tristate "Tag driver for Broadcom switches using prepended headers"
660b9f9dfbSAndrew Lunn	select NET_DSA_TAG_BRCM_COMMON
670b9f9dfbSAndrew Lunn	help
680b9f9dfbSAndrew Lunn	  Say Y if you want to enable support for tagging frames for the
690b9f9dfbSAndrew Lunn	  Broadcom switches which places the tag before the Ethernet header
700b9f9dfbSAndrew Lunn	  (prepended).
7191da11f8SLennert Buytenhek
7201ef09caSKurt Kanzenbachconfig NET_DSA_TAG_HELLCREEK
7301ef09caSKurt Kanzenbach	tristate "Tag driver for Hirschmann Hellcreek TSN switches"
7401ef09caSKurt Kanzenbach	help
7501ef09caSKurt Kanzenbach	  Say Y or M if you want to enable support for tagging frames
7601ef09caSKurt Kanzenbach	  for the Hirschmann Hellcreek TSN switches.
7701ef09caSKurt Kanzenbach
7879691192SHauke Mehrtensconfig NET_DSA_TAG_GSWIP
790b9f9dfbSAndrew Lunn	tristate "Tag driver for Lantiq / Intel GSWIP switches"
800b9f9dfbSAndrew Lunn	help
810b9f9dfbSAndrew Lunn	  Say Y or M if you want to enable support for tagging frames for the
820b9f9dfbSAndrew Lunn	  Lantiq / Intel GSWIP switches.
8379691192SHauke Mehrtens
84469ee5feSTobias Waldekranzconfig NET_DSA_TAG_DSA_COMMON
85469ee5feSTobias Waldekranz	tristate
86469ee5feSTobias Waldekranz
870b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_DSA
880b9f9dfbSAndrew Lunn	tristate "Tag driver for Marvell switches using DSA headers"
89469ee5feSTobias Waldekranz	select NET_DSA_TAG_DSA_COMMON
900b9f9dfbSAndrew Lunn	help
910b9f9dfbSAndrew Lunn	  Say Y or M if you want to enable support for tagging frames for the
920b9f9dfbSAndrew Lunn	  Marvell switches which use DSA headers.
938b8010fbSWoojung Huh
940b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_EDSA
950b9f9dfbSAndrew Lunn	tristate "Tag driver for Marvell switches using EtherType DSA headers"
96469ee5feSTobias Waldekranz	select NET_DSA_TAG_DSA_COMMON
970b9f9dfbSAndrew Lunn	help
980b9f9dfbSAndrew Lunn	  Say Y or M if you want to enable support for tagging frames for the
990b9f9dfbSAndrew Lunn	  Marvell switches which use EtherType DSA headers.
100cafdc45cSJohn Crispin
101*44204fd4SJoris Vaisvilaconfig NET_DSA_TAG_MT7628
102*44204fd4SJoris Vaisvila	tristate "Tag driver for the MT7628 embedded switch"
103*44204fd4SJoris Vaisvila	help
104*44204fd4SJoris Vaisvila	  Say Y or M if you want to enable support for tagging frames for the
105*44204fd4SJoris Vaisvila	  switch embedded in the MT7628 SoC.
106*44204fd4SJoris Vaisvila
1075cd8985aSSean Wangconfig NET_DSA_TAG_MTK
1080b9f9dfbSAndrew Lunn	tristate "Tag driver for Mediatek switches"
1090b9f9dfbSAndrew Lunn	help
1100b9f9dfbSAndrew Lunn	  Say Y or M if you want to enable support for tagging frames for
1110b9f9dfbSAndrew Lunn	  Mediatek switches.
112e8fe177aSJuergen Beisert
11385ee9874SDaniel Golleconfig NET_DSA_TAG_MXL_862XX
11485ee9874SDaniel Golle	tristate "Tag driver for MaxLinear MxL862xx switches"
11585ee9874SDaniel Golle	help
11685ee9874SDaniel Golle	  Say Y or M if you want to enable support for tagging frames for the
11785ee9874SDaniel Golle	  MaxLinear MxL86252 and MxL86282 switches using their native 8-byte
11885ee9874SDaniel Golle	  tagging protocol.
11985ee9874SDaniel Golle
120c6230446SDaniel Golleconfig NET_DSA_TAG_MXL_GSW1XX
121c6230446SDaniel Golle	tristate "Tag driver for MaxLinear GSW1xx switches"
122c6230446SDaniel Golle	help
123c6230446SDaniel Golle	  The GSW1xx family of switches supports an 8-byte special tag which
124c6230446SDaniel Golle	  can be used on the CPU port of the switch.
125c6230446SDaniel Golle	  Say Y or M if you want to enable support for tagging frames for
126c6230446SDaniel Golle	  MaxLinear GSW1xx switches.
127c6230446SDaniel Golle
1280b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_KSZ
129092f8751SPrasanna Vengateshan	tristate "Tag driver for Microchip 8795/937x/9477/9893 families of switches"
1300b9f9dfbSAndrew Lunn	help
1310b9f9dfbSAndrew Lunn	  Say Y if you want to enable support for tagging frames for the
132092f8751SPrasanna Vengateshan	  Microchip 8795/937x/9477/9893 families of switches.
1330b9f9dfbSAndrew Lunn
1340850005cSWei Fangconfig NET_DSA_TAG_NETC
1350850005cSWei Fang	tristate "Tag driver for NXP NETC switches"
1360850005cSWei Fang	help
1370850005cSWei Fang	  Say Y or M if you want to enable support for the NXP Switch Tag (NST),
1380850005cSWei Fang	  as implemented by NXP NETC switches having version 4.3 or later. The
1390850005cSWei Fang	  switch tag is a proprietary header added to frames after the source
1400850005cSWei Fang	  MAC address, it has 3 types and each type has different subtypes, so
1410850005cSWei Fang	  its length depends on the type and subtype of the tag, the maximum
1420850005cSWei Fang	  length is 14 bytes.
1430850005cSWei Fang
1448dce89aaSVladimir Olteanconfig NET_DSA_TAG_OCELOT
1457c83a7c5SVladimir Oltean	tristate "Tag driver for Ocelot family of switches, using NPI port"
1468dce89aaSVladimir Oltean	select PACKING
1478dce89aaSVladimir Oltean	help
1487c83a7c5SVladimir Oltean	  Say Y or M if you want to enable NPI tagging for the Ocelot switches
1497c83a7c5SVladimir Oltean	  (VSC7511, VSC7512, VSC7513, VSC7514, VSC9953, VSC9959). In this mode,
1507c83a7c5SVladimir Oltean	  the frames over the Ethernet CPU port are prepended with a
1517c83a7c5SVladimir Oltean	  hardware-defined injection/extraction frame header.  Flow control
1527c83a7c5SVladimir Oltean	  (PAUSE frames) over the CPU port is not supported when operating in
1537c83a7c5SVladimir Oltean	  this mode.
1547c83a7c5SVladimir Oltean
1557c83a7c5SVladimir Olteanconfig NET_DSA_TAG_OCELOT_8021Q
1567c83a7c5SVladimir Oltean	tristate "Tag driver for Ocelot family of switches, using VLAN"
1577c83a7c5SVladimir Oltean	help
1587c83a7c5SVladimir Oltean	  Say Y or M if you want to enable support for tagging frames with a
1597c83a7c5SVladimir Oltean	  custom VLAN-based header. Frames that require timestamping, such as
1607c83a7c5SVladimir Oltean	  PTP, are not delivered over Ethernet but over register-based MMIO.
1617c83a7c5SVladimir Oltean	  Flow control over the CPU port is functional in this mode. When using
1627c83a7c5SVladimir Oltean	  this mode, less TCAM resources (VCAP IS1, IS2, ES0) are available for
1637c83a7c5SVladimir Oltean	  use with tc-flower.
1648dce89aaSVladimir Oltean
165eb7b7211SAndrew Lunnconfig NET_DSA_TAG_QCA
1660b9f9dfbSAndrew Lunn	tristate "Tag driver for Qualcomm Atheros QCA8K switches"
1670b9f9dfbSAndrew Lunn	help
1680b9f9dfbSAndrew Lunn	  Say Y or M if you want to enable support for tagging frames for
1690b9f9dfbSAndrew Lunn	  the Qualcomm Atheros QCA8K switches.
1700b9f9dfbSAndrew Lunn
1719cb8eddaSAlvin Šipragaconfig NET_DSA_TAG_RTL4_A
1729cb8eddaSAlvin Šipraga	tristate "Tag driver for Realtek 4 byte protocol A tags"
1739cb8eddaSAlvin Šipraga	help
1749cb8eddaSAlvin Šipraga	  Say Y or M if you want to enable support for tagging frames for the
175983e44f0SChris Packham	  Realtek switches with 4 byte protocol A tags, such as found in
1769cb8eddaSAlvin Šipraga	  the Realtek RTL8366RB.
1779cb8eddaSAlvin Šipraga
1781521d5adSAlvin Šipragaconfig NET_DSA_TAG_RTL8_4
1791521d5adSAlvin Šipraga	tristate "Tag driver for Realtek 8 byte protocol 4 tags"
1801521d5adSAlvin Šipraga	help
1811521d5adSAlvin Šipraga	  Say Y or M if you want to enable support for tagging frames for Realtek
1821521d5adSAlvin Šipraga	  switches with 8 byte protocol 4 tags, such as the Realtek RTL8365MB-VC.
1831521d5adSAlvin Šipraga
184a08d6a6dSClément Légerconfig NET_DSA_TAG_RZN1_A5PSW
185a08d6a6dSClément Léger	tristate "Tag driver for Renesas RZ/N1 A5PSW switch"
186a08d6a6dSClément Léger	help
187a08d6a6dSClément Léger	  Say Y or M if you want to enable support for tagging frames for
188a08d6a6dSClément Léger	  Renesas RZ/N1 embedded switch that uses an 8 byte tag located after
189a08d6a6dSClément Léger	  destination MAC address.
190a08d6a6dSClément Léger
1910b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_LAN9303
1920b9f9dfbSAndrew Lunn	tristate "Tag driver for SMSC/Microchip LAN9303 family of switches"
1930b9f9dfbSAndrew Lunn	help
1940b9f9dfbSAndrew Lunn	  Say Y or M if you want to enable support for tagging frames for the
1950b9f9dfbSAndrew Lunn	  SMSC/Microchip LAN9303 family of switches.
1960b9f9dfbSAndrew Lunn
197227d07a0SVladimir Olteanconfig NET_DSA_TAG_SJA1105
198227d07a0SVladimir Oltean	tristate "Tag driver for NXP SJA1105 switches"
1996358f38cSVladimir Oltean	select PACKING
200227d07a0SVladimir Oltean	help
201227d07a0SVladimir Oltean	  Say Y or M if you want to enable support for tagging frames with the
202227d07a0SVladimir Oltean	  NXP SJA1105 switch family. Both the native tagging protocol (which
203227d07a0SVladimir Oltean	  is only for link-local traffic) as well as non-native tagging (based
204227d07a0SVladimir Oltean	  on a custom 802.1Q VLAN header) are available.
205227d07a0SVladimir Oltean
2060b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_TRAILER
2070b9f9dfbSAndrew Lunn	tristate "Tag driver for switches using a trailer tag"
2080b9f9dfbSAndrew Lunn	help
2090b9f9dfbSAndrew Lunn	  Say Y or M if you want to enable support for tagging frames at
2100b9f9dfbSAndrew Lunn	  with a trailed. e.g. Marvell 88E6060.
211e8fe177aSJuergen Beisert
2126c87e1a4SPawel Dembickiconfig NET_DSA_TAG_VSC73XX_8021Q
2136c87e1a4SPawel Dembicki	tristate "Tag driver for Microchip/Vitesse VSC73xx family of switches, using VLAN"
2146c87e1a4SPawel Dembicki	help
2156c87e1a4SPawel Dembicki	  Say Y or M if you want to enable support for tagging frames with a
2166c87e1a4SPawel Dembicki	  custom VLAN-based header.
2176c87e1a4SPawel Dembicki
21854a52823SGeorge McCollisterconfig NET_DSA_TAG_XRS700X
21954a52823SGeorge McCollister	tristate "Tag driver for XRS700x switches"
22054a52823SGeorge McCollister	help
22154a52823SGeorge McCollister	  Say Y or M if you want to enable support for tagging frames for
22254a52823SGeorge McCollister	  Arrow SpeedChips XRS700x switches that use a single byte tag trailer.
22354a52823SGeorge McCollister
224ca470984SDavid Yangconfig NET_DSA_TAG_YT921X
225ca470984SDavid Yang	tristate "Tag driver for Motorcomm YT921x switches"
226ca470984SDavid Yang	help
227ca470984SDavid Yang	  Say Y or M if you want to enable support for tagging frames for
228ca470984SDavid Yang	  Motorcomm YT921x switches.
229ca470984SDavid Yang
230b3422a31SBen Hutchingsendif
231