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 51*964dbf18SÁlvaro Fernández Rojasconfig NET_DSA_TAG_BRCM_LEGACY 52*964dbf18SÁlvaro Fernández Rojas tristate "Tag driver for Broadcom legacy switches using in-frame headers" 53*964dbf18SÁlvaro Fernández Rojas select NET_DSA_TAG_BRCM_COMMON 54*964dbf18SÁlvaro Fernández Rojas help 55*964dbf18SÁlvaro Fernández Rojas Say Y if you want to enable support for tagging frames for the 56*964dbf18SÁlvaro Fernández Rojas Broadcom legacy switches which place the tag after the MAC source 57*964dbf18SÁlvaro Fernández Rojas address. 585037d532SFlorian Fainelli 59b74b70c4SFlorian Fainelliconfig NET_DSA_TAG_BRCM_PREPEND 600b9f9dfbSAndrew Lunn tristate "Tag driver for Broadcom switches using prepended headers" 610b9f9dfbSAndrew Lunn select NET_DSA_TAG_BRCM_COMMON 620b9f9dfbSAndrew Lunn help 630b9f9dfbSAndrew Lunn Say Y if you want to enable support for tagging frames for the 640b9f9dfbSAndrew Lunn Broadcom switches which places the tag before the Ethernet header 650b9f9dfbSAndrew Lunn (prepended). 6691da11f8SLennert Buytenhek 6701ef09caSKurt Kanzenbachconfig NET_DSA_TAG_HELLCREEK 6801ef09caSKurt Kanzenbach tristate "Tag driver for Hirschmann Hellcreek TSN switches" 6901ef09caSKurt Kanzenbach help 7001ef09caSKurt Kanzenbach Say Y or M if you want to enable support for tagging frames 7101ef09caSKurt Kanzenbach for the Hirschmann Hellcreek TSN switches. 7201ef09caSKurt Kanzenbach 7379691192SHauke Mehrtensconfig NET_DSA_TAG_GSWIP 740b9f9dfbSAndrew Lunn tristate "Tag driver for Lantiq / Intel GSWIP switches" 750b9f9dfbSAndrew Lunn help 760b9f9dfbSAndrew Lunn Say Y or M if you want to enable support for tagging frames for the 770b9f9dfbSAndrew Lunn Lantiq / Intel GSWIP switches. 7879691192SHauke Mehrtens 79469ee5feSTobias Waldekranzconfig NET_DSA_TAG_DSA_COMMON 80469ee5feSTobias Waldekranz tristate 81469ee5feSTobias Waldekranz 820b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_DSA 830b9f9dfbSAndrew Lunn tristate "Tag driver for Marvell switches using 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 DSA headers. 888b8010fbSWoojung Huh 890b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_EDSA 900b9f9dfbSAndrew Lunn tristate "Tag driver for Marvell switches using EtherType DSA headers" 91469ee5feSTobias Waldekranz select NET_DSA_TAG_DSA_COMMON 920b9f9dfbSAndrew Lunn help 930b9f9dfbSAndrew Lunn Say Y or M if you want to enable support for tagging frames for the 940b9f9dfbSAndrew Lunn Marvell switches which use EtherType DSA headers. 95cafdc45cSJohn Crispin 965cd8985aSSean Wangconfig NET_DSA_TAG_MTK 970b9f9dfbSAndrew Lunn tristate "Tag driver for Mediatek switches" 980b9f9dfbSAndrew Lunn help 990b9f9dfbSAndrew Lunn Say Y or M if you want to enable support for tagging frames for 1000b9f9dfbSAndrew Lunn Mediatek switches. 101e8fe177aSJuergen Beisert 1020b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_KSZ 103f4073e91SGeorge McCollister tristate "Tag driver for Microchip 8795/9477/9893 families of switches" 1040b9f9dfbSAndrew Lunn help 1050b9f9dfbSAndrew Lunn Say Y if you want to enable support for tagging frames for the 106f4073e91SGeorge McCollister Microchip 8795/9477/9893 families of switches. 1070b9f9dfbSAndrew Lunn 108efd7fe68SLinus Walleijconfig NET_DSA_TAG_RTL4_A 109efd7fe68SLinus Walleij tristate "Tag driver for Realtek 4 byte protocol A tags" 110efd7fe68SLinus Walleij help 111efd7fe68SLinus Walleij Say Y or M if you want to enable support for tagging frames for the 112efd7fe68SLinus Walleij Realtek switches with 4 byte protocol A tags, sich as found in 113efd7fe68SLinus Walleij the Realtek RTL8366RB. 114efd7fe68SLinus Walleij 1158dce89aaSVladimir Olteanconfig NET_DSA_TAG_OCELOT 1167c83a7c5SVladimir Oltean tristate "Tag driver for Ocelot family of switches, using NPI port" 1178dce89aaSVladimir Oltean select PACKING 1188dce89aaSVladimir Oltean help 1197c83a7c5SVladimir Oltean Say Y or M if you want to enable NPI tagging for the Ocelot switches 1207c83a7c5SVladimir Oltean (VSC7511, VSC7512, VSC7513, VSC7514, VSC9953, VSC9959). In this mode, 1217c83a7c5SVladimir Oltean the frames over the Ethernet CPU port are prepended with a 1227c83a7c5SVladimir Oltean hardware-defined injection/extraction frame header. Flow control 1237c83a7c5SVladimir Oltean (PAUSE frames) over the CPU port is not supported when operating in 1247c83a7c5SVladimir Oltean this mode. 1257c83a7c5SVladimir Oltean 1267c83a7c5SVladimir Olteanconfig NET_DSA_TAG_OCELOT_8021Q 1277c83a7c5SVladimir Oltean tristate "Tag driver for Ocelot family of switches, using VLAN" 12801c2c1adSArnd Bergmann depends on MSCC_OCELOT_SWITCH_LIB || \ 12901c2c1adSArnd Bergmann (MSCC_OCELOT_SWITCH_LIB=n && COMPILE_TEST) 1307c83a7c5SVladimir Oltean select NET_DSA_TAG_8021Q 1317c83a7c5SVladimir Oltean help 1327c83a7c5SVladimir Oltean Say Y or M if you want to enable support for tagging frames with a 1337c83a7c5SVladimir Oltean custom VLAN-based header. Frames that require timestamping, such as 1347c83a7c5SVladimir Oltean PTP, are not delivered over Ethernet but over register-based MMIO. 1357c83a7c5SVladimir Oltean Flow control over the CPU port is functional in this mode. When using 1367c83a7c5SVladimir Oltean this mode, less TCAM resources (VCAP IS1, IS2, ES0) are available for 1377c83a7c5SVladimir Oltean use with tc-flower. 1388dce89aaSVladimir Oltean 139eb7b7211SAndrew Lunnconfig NET_DSA_TAG_QCA 1400b9f9dfbSAndrew Lunn tristate "Tag driver for Qualcomm Atheros QCA8K switches" 1410b9f9dfbSAndrew Lunn help 1420b9f9dfbSAndrew Lunn Say Y or M if you want to enable support for tagging frames for 1430b9f9dfbSAndrew Lunn the Qualcomm Atheros QCA8K switches. 1440b9f9dfbSAndrew Lunn 1450b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_LAN9303 1460b9f9dfbSAndrew Lunn tristate "Tag driver for SMSC/Microchip LAN9303 family of switches" 1470b9f9dfbSAndrew Lunn help 1480b9f9dfbSAndrew Lunn Say Y or M if you want to enable support for tagging frames for the 1490b9f9dfbSAndrew Lunn SMSC/Microchip LAN9303 family of switches. 1500b9f9dfbSAndrew Lunn 151227d07a0SVladimir Olteanconfig NET_DSA_TAG_SJA1105 152227d07a0SVladimir Oltean tristate "Tag driver for NXP SJA1105 switches" 153227d07a0SVladimir Oltean select NET_DSA_TAG_8021Q 1546358f38cSVladimir Oltean select PACKING 155227d07a0SVladimir Oltean help 156227d07a0SVladimir Oltean Say Y or M if you want to enable support for tagging frames with the 157227d07a0SVladimir Oltean NXP SJA1105 switch family. Both the native tagging protocol (which 158227d07a0SVladimir Oltean is only for link-local traffic) as well as non-native tagging (based 159227d07a0SVladimir Oltean on a custom 802.1Q VLAN header) are available. 160227d07a0SVladimir Oltean 1610b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_TRAILER 1620b9f9dfbSAndrew Lunn tristate "Tag driver for switches using a trailer tag" 1630b9f9dfbSAndrew Lunn help 1640b9f9dfbSAndrew Lunn Say Y or M if you want to enable support for tagging frames at 1650b9f9dfbSAndrew Lunn with a trailed. e.g. Marvell 88E6060. 166e8fe177aSJuergen Beisert 16754a52823SGeorge McCollisterconfig NET_DSA_TAG_XRS700X 16854a52823SGeorge McCollister tristate "Tag driver for XRS700x switches" 16954a52823SGeorge McCollister help 17054a52823SGeorge McCollister Say Y or M if you want to enable support for tagging frames for 17154a52823SGeorge McCollister Arrow SpeedChips XRS700x switches that use a single byte tag trailer. 17254a52823SGeorge McCollister 173b3422a31SBen Hutchingsendif 174