P4DB: On-the-Fly Debugging for Programmable Data Planes

Cheng Zhang,Jun Bi,Yu Zhou,Jianping Wu,Bingyang Liu,Zhaogeng Li,Abdul Basit Dogar,Yangyang Wang
DOI: https://doi.org/10.1109/tnet.2019.2927110
2019-01-01
IEEE/ACM Transactions on Networking
Abstract:While extending network programmability to a more considerable extent, P4 raises the difficulty of detecting and locating bugs, e.g., P4 program bugs and missed table rules, in runtime. These runtime bugs, without prompt disposal, can ruin the functionality and performance of networks. Unfortunately, the absence of efficient debugging tools makes runtime bug troubleshooting intricate for operators. This paper is devoted to on-the-fly debugging of runtime bugs for programmable data planes. We propose P4DB, a general debugging platform that empowers operators to debug P4 programs in three levels of visibility with rich primitives. By P4DB, operators can use the watch primitive to quickly narrow the debugging scope from the network level or the device level to the table level, then use the break and next primitives to decompose match-action tables and finely locate bugs. We implement a prototype of P4DB and evaluate the prototype on two widely-used P4 targets. On the software target, P4DB merely introduces a small throughput penalty 1.3% to 13.8% and a little delay increase 0.6% to 11.9%. Notably, P4DB almost introduces no performance overhead on Tofino, the hardware P4 target.
What problem does this paper attempt to address?