arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2107.02244cs.NIcs.PL
收藏

Lucid:一种数据平面控制语言

Lucid: A Language for Control in the Data Plane

John Sonchack, Devon Loehr, Jennifer Rexford, David Walker

摘要:

可编程交换机硬件使在网络数据平面内移动细粒度控制逻辑成为可能,从而提高了广泛应用的性能。然而,具有集成控制的应用固有地难以用诸如P4的现有数据平面程序设计语言编写。本文介绍了Lucid,一种语言,提高了抽象层次,把控制功能的数据平面。Lucid引入了一些抽象概念,可以轻松编写复杂的数据平面应用程序,这些应用程序具有交错的数据包处理和控制逻辑、专门的类型和语法系统(可防止与数据平面状态相关的程序错误)以及一个开源编译器(可将Lucid程序转换为针对英特尔Tofino优化的P4)。这些特性使Lucid通用且易于使用,正如我们通过在Lucid中编写一套10个不同的数据平面应用程序所展示的那样。即使对于没有Tofino经验的程序员来说,工作原型也需要不到一个小时的时间来编写,与P4相比,代码行数减少了大约10倍,并且可以有效地编译为真正的硬件。在一个用Lucid编写的有状态防火墙中,我们发现使用Lucid将控制从交换机的CPU转移到其数据平面处理器可以将性能敏感型操作的延迟减少300倍以上。

英文摘要:

Programmable switch hardware makes it possible to move fine-grained control logic inside the network data plane, improving performance for a wide range of applications. However, applications with integrated control are inherently hard to write in existing data-plane programming languages such as P4. This paper presents Lucid, a language that raises the level of abstraction for putting control functionality in the data plane. Lucid introduces abstractions that make it easy to write sophisticated data-plane applications with interleaved packet-handling and control logic, specialized type and syntax systems that prevent programmer bugs related to data-plane state, and an open-sourced compiler that translates Lucid programs into P4 optimized for the Intel Tofino. These features make Lucid general and easy to use, as we demonstrate by writing a suite of ten different data-plane applications in Lucid. Working prototypes take well under an hour to write, even for a programmer without prior Tofino experience, have around 10x fewer lines of code compared to P4, and compile efficiently to real hardware. In a stateful firewall written in Lucid, we find that moving control from a switch's CPU to its data-plane processor using Lucid reduces the latency of performance-sensitive operations by over 300X.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑