A DPDK-Based P4 Pipeline Latency Measurement Framework for FPGA SmartNICs
LatencyLab measures per-packet processing latency of P4 pipelines running on FPGA SmartNICs, using two independent techniques: a TSC-based differential estimator (corrected via null-bitstream calibration) and an independent hardware-clock validation, obtained by kernel-free reflection of every probe packet to a ConnectX-5 NIC. Four P4 programs — Forward, FiveTuple, RemoveHeader, Checksum — were measured across 5 sessions x 10 runs x 20,000 packets each, on the Open Cloud Testbed (OCT) using Xilinx Alveo U280 cards running Open-NIC-Shell.
| Path | Contents |
|---|---|
p4/ |
Reference to the P4 source (maintained in a separate repo) |
bitstreams/ |
Compiled FPGA bitstreams, .mcs (Git LFS) |
receiver/ |
DPDK measurement engine + automation — runs on the FPGA host |
sender/ |
Traffic generation + hardware-clock capture/analysis — sender |
emulator/ |
Vendor worst-case latency model (VitisNetP4 calculated latency + insertion penalty) |
data/ |
Raw and processed measurement data (tsc/, pcap/, silicon/) |
Two nodes on the Open Cloud Testbed (OCT), using the CloudLab profile: https://www.cloudlab.us/show-profile.php?uuid=f9577a58-4186-11ee-9f39-e4434b2381fc
- Receiver node — hosts the AU280 FPGA SmartNIC; runs the DPDK
receiver/reflector (see
receiver/README.md). - Sender node — sends probe traffic via
tcpreplayand independently captures reflected packets with hardware timestamps (seesender/README.md).
- Get the P4 source and bitstreams — see
p4/README.mdandbitstreams/README.md. - Run a measurement campaign — see
receiver/README.mdandsender/README.md. The two sides run in coordination: the sender waits for a per-session ready signal from the receiver before capturing. Note that some hardware-specific values (PCIe addresses, interface names, MAC addresses) are testbed-specific and must be adjusted on new hardware — see the "Configuration required" section inreceiver/README.md. - Resulting data lands under
data/— seedata/README.mdfor the exact layout and file formats.
TODO: add the paper citation once published.