tcpdump mailing list archives
Re: Requesting DLT_* values for Ethernet switches proprietary tagging protocol
From: Florian Fainelli <f.fainelli () gmail com>
Date: Thu, 17 Jan 2019 15:51:58 -0800
On 1/17/19 3:41 PM, Guy Harris wrote:
On Jan 17, 2019, at 2:39 PM, Florian Fainelli <f.fainelli () gmail com> wrote:A number of Ethernet switches from Broadcom, Marvell, Microchip, Qualcomm, Lantiq/Intel, etc. utilize proprietary tags that are processed by these switches in-line with the Ethernet frame being sent/received. These tags are inserted by the Ethernet switch's management interface for packets egressing the switch to a management port, and are created by a software agent (or specialized Ethernet adapter, typically from the same vendor) then sent to the management port for frames ingressing the switch. These tags serve as the foundation for Linux's Distributed Switch Architecture framework. As of Linux 4.19, there is now a way for user-space to find out which type of protocol is being configured on that management network interface.So does this mean that Linux is running on a processor in the switch itself, or is this for something where you have a Linux box, one of whose Ethernet interfaces is plugged into a management port, with the Linux kernel knowing what type of tags are being used on that port, and with 4.19 exporting that information to userland?
The later, these Ethernet switches are either discrete components, and connected to a SoC via a version of the MII electrical interface (SGMII, RGMII, GMII, whatever) for the data path and the control path being either MDIO, I2C, SPI, GPIO, something else, or these switches are integrated into an SoC directly and memory mapped into the SoC's bus address space somehow. The management port of those switches is connected to one or more of the Ethernet NICs on the SoC, and so what that Ethernet NIC "sees" is Ethernet traffic that has been tagged by the switch hardware to allow for certain decisions to be made like: where is this packet coming from, why are you sending it to me, etc. In all of these cases, Linux runs on these SocS and has a driver for that switch and is able to fully control it. What has been added in 4.19, a sysfs attribute under /sys/class/net/<iface>/dsa/tagging which tells us what kind of tagging protocol is being configured on that interface.
And does the comment in your tcpdump change /* p points to after the Ethernet header (include type/length), move it * backwards by 2 bytes to parse the Broadcom tag and extract the actual * type/length after it. */ mean that the Broadcom tags, at least, are inserted between the source MAC address and type/length field (so that the frames have a modified header containing the tag, rather than having a trailer containing the tag, for example)?
This is true for Broadcom tags, and a certain number of other Ethernet switch tags, but not universally true. Some of these tags can be "trailers" and be located right before the FCS for instance (Microchip is one of those, Marvell has one like that too). Some of these tags are between MAC SA and Type/Length field, but not 4 bytes, 2 bytes, etc... Having a reliable heuristic is IMHO mission impossible here, which is why we should have some help from libpcap to tell us the linktype/DLT. Does that make sense? -- Florian _______________________________________________ tcpdump-workers mailing list tcpdump-workers () lists tcpdump org https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers
Current thread:
- Requesting DLT_* values for Ethernet switches proprietary tagging protocol Florian Fainelli (Jan 17)
- Re: Requesting DLT_* values for Ethernet switches proprietary tagging protocol Guy Harris (Jan 17)
- Re: Requesting DLT_* values for Ethernet switches proprietary tagging protocol Florian Fainelli (Jan 17)
- Message not available
- Message not available
- Re: Requesting DLT_* values for Ethernet switches proprietary tagging protocol Guy Harris (Jan 17)
- Re: Requesting DLT_* values for Ethernet switches proprietary tagging protocol Florian Fainelli (Jan 17)
- Re: Requesting DLT_* values for Ethernet switches proprietary tagging protocol Guy Harris (Jan 17)
- Re: Requesting DLT_* values for Ethernet switches proprietary tagging protocol Florian Fainelli (Jan 17)
- Re: Requesting DLT_* values for Ethernet switches proprietary tagging protocol Guy Harris (Jan 17)
- Re: Requesting DLT_* values for Ethernet switches proprietary tagging protocol Florian Fainelli (Jan 17)
- Re: Requesting DLT_* values for Ethernet switches proprietary tagging protocol Guy Harris (Jan 17)
- Re: Requesting DLT_* values for Ethernet switches proprietary tagging protocol Florian Fainelli (Jan 18)
- Re: Requesting DLT_* values for Ethernet switches proprietary tagging protocol Guy Harris (Jan 18)
- Re: Requesting DLT_* values for Ethernet switches proprietary tagging protocol Florian Fainelli (Jan 17)
- Re: Requesting DLT_* values for Ethernet switches proprietary tagging protocol Guy Harris (Jan 17)
- Message not available
- Re: Requesting DLT_* values for Ethernet switches proprietary tagging protocol Florian Fainelli (Jan 18)