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 imply 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 depends on MSCC_OCELOT_SWITCH_LIB || \ 115 (MSCC_OCELOT_SWITCH_LIB=n && COMPILE_TEST) 116 select PACKING 117 help 118 Say Y or M if you want to enable NPI tagging for the Ocelot switches 119 (VSC7511, VSC7512, VSC7513, VSC7514, VSC9953, VSC9959). In this mode, 120 the frames over the Ethernet CPU port are prepended with a 121 hardware-defined injection/extraction frame header. Flow control 122 (PAUSE frames) over the CPU port is not supported when operating in 123 this mode. 124 125config NET_DSA_TAG_OCELOT_8021Q 126 tristate "Tag driver for Ocelot family of switches, using VLAN" 127 depends on MSCC_OCELOT_SWITCH_LIB || \ 128 (MSCC_OCELOT_SWITCH_LIB=n && COMPILE_TEST) 129 select NET_DSA_TAG_8021Q 130 help 131 Say Y or M if you want to enable support for tagging frames with a 132 custom VLAN-based header. Frames that require timestamping, such as 133 PTP, are not delivered over Ethernet but over register-based MMIO. 134 Flow control over the CPU port is functional in this mode. When using 135 this mode, less TCAM resources (VCAP IS1, IS2, ES0) are available for 136 use with tc-flower. 137 138config NET_DSA_TAG_QCA 139 tristate "Tag driver for Qualcomm Atheros QCA8K switches" 140 help 141 Say Y or M if you want to enable support for tagging frames for 142 the Qualcomm Atheros QCA8K switches. 143 144config NET_DSA_TAG_LAN9303 145 tristate "Tag driver for SMSC/Microchip LAN9303 family of switches" 146 help 147 Say Y or M if you want to enable support for tagging frames for the 148 SMSC/Microchip LAN9303 family of switches. 149 150config NET_DSA_TAG_SJA1105 151 tristate "Tag driver for NXP SJA1105 switches" 152 select NET_DSA_TAG_8021Q 153 select PACKING 154 help 155 Say Y or M if you want to enable support for tagging frames with the 156 NXP SJA1105 switch family. Both the native tagging protocol (which 157 is only for link-local traffic) as well as non-native tagging (based 158 on a custom 802.1Q VLAN header) are available. 159 160config NET_DSA_TAG_TRAILER 161 tristate "Tag driver for switches using a trailer tag" 162 help 163 Say Y or M if you want to enable support for tagging frames at 164 with a trailed. e.g. Marvell 88E6060. 165 166config NET_DSA_TAG_XRS700X 167 tristate "Tag driver for XRS700x switches" 168 help 169 Say Y or M if you want to enable support for tagging frames for 170 Arrow SpeedChips XRS700x switches that use a single byte tag trailer. 171 172endif 173