linux/net/dsa/Kconfig
Vladimir Oltean 8b6e638b4b net: dsa: build tag_8021q.c as part of DSA core
Upcoming patches will add tag_8021q related logic to switch.c and
port.c, in order to allow it to make use of cross-chip notifiers.
In addition, a struct dsa_8021q_context *ctx pointer will be added to
struct dsa_switch.

It seems fairly low-reward to #ifdef the *ctx from struct dsa_switch and
to provide shim implementations of the entire tag_8021q.c calling
surface (not even clear what to do about the tag_8021q cross-chip
notifiers to avoid compiling them). The runtime overhead for switches
which don't use tag_8021q is fairly small because all helpers will check
for ds->tag_8021q_ctx being a NULL pointer and stop there.

So let's make it part of dsa_core.o.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-07-20 06:36:42 -07:00

161 lines
5.4 KiB
Plaintext

# 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_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 Broadcom 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
Broadcom legacy switches which place the tag after the MAC source
address.
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_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_KSZ
tristate "Tag driver for Microchip 8795/9477/9893 families of switches"
help
Say Y if you want to enable support for tagging frames for the
Microchip 8795/9477/9893 families of 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, sich as found in
the Realtek RTL8366RB.
config NET_DSA_TAG_OCELOT
tristate "Tag driver for Ocelot family of switches, using NPI port"
depends on MSCC_OCELOT_SWITCH_LIB || \
(MSCC_OCELOT_SWITCH_LIB=n && COMPILE_TEST)
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"
depends on MSCC_OCELOT_SWITCH_LIB || \
(MSCC_OCELOT_SWITCH_LIB=n && COMPILE_TEST)
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_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_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.
endif