With traditional networking, users can configure control plane protocols to match the specific network configuration, but without the ability to fundamentally change the underlying algorithms. With SDN, the users may provide their own control plane, that can control network devices through their data plane APIs. Programmable data planes allow users to define their own data plane algorithms for network devices including appropriate data plane APIs which may be leveraged by user-defined SDN control. Thus, programmable data planes and SDN offer 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 this paper, we survey the literature from 2015 to 2020 on data plane programming with P4. Our survey covers 497 references of which 367 are scientific publications. We organize our work into two parts. In the first part, we give an overview of data plane programming models, the programming language, architectures, compilers, targets, and data plane APIs. We also consider research efforts to advance P4 technology. In the second part, we analyze a large body of literature considering P4-based applied research. We categorize 241 research papers into different application domains, summarize their contributions, and extract prototypes, target platforms, and source code availability.
翻译:使用传统的网络,用户可以配置控制平面协议,以匹配特定的网络配置,但不具备从根本上改变基本算法的能力。使用SDN,用户可以提供自己的控制平面,能够通过数据平面 API控制网络设备。程序化数据平面允许用户为网络设备定义自己的数据平面算法,包括适当的数据平面 API,可以通过用户定义的SDN控制加以利用。因此,可编程数据平面和SDN为网络定制提供了很大的灵活性,无论是专门、商业用具,或数据中心网络,或工业和学术研究的快速原型。根据协议设计包处理器(P4)已经成为目前最广泛的抽象、编程语言和数据平面编程概念。它由开放的社区制定和标准化,并得到各种软件和硬件平台的支持。因此,我们从2015年至2020年对基于数据平面图的编程文献进行了调查。我们的调查覆盖了497个来源,其中367个是科学出版物。我们把我们的工作分为两个部分。在第一部分,我们把基于协议的包处理协议的包处理包处理程序的包处理过程的处理过程,一个大域域域域域内,我们把数据图用于研究结构,我们把数据平面研究结构的图 将数据平面图中的数据结构的图的图解用于研究的图案的图案的图式结构,我们考虑了大结构,我们研究的图中,我们研究的图中,我们考虑了一个结构,我们研究结构,我们研究的图中,我们研究的原型号用于研究的图。