论文标题

P4RROT:为应用程序层生成P4代码

P4RROT: Generating P4 Code for the Application Layer

论文作者

Györgyi, Csaba, Laki, Sándor, Schmid, Stefan

论文摘要

吞吐量和延迟关键应用程序通常会受益于在客户附近执行计算。为了实现这一点,最近出现了分布式计算范例,例如边缘计算。但是,随着可编程数据平面的出现,计算不仅可以由服务器执行,而且可以将它们卸载到网络交换机上。像P4这样的语言可以灵活地重新编程整个数据包处理管道。尽管这些设备承诺高吞吐量和超低响应时间,但对于不熟悉网络域的应用程序开发人员而言,在数据平面编程语言中实现应用程序层任务P4仍然具有挑战性。在本文中,我们首先识别并检查障碍物和疼痛点,当将基于服务器的计算卸载到网络时可以体验到。然后,我们提出P4RROT,即代码生成器(以库的形式),它可以通过提供用户友好的API来描述要卸载的计算来克服这些限制。在讨论了P4RROT背后的设计选择之后,我们介绍了两个P4目标的概念验证实现:NetRonome SmartNIC和BMV2。

Throughput and latency critical applications could often benefit of performing computations close to the client. To enable this, distributed computing paradigms such as edge computing have recently emerged. However, with the advent of programmable data planes, computations cannot only be performed by servers but they can be offloaded to network switches. Languages like P4 enable to flexibly reprogram the entire packet processing pipeline. Though these devices promise high throughput and ultra-low response times, implementing application-layer tasks in the data plane programming language P4 is still challenging for an application developer who is not familiar with networking domain. In this paper, we first identify and examine obstacles and pain points one can experience when offloading server-based computations to the network. Then we present P4RROT, a code generator (in form of a library) which allows to overcome these limitations by providing a user-friendly API to describe computations to be offloaded. After discussing the design choices behind P4RROT, we introduce our proof-of-concept implementation for two P4 targets: Netronome SmartNIC and BMv2.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源