| # SPDX-License-Identifier: GPL-2.0-only | |
| menuconfig NET_DSA | |
| tristate "Distributed Switch Architecture" | |
| depends on BRIDGE || BRIDGE=n | |
| depends on HSR || HSR=n | |
| depends on INET && NETDEVICES | |
| select GRO_CELLS | |
| select NET_SWITCHDEV | |
| select PHYLINK | |
| select NET_DEVLINK | |
| imply NET_SELFTESTS | |
| help | |
| Say Y if you want to enable support for the hardware switches supported | |
| by the Distributed Switch Architecture. | |
| if NET_DSA | |
| # Drivers must select the appropriate tagging format(s) | |
| config NET_DSA_TAG_NONE | |
| tristate "No-op tag driver" | |
| help | |
| Say Y or M if you want to enable support for switches which don't tag | |
| frames over the CPU port. | |
| config NET_DSA_TAG_AR9331 | |
| tristate "Tag driver for Atheros AR9331 SoC with built-in switch" | |
| help | |
| Say Y or M if you want to enable support for tagging frames for | |
| the Atheros AR9331 SoC with built-in switch. | |
| config NET_DSA_TAG_BRCM_COMMON | |
| tristate | |
| default n | |
| config NET_DSA_TAG_BRCM | |
| tristate "Tag driver for Broadcom switches using in-frame headers" | |
| select NET_DSA_TAG_BRCM_COMMON | |
| help | |
| Say Y if you want to enable support for tagging frames for the | |
| Broadcom switches which place the tag after the MAC source address. | |
| config NET_DSA_TAG_BRCM_LEGACY | |
| tristate "Tag driver for BCM63xx legacy switches using in-frame headers" | |
| select NET_DSA_TAG_BRCM_COMMON | |
| help | |
| Say Y if you want to enable support for tagging frames for the | |
| BCM63xx legacy switches which place the tag after the MAC source | |
| address. | |
| This tag is used in BCM63xx legacy switches which work without the | |
| original FCS and length before the tag insertion. | |
| config NET_DSA_TAG_BRCM_LEGACY_FCS | |
| tristate "Tag driver for BCM53xx legacy switches using in-frame headers" | |
| select NET_DSA_TAG_BRCM_COMMON | |
| help | |
| Say Y if you want to enable support for tagging frames for the | |
| BCM53xx legacy switches which place the tag after the MAC source | |
| address. | |
| This tag is used in BCM53xx legacy switches which expect original | |
| FCS and length before the tag insertion to be present. | |
| config NET_DSA_TAG_BRCM_PREPEND | |
| tristate "Tag driver for Broadcom switches using prepended headers" | |
| select NET_DSA_TAG_BRCM_COMMON | |
| help | |
| Say Y if you want to enable support for tagging frames for the | |
| Broadcom switches which places the tag before the Ethernet header | |
| (prepended). | |
| config NET_DSA_TAG_HELLCREEK | |
| tristate "Tag driver for Hirschmann Hellcreek TSN switches" | |
| help | |
| Say Y or M if you want to enable support for tagging frames | |
| for the Hirschmann Hellcreek TSN switches. | |
| config NET_DSA_TAG_GSWIP | |
| tristate "Tag driver for Lantiq / Intel GSWIP switches" | |
| help | |
| Say Y or M if you want to enable support for tagging frames for the | |
| Lantiq / Intel GSWIP switches. | |
| config NET_DSA_TAG_DSA_COMMON | |
| tristate | |
| config NET_DSA_TAG_DSA | |
| tristate "Tag driver for Marvell switches using DSA headers" | |
| select NET_DSA_TAG_DSA_COMMON | |
| help | |
| Say Y or M if you want to enable support for tagging frames for the | |
| Marvell switches which use DSA headers. | |
| config NET_DSA_TAG_EDSA | |
| tristate "Tag driver for Marvell switches using EtherType DSA headers" | |
| select NET_DSA_TAG_DSA_COMMON | |
| help | |
| Say Y or M if you want to enable support for tagging frames for the | |
| Marvell switches which use EtherType DSA headers. | |
| config NET_DSA_TAG_MT7628 | |
| tristate "Tag driver for the MT7628 embedded switch" | |
| help | |
| Say Y or M if you want to enable support for tagging frames for the | |
| switch embedded in the MT7628 SoC. | |
| config NET_DSA_TAG_MTK | |
| tristate "Tag driver for Mediatek switches" | |
| help | |
| Say Y or M if you want to enable support for tagging frames for | |
| Mediatek switches. | |
| config NET_DSA_TAG_MXL_862XX | |
| tristate "Tag driver for MaxLinear MxL862xx switches" | |
| help | |
| Say Y or M if you want to enable support for tagging frames for the | |
| MaxLinear MxL86252 and MxL86282 switches using their native 8-byte | |
| tagging protocol. | |
| config NET_DSA_TAG_MXL_GSW1XX | |
| tristate "Tag driver for MaxLinear GSW1xx switches" | |
| help | |
| The GSW1xx family of switches supports an 8-byte special tag which | |
| can be used on the CPU port of the switch. | |
| Say Y or M if you want to enable support for tagging frames for | |
| MaxLinear GSW1xx switches. | |
| config NET_DSA_TAG_KSZ | |
| tristate "Tag driver for Microchip 8795/937x/9477/9893 families of switches" | |
| help | |
| Say Y if you want to enable support for tagging frames for the | |
| Microchip 8795/937x/9477/9893 families of switches. | |
| config NET_DSA_TAG_NETC | |
| tristate "Tag driver for NXP NETC switches" | |
| help | |
| Say Y or M if you want to enable support for the NXP Switch Tag (NST), | |
| as implemented by NXP NETC switches having version 4.3 or later. The | |
| switch tag is a proprietary header added to frames after the source | |
| MAC address, it has 3 types and each type has different subtypes, so | |
| its length depends on the type and subtype of the tag, the maximum | |
| length is 14 bytes. | |
| config NET_DSA_TAG_OCELOT | |
| tristate "Tag driver for Ocelot family of switches, using NPI port" | |
| select PACKING | |
| help | |
| Say Y or M if you want to enable NPI tagging for the Ocelot switches | |
| (VSC7511, VSC7512, VSC7513, VSC7514, VSC9953, VSC9959). In this mode, | |
| the frames over the Ethernet CPU port are prepended with a | |
| hardware-defined injection/extraction frame header. Flow control | |
| (PAUSE frames) over the CPU port is not supported when operating in | |
| this mode. | |
| config NET_DSA_TAG_OCELOT_8021Q | |
| tristate "Tag driver for Ocelot family of switches, using VLAN" | |
| help | |
| Say Y or M if you want to enable support for tagging frames with a | |
| custom VLAN-based header. Frames that require timestamping, such as | |
| PTP, are not delivered over Ethernet but over register-based MMIO. | |
| Flow control over the CPU port is functional in this mode. When using | |
| this mode, less TCAM resources (VCAP IS1, IS2, ES0) are available for | |
| use with tc-flower. | |
| config NET_DSA_TAG_QCA | |
| tristate "Tag driver for Qualcomm Atheros QCA8K switches" | |
| help | |
| Say Y or M if you want to enable support for tagging frames for | |
| the Qualcomm Atheros QCA8K switches. | |
| config NET_DSA_TAG_RTL4_A | |
| tristate "Tag driver for Realtek 4 byte protocol A tags" | |
| help | |
| Say Y or M if you want to enable support for tagging frames for the | |
| Realtek switches with 4 byte protocol A tags, such as found in | |
| the Realtek RTL8366RB. | |
| config NET_DSA_TAG_RTL8_4 | |
| tristate "Tag driver for Realtek 8 byte protocol 4 tags" | |
| help | |
| Say Y or M if you want to enable support for tagging frames for Realtek | |
| switches with 8 byte protocol 4 tags, such as the Realtek RTL8365MB-VC. | |
| config NET_DSA_TAG_RZN1_A5PSW | |
| tristate "Tag driver for Renesas RZ/N1 A5PSW switch" | |
| help | |
| Say Y or M if you want to enable support for tagging frames for | |
| Renesas RZ/N1 embedded switch that uses an 8 byte tag located after | |
| destination MAC address. | |
| config NET_DSA_TAG_LAN9303 | |
| tristate "Tag driver for SMSC/Microchip LAN9303 family of switches" | |
| help | |
| Say Y or M if you want to enable support for tagging frames for the | |
| SMSC/Microchip LAN9303 family of switches. | |
| config NET_DSA_TAG_SJA1105 | |
| tristate "Tag driver for NXP SJA1105 switches" | |
| select PACKING | |
| help | |
| Say Y or M if you want to enable support for tagging frames with the | |
| NXP SJA1105 switch family. Both the native tagging protocol (which | |
| is only for link-local traffic) as well as non-native tagging (based | |
| on a custom 802.1Q VLAN header) are available. | |
| config NET_DSA_TAG_TRAILER | |
| tristate "Tag driver for switches using a trailer tag" | |
| help | |
| Say Y or M if you want to enable support for tagging frames at | |
| with a trailed. e.g. Marvell 88E6060. | |
| config NET_DSA_TAG_VSC73XX_8021Q | |
| tristate "Tag driver for Microchip/Vitesse VSC73xx family of switches, using VLAN" | |
| help | |
| Say Y or M if you want to enable support for tagging frames with a | |
| custom VLAN-based header. | |
| config NET_DSA_TAG_XRS700X | |
| tristate "Tag driver for XRS700x switches" | |
| help | |
| Say Y or M if you want to enable support for tagging frames for | |
| Arrow SpeedChips XRS700x switches that use a single byte tag trailer. | |
| config NET_DSA_TAG_YT921X | |
| tristate "Tag driver for Motorcomm YT921x switches" | |
| help | |
| Say Y or M if you want to enable support for tagging frames for | |
| Motorcomm YT921x switches. | |
| endif |