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 12*4a52dd8fSOleksij 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 21f9bbe447SVladimir Olteanconfig NET_DSA_TAG_8021Q 22129bd7caSFlorian Fainelli tristate 23f9bbe447SVladimir Oltean select VLAN_8021Q 24f9bbe447SVladimir Oltean help 25f9bbe447SVladimir Oltean Unlike the other tagging protocols, the 802.1Q config option simply 26f9bbe447SVladimir Oltean provides helpers for other tagging implementations that might rely on 27f9bbe447SVladimir Oltean VLAN in one way or another. It is not a complete solution. 28f9bbe447SVladimir Oltean 29f9bbe447SVladimir Oltean Drivers which use these helpers should select this as dependency. 30f9bbe447SVladimir Oltean 3148fda74fSOleksij Rempelconfig NET_DSA_TAG_AR9331 3248fda74fSOleksij Rempel tristate "Tag driver for Atheros AR9331 SoC with built-in switch" 3348fda74fSOleksij Rempel help 3448fda74fSOleksij Rempel Say Y or M if you want to enable support for tagging frames for 3548fda74fSOleksij Rempel the Atheros AR9331 SoC with built-in switch. 3648fda74fSOleksij Rempel 370b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_BRCM_COMMON 380b9f9dfbSAndrew Lunn tristate 390b9f9dfbSAndrew Lunn default n 400b9f9dfbSAndrew Lunn 415037d532SFlorian Fainelliconfig NET_DSA_TAG_BRCM 420b9f9dfbSAndrew Lunn tristate "Tag driver for Broadcom switches using in-frame headers" 430b9f9dfbSAndrew Lunn select NET_DSA_TAG_BRCM_COMMON 440b9f9dfbSAndrew Lunn help 450b9f9dfbSAndrew Lunn Say Y if you want to enable support for tagging frames for the 460b9f9dfbSAndrew Lunn Broadcom switches which place the tag after the MAC source address. 470b9f9dfbSAndrew Lunn 48964dbf18SÁlvaro Fernández Rojasconfig NET_DSA_TAG_BRCM_LEGACY 49964dbf18SÁlvaro Fernández Rojas tristate "Tag driver for Broadcom legacy switches using in-frame headers" 50964dbf18SÁlvaro Fernández Rojas select NET_DSA_TAG_BRCM_COMMON 51964dbf18SÁlvaro Fernández Rojas help 52964dbf18SÁlvaro Fernández Rojas Say Y if you want to enable support for tagging frames for the 53964dbf18SÁlvaro Fernández Rojas Broadcom legacy switches which place the tag after the MAC source 54964dbf18SÁlvaro Fernández Rojas address. 555037d532SFlorian Fainelli 56b74b70c4SFlorian Fainelliconfig NET_DSA_TAG_BRCM_PREPEND 570b9f9dfbSAndrew Lunn tristate "Tag driver for Broadcom switches using prepended headers" 580b9f9dfbSAndrew Lunn select NET_DSA_TAG_BRCM_COMMON 590b9f9dfbSAndrew Lunn help 600b9f9dfbSAndrew Lunn Say Y if you want to enable support for tagging frames for the 610b9f9dfbSAndrew Lunn Broadcom switches which places the tag before the Ethernet header 620b9f9dfbSAndrew Lunn (prepended). 6391da11f8SLennert Buytenhek 6401ef09caSKurt Kanzenbachconfig NET_DSA_TAG_HELLCREEK 6501ef09caSKurt Kanzenbach tristate "Tag driver for Hirschmann Hellcreek TSN switches" 6601ef09caSKurt Kanzenbach help 6701ef09caSKurt Kanzenbach Say Y or M if you want to enable support for tagging frames 6801ef09caSKurt Kanzenbach for the Hirschmann Hellcreek TSN switches. 6901ef09caSKurt Kanzenbach 7079691192SHauke Mehrtensconfig NET_DSA_TAG_GSWIP 710b9f9dfbSAndrew Lunn tristate "Tag driver for Lantiq / Intel GSWIP switches" 720b9f9dfbSAndrew Lunn help 730b9f9dfbSAndrew Lunn Say Y or M if you want to enable support for tagging frames for the 740b9f9dfbSAndrew Lunn Lantiq / Intel GSWIP switches. 7579691192SHauke Mehrtens 76469ee5feSTobias Waldekranzconfig NET_DSA_TAG_DSA_COMMON 77469ee5feSTobias Waldekranz tristate 78469ee5feSTobias Waldekranz 790b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_DSA 800b9f9dfbSAndrew Lunn tristate "Tag driver for Marvell switches using DSA headers" 81469ee5feSTobias Waldekranz select NET_DSA_TAG_DSA_COMMON 820b9f9dfbSAndrew Lunn help 830b9f9dfbSAndrew Lunn Say Y or M if you want to enable support for tagging frames for the 840b9f9dfbSAndrew Lunn Marvell switches which use DSA headers. 858b8010fbSWoojung Huh 860b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_EDSA 870b9f9dfbSAndrew Lunn tristate "Tag driver for Marvell switches using EtherType DSA headers" 88469ee5feSTobias Waldekranz select NET_DSA_TAG_DSA_COMMON 890b9f9dfbSAndrew Lunn help 900b9f9dfbSAndrew Lunn Say Y or M if you want to enable support for tagging frames for the 910b9f9dfbSAndrew Lunn Marvell switches which use EtherType DSA headers. 92cafdc45cSJohn Crispin 935cd8985aSSean Wangconfig NET_DSA_TAG_MTK 940b9f9dfbSAndrew Lunn tristate "Tag driver for Mediatek switches" 950b9f9dfbSAndrew Lunn help 960b9f9dfbSAndrew Lunn Say Y or M if you want to enable support for tagging frames for 970b9f9dfbSAndrew Lunn Mediatek switches. 98e8fe177aSJuergen Beisert 990b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_KSZ 100f4073e91SGeorge McCollister tristate "Tag driver for Microchip 8795/9477/9893 families of switches" 1010b9f9dfbSAndrew Lunn help 1020b9f9dfbSAndrew Lunn Say Y if you want to enable support for tagging frames for the 103f4073e91SGeorge McCollister Microchip 8795/9477/9893 families of switches. 1040b9f9dfbSAndrew Lunn 105efd7fe68SLinus Walleijconfig NET_DSA_TAG_RTL4_A 106efd7fe68SLinus Walleij tristate "Tag driver for Realtek 4 byte protocol A tags" 107efd7fe68SLinus Walleij help 108efd7fe68SLinus Walleij Say Y or M if you want to enable support for tagging frames for the 109efd7fe68SLinus Walleij Realtek switches with 4 byte protocol A tags, sich as found in 110efd7fe68SLinus Walleij the Realtek RTL8366RB. 111efd7fe68SLinus Walleij 1128dce89aaSVladimir Olteanconfig NET_DSA_TAG_OCELOT 1137c83a7c5SVladimir Oltean tristate "Tag driver for Ocelot family of switches, using NPI port" 11439e5308bSYangbo Lu depends on MSCC_OCELOT_SWITCH_LIB || \ 11539e5308bSYangbo Lu (MSCC_OCELOT_SWITCH_LIB=n && COMPILE_TEST) 1168dce89aaSVladimir Oltean select PACKING 1178dce89aaSVladimir Oltean help 1187c83a7c5SVladimir Oltean Say Y or M if you want to enable NPI tagging for the Ocelot switches 1197c83a7c5SVladimir Oltean (VSC7511, VSC7512, VSC7513, VSC7514, VSC9953, VSC9959). In this mode, 1207c83a7c5SVladimir Oltean the frames over the Ethernet CPU port are prepended with a 1217c83a7c5SVladimir Oltean hardware-defined injection/extraction frame header. Flow control 1227c83a7c5SVladimir Oltean (PAUSE frames) over the CPU port is not supported when operating in 1237c83a7c5SVladimir Oltean this mode. 1247c83a7c5SVladimir Oltean 1257c83a7c5SVladimir Olteanconfig NET_DSA_TAG_OCELOT_8021Q 1267c83a7c5SVladimir Oltean tristate "Tag driver for Ocelot family of switches, using VLAN" 12701c2c1adSArnd Bergmann depends on MSCC_OCELOT_SWITCH_LIB || \ 12801c2c1adSArnd Bergmann (MSCC_OCELOT_SWITCH_LIB=n && COMPILE_TEST) 1297c83a7c5SVladimir Oltean select NET_DSA_TAG_8021Q 1307c83a7c5SVladimir Oltean help 1317c83a7c5SVladimir Oltean Say Y or M if you want to enable support for tagging frames with a 1327c83a7c5SVladimir Oltean custom VLAN-based header. Frames that require timestamping, such as 1337c83a7c5SVladimir Oltean PTP, are not delivered over Ethernet but over register-based MMIO. 1347c83a7c5SVladimir Oltean Flow control over the CPU port is functional in this mode. When using 1357c83a7c5SVladimir Oltean this mode, less TCAM resources (VCAP IS1, IS2, ES0) are available for 1367c83a7c5SVladimir Oltean use with tc-flower. 1378dce89aaSVladimir Oltean 138eb7b7211SAndrew Lunnconfig NET_DSA_TAG_QCA 1390b9f9dfbSAndrew Lunn tristate "Tag driver for Qualcomm Atheros QCA8K switches" 1400b9f9dfbSAndrew Lunn help 1410b9f9dfbSAndrew Lunn Say Y or M if you want to enable support for tagging frames for 1420b9f9dfbSAndrew Lunn the Qualcomm Atheros QCA8K switches. 1430b9f9dfbSAndrew Lunn 1440b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_LAN9303 1450b9f9dfbSAndrew Lunn tristate "Tag driver for SMSC/Microchip LAN9303 family of switches" 1460b9f9dfbSAndrew Lunn help 1470b9f9dfbSAndrew Lunn Say Y or M if you want to enable support for tagging frames for the 1480b9f9dfbSAndrew Lunn SMSC/Microchip LAN9303 family of switches. 1490b9f9dfbSAndrew Lunn 150227d07a0SVladimir Olteanconfig NET_DSA_TAG_SJA1105 151227d07a0SVladimir Oltean tristate "Tag driver for NXP SJA1105 switches" 152227d07a0SVladimir Oltean select NET_DSA_TAG_8021Q 1536358f38cSVladimir Oltean select PACKING 154227d07a0SVladimir Oltean help 155227d07a0SVladimir Oltean Say Y or M if you want to enable support for tagging frames with the 156227d07a0SVladimir Oltean NXP SJA1105 switch family. Both the native tagging protocol (which 157227d07a0SVladimir Oltean is only for link-local traffic) as well as non-native tagging (based 158227d07a0SVladimir Oltean on a custom 802.1Q VLAN header) are available. 159227d07a0SVladimir Oltean 1600b9f9dfbSAndrew Lunnconfig NET_DSA_TAG_TRAILER 1610b9f9dfbSAndrew Lunn tristate "Tag driver for switches using a trailer tag" 1620b9f9dfbSAndrew Lunn help 1630b9f9dfbSAndrew Lunn Say Y or M if you want to enable support for tagging frames at 1640b9f9dfbSAndrew Lunn with a trailed. e.g. Marvell 88E6060. 165e8fe177aSJuergen Beisert 16654a52823SGeorge McCollisterconfig NET_DSA_TAG_XRS700X 16754a52823SGeorge McCollister tristate "Tag driver for XRS700x switches" 16854a52823SGeorge McCollister help 16954a52823SGeorge McCollister Say Y or M if you want to enable support for tagging frames for 17054a52823SGeorge McCollister Arrow SpeedChips XRS700x switches that use a single byte tag trailer. 17154a52823SGeorge McCollister 172b3422a31SBen Hutchingsendif 173