Skip to content

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.

    Start with Part 1

  • The machinery


    Fleet setup, reference solutions, the generators and build pipeline. What you need to run the tutorial.

    How it was built

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 PDF
2 Packet Processing Programming on SmartNICs Muhammad Shahbaz, U. Michigan PDF
3 Programmable Transport on SmartNICs Mina Tahmasbi Arashloo, U. Waterloo PDF

Exercises

Mark congestion, react to it, then use the reaction to steer traffic.

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.

What you need