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