Packet Transactions: A Programming Model for Data-Plane Algorithms at Hardware Speed

Packet Transactions: A Programming Model for Data-Plane Algorithms at Hardware Speed
复制标题

数据包事务:硬件速度下数据平面算法的编程模型

DOI:
--
复制
发表时间:
2015
期刊:
arXiv.org
影响因子:
--
通讯作者:
N. McKeown
N. McKeown
中科院分区:
--
文献类型:
--
作者:
Anirudh Sivaraman;M. Budiu;Alvin Cheung;Changhoon Kim;Steve Licking;G. Varghese;H. Balakrishnan;Mohammad Alizadeh;N. McKeown

文献摘要

被引文献

相似文献

数据平面算法在通过网络交换机的每个数据包上执行;它们包含用于拥塞控制、网络测量、活动队列管理和负载平衡的许多方案。因为这些算法今天是在硬件中实现的,所以它们在构建之后不能改变。为了解决这个问题,最近的工作提出了可编程线速开关的设计。然而,编程语言与底层硬件非常相似,这使得它们不方便用于此目的。 本文介绍了Domino,一个类似C的命令式语言来表达数据平面算法。Domino引入了包事务的概念,它被定义为一个顺序的代码块,它是原子的,并且与其他类似的代码块隔离。Domino编译器将Domino代码编译为比萨,这是一系列基于新兴的可编程交换机芯片组的抽象机器。我们将展示Domino如何使几个用C语法编写的数据平面算法以硬件线速率运行。
Data-plane algorithms execute on every packet traversing a network switch; they encompass many schemes for congestion control, network measurement, active-queue management, and load balancing. Because these algorithms are implemented in hardware today, they cannot be changed after being built. To address this problem, recent work has proposed designs for programmable line-rate switches. However, the languages to program them closely resemble the underlying hardware, rendering them inconvenient for this purpose. This paper presents Domino, a C-like imperative language to express data-plane algorithms. Domino introduces the notion of a packet transaction, defined as a sequential code block that is atomic and isolated from other such code blocks. The Domino compiler compiles Domino code to PISA, a family of abstract machines based on emerging programmable switch chipsets. We show how Domino enables several data-plane algorithms written in C syntax to run at hardware line rates.