0001 # SPDX-License-Identifier: GPL-2.0-only
0002
0003 menuconfig NET_DSA
0004 tristate "Distributed Switch Architecture"
0005 depends on BRIDGE || BRIDGE=n
0006 depends on HSR || HSR=n
0007 depends on INET && NETDEVICES
0008 select GRO_CELLS
0009 select NET_SWITCHDEV
0010 select PHYLINK
0011 select NET_DEVLINK
0012 imply NET_SELFTESTS
0013 help
0014 Say Y if you want to enable support for the hardware switches supported
0015 by the Distributed Switch Architecture.
0016
0017 if NET_DSA
0018
0019 # Drivers must select the appropriate tagging format(s)
0020
0021 config NET_DSA_TAG_AR9331
0022 tristate "Tag driver for Atheros AR9331 SoC with built-in switch"
0023 help
0024 Say Y or M if you want to enable support for tagging frames for
0025 the Atheros AR9331 SoC with built-in switch.
0026
0027 config NET_DSA_TAG_BRCM_COMMON
0028 tristate
0029 default n
0030
0031 config NET_DSA_TAG_BRCM
0032 tristate "Tag driver for Broadcom switches using in-frame headers"
0033 select NET_DSA_TAG_BRCM_COMMON
0034 help
0035 Say Y if you want to enable support for tagging frames for the
0036 Broadcom switches which place the tag after the MAC source address.
0037
0038 config NET_DSA_TAG_BRCM_LEGACY
0039 tristate "Tag driver for Broadcom legacy switches using in-frame headers"
0040 select NET_DSA_TAG_BRCM_COMMON
0041 help
0042 Say Y if you want to enable support for tagging frames for the
0043 Broadcom legacy switches which place the tag after the MAC source
0044 address.
0045
0046 config NET_DSA_TAG_BRCM_PREPEND
0047 tristate "Tag driver for Broadcom switches using prepended headers"
0048 select NET_DSA_TAG_BRCM_COMMON
0049 help
0050 Say Y if you want to enable support for tagging frames for the
0051 Broadcom switches which places the tag before the Ethernet header
0052 (prepended).
0053
0054 config NET_DSA_TAG_HELLCREEK
0055 tristate "Tag driver for Hirschmann Hellcreek TSN switches"
0056 help
0057 Say Y or M if you want to enable support for tagging frames
0058 for the Hirschmann Hellcreek TSN switches.
0059
0060 config NET_DSA_TAG_GSWIP
0061 tristate "Tag driver for Lantiq / Intel GSWIP switches"
0062 help
0063 Say Y or M if you want to enable support for tagging frames for the
0064 Lantiq / Intel GSWIP switches.
0065
0066 config NET_DSA_TAG_DSA_COMMON
0067 tristate
0068
0069 config NET_DSA_TAG_DSA
0070 tristate "Tag driver for Marvell switches using DSA headers"
0071 select NET_DSA_TAG_DSA_COMMON
0072 help
0073 Say Y or M if you want to enable support for tagging frames for the
0074 Marvell switches which use DSA headers.
0075
0076 config NET_DSA_TAG_EDSA
0077 tristate "Tag driver for Marvell switches using EtherType DSA headers"
0078 select NET_DSA_TAG_DSA_COMMON
0079 help
0080 Say Y or M if you want to enable support for tagging frames for the
0081 Marvell switches which use EtherType DSA headers.
0082
0083 config NET_DSA_TAG_MTK
0084 tristate "Tag driver for Mediatek switches"
0085 help
0086 Say Y or M if you want to enable support for tagging frames for
0087 Mediatek switches.
0088
0089 config NET_DSA_TAG_KSZ
0090 tristate "Tag driver for Microchip 8795/937x/9477/9893 families of switches"
0091 help
0092 Say Y if you want to enable support for tagging frames for the
0093 Microchip 8795/937x/9477/9893 families of switches.
0094
0095 config NET_DSA_TAG_OCELOT
0096 tristate "Tag driver for Ocelot family of switches, using NPI port"
0097 select PACKING
0098 help
0099 Say Y or M if you want to enable NPI tagging for the Ocelot switches
0100 (VSC7511, VSC7512, VSC7513, VSC7514, VSC9953, VSC9959). In this mode,
0101 the frames over the Ethernet CPU port are prepended with a
0102 hardware-defined injection/extraction frame header. Flow control
0103 (PAUSE frames) over the CPU port is not supported when operating in
0104 this mode.
0105
0106 config NET_DSA_TAG_OCELOT_8021Q
0107 tristate "Tag driver for Ocelot family of switches, using VLAN"
0108 help
0109 Say Y or M if you want to enable support for tagging frames with a
0110 custom VLAN-based header. Frames that require timestamping, such as
0111 PTP, are not delivered over Ethernet but over register-based MMIO.
0112 Flow control over the CPU port is functional in this mode. When using
0113 this mode, less TCAM resources (VCAP IS1, IS2, ES0) are available for
0114 use with tc-flower.
0115
0116 config NET_DSA_TAG_QCA
0117 tristate "Tag driver for Qualcomm Atheros QCA8K switches"
0118 help
0119 Say Y or M if you want to enable support for tagging frames for
0120 the Qualcomm Atheros QCA8K switches.
0121
0122 config NET_DSA_TAG_RTL4_A
0123 tristate "Tag driver for Realtek 4 byte protocol A tags"
0124 help
0125 Say Y or M if you want to enable support for tagging frames for the
0126 Realtek switches with 4 byte protocol A tags, sich as found in
0127 the Realtek RTL8366RB.
0128
0129 config NET_DSA_TAG_RTL8_4
0130 tristate "Tag driver for Realtek 8 byte protocol 4 tags"
0131 help
0132 Say Y or M if you want to enable support for tagging frames for Realtek
0133 switches with 8 byte protocol 4 tags, such as the Realtek RTL8365MB-VC.
0134
0135 config NET_DSA_TAG_RZN1_A5PSW
0136 tristate "Tag driver for Renesas RZ/N1 A5PSW switch"
0137 help
0138 Say Y or M if you want to enable support for tagging frames for
0139 Renesas RZ/N1 embedded switch that uses an 8 byte tag located after
0140 destination MAC address.
0141
0142 config NET_DSA_TAG_LAN9303
0143 tristate "Tag driver for SMSC/Microchip LAN9303 family of switches"
0144 help
0145 Say Y or M if you want to enable support for tagging frames for the
0146 SMSC/Microchip LAN9303 family of switches.
0147
0148 config NET_DSA_TAG_SJA1105
0149 tristate "Tag driver for NXP SJA1105 switches"
0150 select PACKING
0151 help
0152 Say Y or M if you want to enable support for tagging frames with the
0153 NXP SJA1105 switch family. Both the native tagging protocol (which
0154 is only for link-local traffic) as well as non-native tagging (based
0155 on a custom 802.1Q VLAN header) are available.
0156
0157 config NET_DSA_TAG_TRAILER
0158 tristate "Tag driver for switches using a trailer tag"
0159 help
0160 Say Y or M if you want to enable support for tagging frames at
0161 with a trailed. e.g. Marvell 88E6060.
0162
0163 config NET_DSA_TAG_XRS700X
0164 tristate "Tag driver for XRS700x switches"
0165 help
0166 Say Y or M if you want to enable support for tagging frames for
0167 Arrow SpeedChips XRS700x switches that use a single byte tag trailer.
0168
0169 endif