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
期刊:
影响因子:
--
通讯作者:
N. McKeown
中科院分区:
文献类型:
--
作者:
Anirudh Sivaraman;M. Budiu;Alvin Cheung;Changhoon Kim;Steve Licking;G. Varghese;H. Balakrishnan;Mohammad Alizadeh;N. McKeown
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.