mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
8dce89aa5f
While it is entirely possible that this tagger format is in fact more generic than just these 2 switch families, I don't have that knowledge. The Seville switch in NXP T1040 has a similar frame format, but there are enough differences (e.g. DEST field starts at bit 57 instead of 56) that calling this file tag_vitesse.c is a bit of a stretch at the moment. The frame format has been listed in a comment so that people who add support for further Vitesse switches can rework this tagger while keeping compatibility with Felix. The "ocelot" name was chosen instead of "felix" because even the Ocelot switch can act as a DSA device when it is used in NPI mode, and the Felix tagger format is almost identical. Currently it is only used for the Felix switch embedded in the NXP LS1028A chip. The ABI for this tagger should be considered "not stable" at the moment. The DSA tag is always placed before the Ethernet header and therefore, we are using the long prefix for RX tags to avoid putting the DSA master port in promiscuous mode. Once there will be an API in DSA for drivers to request DSA masters to be in promiscuous mode unconditionally, we will switch to the "no prefix" extraction frame header, which will save 16 padding bytes for each RX frame. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
117 lines
3.6 KiB
Text
117 lines
3.6 KiB
Text
# SPDX-License-Identifier: GPL-2.0-only
|
|
config HAVE_NET_DSA
|
|
def_bool y
|
|
depends on INET && NETDEVICES && !S390
|
|
|
|
# Drivers must select NET_DSA and the appropriate tagging format
|
|
|
|
menuconfig NET_DSA
|
|
tristate "Distributed Switch Architecture"
|
|
depends on HAVE_NET_DSA
|
|
depends on BRIDGE || BRIDGE=n
|
|
select NET_SWITCHDEV
|
|
select PHYLINK
|
|
select NET_DEVLINK
|
|
---help---
|
|
Say Y if you want to enable support for the hardware switches supported
|
|
by the Distributed Switch Architecture.
|
|
|
|
if NET_DSA
|
|
|
|
# tagging formats
|
|
config NET_DSA_TAG_8021Q
|
|
tristate
|
|
select VLAN_8021Q
|
|
help
|
|
Unlike the other tagging protocols, the 802.1Q config option simply
|
|
provides helpers for other tagging implementations that might rely on
|
|
VLAN in one way or another. It is not a complete solution.
|
|
|
|
Drivers which use these helpers should select this as dependency.
|
|
|
|
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_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_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
|
|
tristate "Tag driver for Marvell switches using DSA headers"
|
|
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"
|
|
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_OCELOT
|
|
tristate "Tag driver for Ocelot family of switches"
|
|
select PACKING
|
|
help
|
|
Say Y or M if you want to enable support for tagging frames for the
|
|
Ocelot switches (VSC7511, VSC7512, VSC7513, VSC7514, VSC9959).
|
|
|
|
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 NET_DSA_TAG_8021Q
|
|
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.
|
|
|
|
endif
|