A deep-dive engineering story tracing UDP packets from raw oscilloscope voltage waveforms all the way up to decoded packets in Wireshark. Starting at OSI Layer 1, the author probes a QSGMII link between a VSC7448 switch and a VSC8504 PHY on an Oxide Computer rack switch, then writes a Rust tool to: parse Tektronix .wfm files, perform clock recovery and 8b/10b decoding, demultiplex four SGMII streams, decode ordered sets per IEEE 802.3, handle 100M rate adaptation (10x byte repetition), and finally write .pcap files for analysis with tshark/Wireshark. The full pipeline runs in ~410ms and was part of debugging an intermittent link issue caused by a switch IC misconfiguration.
Table of contents
First, a bit of contextLoading the waveformsQSGMII for dummies8b/10b decodingSeparating the streamsFrom code-groups to packetsStoring and analyzing packetsSort: