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