1# SPDX-License-Identifier: GPL-2.0-only 2 3menuconfig NET_DSA 4 tristate "Distributed Switch Architecture" 5 depends on BRIDGE || BRIDGE=n 6 depends on HSR || HSR=n 7 depends on INET && NETDEVICES 8 select GRO_CELLS 9 select NET_SWITCHDEV 10 select PHYLINK 11 select NET_DEVLINK 12 select NET_SELFTESTS 13 help 14 Say Y if you want to enable support for the hardware switches supported 15 by the Distributed Switch Architecture. 16 17if NET_DSA 18 19# Drivers must select the appropriate tagging format(s) 20 21config NET_DSA_TAG_8021Q 22 tristate 23 select VLAN_8021Q 24 help 25 Unlike the other tagging protocols, the 802.1Q config option simply 26 provides helpers for other tagging implementations that might rely on 27 VLAN in one way or another. It is not a complete solution. 28 29 Drivers which use these helpers should select this as dependency. 30 31config NET_DSA_TAG_AR9331 32 tristate "Tag driver for Atheros AR9331 SoC with built-in switch" 33 help 34 Say Y or M if you want to enable support for tagging frames for 35 the Atheros AR9331 SoC with built-in switch. 36 37config NET_DSA_TAG_BRCM_COMMON 38 tristate 39 default n 40 41config NET_DSA_TAG_BRCM 42 tristate "Tag driver for Broadcom switches using in-frame headers" 43 select NET_DSA_TAG_BRCM_COMMON 44 help 45 Say Y if you want to enable support for tagging frames for the 46 Broadcom switches which place the tag after the MAC source address. 47 48config NET_DSA_TAG_BRCM_LEGACY 49 tristate "Tag driver for Broadcom legacy switches using in-frame headers" 50 select NET_DSA_TAG_BRCM_COMMON 51 help 52 Say Y if you want to enable support for tagging frames for the 53 Broadcom legacy switches which place the tag after the MAC source 54 address. 55 56config NET_DSA_TAG_BRCM_PREPEND 57 tristate "Tag driver for Broadcom switches using prepended headers" 58 select NET_DSA_TAG_BRCM_COMMON 59 help 60 Say Y if you want to enable support for tagging frames for the 61 Broadcom switches which places the tag before the Ethernet header 62 (prepended). 63 64config NET_DSA_TAG_HELLCREEK 65 tristate "Tag driver for Hirschmann Hellcreek TSN switches" 66 help 67 Say Y or M if you want to enable support for tagging frames 68 for the Hirschmann Hellcreek TSN switches. 69 70config NET_DSA_TAG_GSWIP 71 tristate "Tag driver for Lantiq / Intel GSWIP switches" 72 help 73 Say Y or M if you want to enable support for tagging frames for the 74 Lantiq / Intel GSWIP switches. 75 76config NET_DSA_TAG_DSA_COMMON 77 tristate 78 79config NET_DSA_TAG_DSA 80 tristate "Tag driver for Marvell switches using DSA headers" 81 select NET_DSA_TAG_DSA_COMMON 82 help 83 Say Y or M if you want to enable support for tagging frames for the 84 Marvell switches which use DSA headers. 85 86config NET_DSA_TAG_EDSA 87 tristate "Tag driver for Marvell switches using EtherType DSA headers" 88 select NET_DSA_TAG_DSA_COMMON 89 help 90 Say Y or M if you want to enable support for tagging frames for the 91 Marvell switches which use EtherType DSA headers. 92 93config NET_DSA_TAG_MTK 94 tristate "Tag driver for Mediatek switches" 95 help 96 Say Y or M if you want to enable support for tagging frames for 97 Mediatek switches. 98 99config NET_DSA_TAG_KSZ 100 tristate "Tag driver for Microchip 8795/9477/9893 families of switches" 101 help 102 Say Y if you want to enable support for tagging frames for the 103 Microchip 8795/9477/9893 families of switches. 104 105config NET_DSA_TAG_RTL4_A 106 tristate "Tag driver for Realtek 4 byte protocol A tags" 107 help 108 Say Y or M if you want to enable support for tagging frames for the 109 Realtek switches with 4 byte protocol A tags, sich as found in 110 the Realtek RTL8366RB. 111 112config NET_DSA_TAG_OCELOT 113 tristate "Tag driver for Ocelot family of switches, using NPI port" 114 select PACKING 115 help 116 Say Y or M if you want to enable NPI tagging for the Ocelot switches 117 (VSC7511, VSC7512, VSC7513, VSC7514, VSC9953, VSC9959). In this mode, 118 the frames over the Ethernet CPU port are prepended with a 119 hardware-defined injection/extraction frame header. Flow control 120 (PAUSE frames) over the CPU port is not supported when operating in 121 this mode. 122 123config NET_DSA_TAG_OCELOT_8021Q 124 tristate "Tag driver for Ocelot family of switches, using VLAN" 125 depends on MSCC_OCELOT_SWITCH_LIB || \ 126 (MSCC_OCELOT_SWITCH_LIB=n && COMPILE_TEST) 127 select NET_DSA_TAG_8021Q 128 help 129 Say Y or M if you want to enable support for tagging frames with a 130 custom VLAN-based header. Frames that require timestamping, such as 131 PTP, are not delivered over Ethernet but over register-based MMIO. 132 Flow control over the CPU port is functional in this mode. When using 133 this mode, less TCAM resources (VCAP IS1, IS2, ES0) are available for 134 use with tc-flower. 135 136config NET_DSA_TAG_QCA 137 tristate "Tag driver for Qualcomm Atheros QCA8K switches" 138 help 139 Say Y or M if you want to enable support for tagging frames for 140 the Qualcomm Atheros QCA8K switches. 141 142config NET_DSA_TAG_LAN9303 143 tristate "Tag driver for SMSC/Microchip LAN9303 family of switches" 144 help 145 Say Y or M if you want to enable support for tagging frames for the 146 SMSC/Microchip LAN9303 family of switches. 147 148config NET_DSA_TAG_SJA1105 149 tristate "Tag driver for NXP SJA1105 switches" 150 select NET_DSA_TAG_8021Q 151 select PACKING 152 help 153 Say Y or M if you want to enable support for tagging frames with the 154 NXP SJA1105 switch family. Both the native tagging protocol (which 155 is only for link-local traffic) as well as non-native tagging (based 156 on a custom 802.1Q VLAN header) are available. 157 158config NET_DSA_TAG_TRAILER 159 tristate "Tag driver for switches using a trailer tag" 160 help 161 Say Y or M if you want to enable support for tagging frames at 162 with a trailed. e.g. Marvell 88E6060. 163 164config NET_DSA_TAG_XRS700X 165 tristate "Tag driver for XRS700x switches" 166 help 167 Say Y or M if you want to enable support for tagging frames for 168 Arrow SpeedChips XRS700x switches that use a single byte tag trailer. 169 170endif 171