T4P4S: A Target-independent Compiler for Protocol-independent Packet Processors

T4P4S: A Target-independent Compiler for Protocol-independent Packet Processors
复制标题

T4P4S:用于协议无关数据包处理器的目标无关编译器

DOI:
10.1109/hpsr.2018.8850752
复制
发表时间:
2018
期刊:
2018 IEEE 19th International Conference on High Performance Switching and Routing (HPSR)
影响因子:
--
通讯作者:
S. Laki
S. Laki
中科院分区:
--
文献类型:
--
作者:
Péter Vörös;Dániel Horpácsi;R. Kitlei;Dániel Leskó;M. Tejfel;S. Laki

文献摘要

被引文献

相似文献

尽管控制平面的可编程性在过去几年中已经得到了彻底的研究,但只有有限数量的研究超出了数据平面只是简单数据包转发设备的集合的考虑。即使 OpenFlow 这种流行的、极具表现力的数据平面编程语言,仍然仅限于支持现有协议头的子集。为了克服这些限制,最近出现了新的数据平面编程模型。其中之一是 P4,一种用于对数据包处理器进行编程的高级语言,它在数据包结构和处理管道的描述方面具有极大的灵活性。在本文中,我们提出 T4P4S11T4P4S 代表 P4 Switches 转换器,其实现可在 https://github.com/P4ELTE/t4p4s 上找到,这是一个从 P4 描述生成高性能交换机程序的多目标编译器。为了支持多个目标,定义了网络硬件抽象层(NetHAL);编译器生成核心切换代码,然后将其与特定于目标的 NetHAL 实现链接起来。为了避免性能下降,应该仔细选择这种分离的边界,因为核心程序只负责与目标无关的优化,而 NetHAL 的实现应该涵盖与目标相关的增强。为了分析性能,我们进行了全面的测量,结果表明 T4P4S 生成的交换机可以轻松扩展到 100 Gbps 以上。
Although the programmability of control planes has been thoroughly examined in the past years, only a limited number of studies go beyond the consideration that the data plane is only a collection of simple packet forwarding devices. Even OpenFlow, a popular, very expressive data plane programming language, is still restricted to supporting a subset of existing protocol headers. To overcome such limitations, new data plane programming models have recently emerged. One of the them is P4, a high-level language for programming packet processors that enables great flexibility in the description of packet structures and processing pipelines. In this paper, we propose T4P4S11T4P4S stands for Translator for P4 Switches and its implementation is available at https://github.com/P4ELTE/t4p4s., a multi-target compiler generating high performance switch programs from P4 descriptions. To support multiple targets, a networking hardware abstraction layer (NetHAL) is defined; the compiler generates a core switch code which is then linked with a target-specific NetHAL implementation. To avoid performance degradation, the boundaries of this separation should be chosen carefully, since the core program is only responsible for target-independent optimization, while the implementation of NetHAL should cover target-dependent enhancements. To analyze the performance, thorough measurements have been carried out, showing that the switch generated by T4P4S can easily scale beyond 100 Gbps.