Programmable data planes allow users to define their own data plane algorithms for network devices including appropriate data plane application programming interfaces (APIs) which may be leveraged by user-defined software-defined networking (SDN) control. This offers great flexibility for network customization, be it for specialized, commercial appliances, e.g., in 5G or data center networks, or for rapid prototyping in industrial and academic research. Programming protocol-independent packet processors (P4) has emerged as the currently most widespread abstraction, programming language, and concept for data plane programming. It is developed and standardized by an open community, and it is supported by various software and hardware platforms. In the first part of this paper we give a tutorial of data plane programming models, the P4 programming language, architectures, compilers, targets, and data plane APIs. We also consider research efforts to advance P4 technology. In the second part, we categorize a large body of literature of P4-based applied research into different research domains, summarize the contributions of these papers, and extract prototypes, target platforms, and source code availability. For each research domain, we analyze how the reviewed works benefit from P4's core features. Finally, we discuss potential next steps based on our findings.
翻译:可编程的数据处理机使用户能够为网络设备确定自己的数据平面算法,包括适当的数据平面编程界面(API),这种算法可以通过用户定义的软件定义网络(SDN)控制加以利用。这为网络定制提供了极大的灵活性,无论是专门、商业电器,例如5G或数据中心网络,还是工业和学术研究的快速原型。编程程序独立的包处理器(P4)已成为目前最广泛的抽象、编程语言和数据平面编程概念。它由一个开放的社区开发和标准化,并得到各种软件和硬件平台的支持。在本文件的第一部分,我们给数据平面编程模型、P4编程语言、结构、编译器、目标和数据平面 APIs等提供辅导。我们还考虑推进P4技术的研究工作。在第二部分,我们将大量P4应用研究的文献分类为不同的研究领域,总结这些文件的贡献,并提取原型、目标平台和源代码的可用性。在每一研究领域,我们最后分析我们从研究领域研究中得出的核心要素。我们如何分析我们从P4 的下一步的效益。