Composing Dataplane Programs with μP4

Composing Dataplane Programs with μP4
复制标题

DOI:
10.1145/3387514.3405872
复制
发表时间:
2020-07
期刊:
Proceedings of the Annual conference of the ACM Special Interest Group on Data Communication on the applications, technologies, architectures, and protocols for computer communication
影响因子:
--
通讯作者:
Hardik Soni;M. Rifai;Praveen Kumar;Ryan Doenges;Nate Foster
Hardik Soni;M. Rifai;Praveen Kumar;Ryan Doenges;Nate Foster
中科院分区:
其他
文献类型:
--
作者:
Hardik Soni;M. Rifai;Praveen Kumar;Ryan Doenges;Nate Foster

文献摘要

被引文献

相似文献

像P4这样的数据平面语言使用特定于域的原语(如可编程解析器和匹配动作表)实现了灵活高效的数据包处理。不幸的是,P4程序往往是单片的,并且与硬件架构紧密耦合,这使得很难以可移植和模块化的方式编写程序-例如,通过组成可重用的标准协议库。为了应对这一挑战,我们提出了一个新的框架(μP4)的设计和实现,包括一个轻量级的逻辑架构,抽象远离底层硬件流水线的结构,自然支持强大的形式的程序组合。使用示例,我们将展示如何启用模块化编程。我们提出了一个原型的编译器,生成代码的多个较低级别的架构,包括赤脚的Tofino本地架构。我们评估我们的编译器在现实的例子引起的开销。
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.