There's a bunch in here that I think HN readers will find fascinating, but it may help to have a little context going in. At Oxide, we have developed our own switch[0][1] using switching silicon that implements P4[2]. P4 is really interesting -- you can think of it as a much cleaner eBPF -- and our programmable switch is effectively a P4 engine. This is really powerful; if you want to jump to why, listen to Ry expand on it about an hour into the conversation.[3]
This conversation goes into the details about making all of this work. Along the way, we hit on pushing a cycle-accurate simulator to its limits; developing a new P4 compiler that has a Rust target; using that compiler to then develop an accurate hardware-virtualized model of the ASIC; developing a new routing protocol (delay driven multipathing); and how all of this adds to up solving some gnarly problems like microcongestion and flexible topology construction.
This conversation goes into the details about making all of this work. Along the way, we hit on pushing a cycle-accurate simulator to its limits; developing a new P4 compiler that has a Rust target; using that compiler to then develop an accurate hardware-virtualized model of the ASIC; developing a new routing protocol (delay driven multipathing); and how all of this adds to up solving some gnarly problems like microcongestion and flexible topology construction.
[0] https://share.transistor.fm/s/c80a79d8
[1] https://share.transistor.fm/s/65a10522
[2] https://p4.org/
[3] https://www.youtube.com/watch?v=AkWh2Sms3aw#t=1h4m46s