Domino
Packet Transactions: High-Level Programming for Line-Rate Switches
参考链接:http://web.mit.edu/domino/
如今的交换机在很大程度上被视为固定的设备,其功能不能被修改。这是因为他们都建立了专门用来转发专用硬件。此外,该硬件不能一旦建成修改。
有一些可编程的交换机已经实现如EPGA,都能实现可编程,可是他的转发效率却下降了不少。而Domino系统就是一个可以让网络设备能够灵活的支持算法,并还具有高性能。
Domino is a system to program the data plane of high-speed programmable routers and help design such programmable routers in the first place
Domino系统包含了三个部分:
Domino 用来编写packet transactions的语言
Banzai : a model for how switch hardware called Banzai, which allows us to experiment with different switches in simulation.
compier 从Domino到Banzai交换机上。


这个过程大概是这样的,首先Domino写的Packet transaction先有编译器判断是不是具有原子性,如果不是原子性就直接不执行。如果已经已经是原子性的话,直接通过这个transcation转换为 指令集合(instruction set)里对应的原子,然后在映射到Banzai machine.
可以注意的是 Banzai自身是具有几个原子的。
我们的目标之一是通过一个捕获其本质的简单机器模型(Banzai)来制定这些新兴的交换机架构。
与P4的联系
P4是一个声明式语言,它能够很好操作交换机上的无状态的分组处理任务,例如分组转发和访问控制。然而他有一个非常低级别的接口,用于操纵有状态的数据平面的算法,因为他需要我们手动去配置可编程交换机的流水线来实现算法。对于许多算法,最好是表示位命令式语言中的代码片段比较好。
编译器后端可以使用Domino语言编写的数据包事务自动生成P4。 (展望未来,我们希望这项工作为P4的高层抽象提供了参考。)
This paper presented Domino, a C-like imperative language that allows programmers to write packet-processing code using packet transactions, which are sequential code blocks that are atomic and isolated from other such code blocks. The Domino compiler compiles packet transactions to be executed on Banzai, which is a machine model based on programmable line-rate switch architectures.Packetprocessing languages are still in their infancy; we hope these
results will prompt further work on programming abstractions for packet processing hardware.
Domino system
定义:一种可以让交换机既实现可变成化,又能保持一个线性的速率
High-level Programming for Line-Rate Switches
起源:
研究方向: 数据平面针对算法编程的处理
发起者:Anirudh Sivaraman
具体项目:
时间点:Tuesday, August 23, 2016 http://conferences.sigcomm.org/sigcomm/2016/program.php
浙公网安备 33010602011771号