A deep-dive engineering story tracing UDP packets from raw oscilloscope voltage waveforms all the way up to decoded network packets. Starting with a high-speed active differential probe soldered to an Oxide Computer Company rack switch, the author walks through: parsing Tektronix .wfm binary files using Rust and nom, decoding 8b/10b encoding by detecting comma characters and clock synchronization, demultiplexing QSGMII's four interleaved SGMII streams, converting code-groups to PCS ordered sets per IEEE 802.3, handling 100M-to-gigabit rate adaptation, and finally writing .pcap files for analysis in Wireshark and tshark. The full pipeline runs in ~410ms and was part of debugging an intermittent link failure caused by a switch IC misconfiguration.

26m read timeFrom mattkeeter.com
Post cover image
Table of contents
First, a bit of contextLoading the waveformsQSGMII for dummies8b/10b decodingSeparating the streamsFrom code-groups to packetsStoring and analyzing packets

Sort: