Composing Dataplane Programs with μP4

[ paper ] [ doi ]


Hardik Soni, Myriana Rifai, Praveen Kumar, Ryan Doenges, and Nate Foster.


Dataplane languages like P4 enable flexible and efficient packet-processing using domain-specific primitives such as programmable parsers and match-action tables. Unfortunately, P4 programs tend to be monolithic and tightly coupled to the hardware architecture, which makes it hard to write programs in a portable and modular way---e.g., by composing reusable libraries of standard protocols.
To address this challenge, we present the design and implementation of a novel framework (μP4) comprising a lightweight logical architecture that abstracts away from the structure of the underlying hardware pipelines and naturally supports powerful forms of program composition. Using examples, we show how enables modular programming. We present a prototype of the compiler that generates code for multiple lower-level architectures, including Barefoot's Tofino Native Architecture. We evaluate the overheads induced by our compiler on realistic examples.


  author = {Soni, Hardik and Rifai, Myriana and Kumar, Praveen and Doenges, Ryan
      and Foster, Nate},
  title = {Composing Dataplane Programs with $\mu${P4}},
  year = {2020},
  booktitle = {Proceedings of the Annual Conference of the ACM Special Interest
      Group on Data Communication (SIGCOMM)},
  pages = {329–343},
  series = {SIGCOMM '20}
  publisher = {Association for Computing Machinery (ACM)},
[ paper ] [ doi ]