Programming SmartNICs¶
From Packet Processing to Programmable Transport — a hands-on tutorial from ACM SIGCOMM 2026.
Participants programmed an NVIDIA BlueField-3 in C: marking congestion in hardware with DOCA Flow, then writing the congestion-control algorithm that reacts to it on the NIC's DPA with DOCA PCC. On real cards — twelve of them, at five sites.
Two halves¶
-
The material
Guides, exercise scaffolds, traffic scripts. What you need to do the exercises.
-
The machinery
Fleet setup, reference solutions, the generators and build pipeline. What you need to run the tutorial.
The material is generated from the machinery: solutions first, scaffolds derived from them, then a script publishes the participant repository — with no solutions in it.
Team¶
Four presenters and four organizers, from six institutions — who they are.
Talks¶
| # | Talk | Presenter | |
|---|---|---|---|
| 1 | SmartNIC Architectures and Programming Models | Mario Baldi, NVIDIA | |
| 2 | Packet Processing Programming on SmartNICs | Muhammad Shahbaz, U. Michigan | |
| 3 | Programmable Transport on SmartNICs | Mina Tahmasbi Arashloo, U. Waterloo |
Exercises¶
Mark congestion, react to it, then use the reaction to steer traffic.
-
Part 1 — Mark ECN — program the eSwitch with DOCA Flow to CE-mark live RoCE traffic. You write three pipes. PDF
-
Part 2 — Congestion control — write the two rate reactions of a DCQCN-style PCC controller, on the DPA. PDF
-
Bonus — Path steering — feed PCC rate reports into a live DOCA Flow hash pipe to split traffic. PDF
The deck projected during the sessions: hands-on slides.
Doing them yourself¶
The exercises assume a BlueField-3 wired and configured a particular way: two ports that reach each other, a fixed sub-function layout, and one firmware knob for Part 2.