论文阅读:Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN
摘要:
在软件定义网络中,控制平面在物理上与转发平面分离,控制软件使用开放接口(例如OpenFlow)对转发平面(例如,交换机和路由器)进行编程。
本文旨在克服当前交换芯片和OpenFlow协议的两个局限性:
当前的硬件交换机非常严格,仅允许在一组固定的字段上进行“匹配操作”处理
OpenFlow规范仅定义了有限的数据包处理动作
我们提出了RMT(可重配置匹配表)模型,这是一种受RISC启发的,用于交换芯片的新流水线体系结构。我们确定了一些基本的动作原语集,以指定在硬件中如何处理标头。 RMT允许在不更改硬件的情况下在现场更改转发平面,像在OpenFlow中一样,程序员可以指定多个宽度和深度任意的匹配表,并且只受整体资源限制,并且每个表都可以配置为在任意字段上进行匹配。但是,与OpenFlow相比,RMT允许程序员更全面地修改所有标头字段。
我们的论文描述了实现RMT模型的64端口10 Gb / s交换芯片的设计,具体设计表明,灵活的OpenFlow硬件交换机实施几乎不需要额外的成本或功能即可实现。
背景/问题:
良好的抽象在计算机系统中至关重要,因为它们可以使系统处理变化并简化下一个更高层的编程。关键的抽象,网络已经取得了进步——TCP提供了端点之间连接队列的抽象,IP提供了从端点到网络边缘的简单数据报抽象, 但是网络内的路由和转发仍然是路由协议和转发行为的混乱综合体,控制和转发平面在封闭的垂直集成内部始终交织在一起。
SDN转发平面的编程控制允许网络所有者在复制现有协议行为的同时向网络添加新功能,OpenFlow作为控制平面和转发平面之间的接口,已经成为众所周知的基于Match+Action的方法。
在通用CPU上的软件中实现Match+Action并不难,但是对于当今大家希望达到的速度,大约1TB/s,我们需要专用硬件的并行性。由于交换芯片的交换速度比CPU快两个数量级,比网络处理器快一个数量级,且这种趋势不太可能改变。 因此,我们需要考虑如何在硬件中实施Match-Action,以利用流水线和并行性,同时综合考虑片上表存储器的限制。
在可编程性和速度之间存在自然的折衷,如今,支持新功能经常需要更换硬件。 如果Match-Action硬件允许只在字段中进行足够的重新配置,以便可以在运行时支持新型的数据包处理,那么它将改变我们对网络编程的看法。 这里真正的问题是,是否可以在不牺牲速度的情况下以合理的成本完成这项工作。
这时有两种可选择的方式:
单个匹配表:最简单的方法是在我们称为SMT(单个匹配表)模型中抽象匹配语义。在SMT中,控制器告诉交换机将数据包头字段的任何集合与单个匹配表中的条目进行匹配,SMT假定解析器定位并提取正确的头字段以与表匹配。然而,仔细研究表明,对于经典问题SMT模型的使用成本很高,该表需要存储头的每种组合,在很多情况下会造成浪费。
多个匹配表:MMT(多个匹配表)是SMT模型的自然改进。 MMT在一项重要的意义上超越了SMT,它允许多个较小的匹配表通过一个分组字段的子集进行匹配,对照表排列成阶段的流水线。通过修改分组报头或传递给阶段j的其他信息,阶段i可以使阶段j的处理依赖于阶段i <j的处理。但现有的交换芯片实现的表数量很少,在制造芯片时会设置宽度,深度和执行顺序,这严重限制了灵活性。另外,交换芯片仅提供了与常见处理行为相对应的有限动作列表,例如,转发,丢弃,递减TTL,推送VLAN或MPLS标头以及GRE封装。到目前为止,OpenFlow仅指定其中的一个子集,这个动作集不容易扩展,也不是很抽象。
解决办法:
可重配置匹配表:我们探索了一种称为RMT(可重配置匹配表)的MMT模型的改进。像MMT一样,理想的RMT将允许一组管线阶段,每个阶段具有任意深度和宽度的匹配表。
RMT超越了MMT,它允许通过以下四种方式重新配置数据平面:
可以更改字段定义并添加新字段
可以指定匹配表的数量,拓扑结构,宽度和深度,而仅受匹配位数的总体资源限制
可以定义新的动作,例如编写新的拥塞字段
可以将任意修改的数据包放置在指定的队列中,以在任何端口子集输出,并为每个队列指定排队规则。
我们描述了一种RMT交换器体系结构,该体系结构允许定义任意标头和标头序列,通过任意数量的表进行字段的任意匹配,任意写入包头字段(而不是包主体)的大小,以及每个包的状态更新。
实现细节:
我们将RMT称为“允许一系列流水线阶段”,每个都具有一个与字段匹配的任意深度和宽度的匹配表”,RMT交换机由解析器组成,以启用字段匹配,然后是任意数量的匹配阶段。
解析器的输出是一个包头向量,它是一组头字段,向量流经一系列逻辑匹配阶段,每个阶段都抽象了图1a中数据包处理(例如,以太网或IP处理)的逻辑单元,每个逻辑匹配阶段都允许配置匹配表大小。
理想RMT允许通过修改解析器来添加新字段,通过修改匹配存储器来匹配新字段,通过修改阶段指令来进行新操作,以及通过修改每个队列的队列规则来进行新排队。最重要的是,它允许将来修改数据平面无需修改硬件。
我们提倡一种如图所示的实现架构,该架构由大量物理流水线阶段组成,根据每个逻辑阶段的资源需求,可以将较少数量的逻辑RMT阶段映射到该阶段。优势在于它使用具有短线的平铺架构,可以以最小的浪费重新配置资源。
物理流水线阶段架构需要限制以允许实现千兆位速度:
匹配限制:设计必须包含固定数量的物理匹配阶段以及一组固定的资源
数据包标头限制:必须限制包含用于匹配和操作的字段的数据包标头向量
内存限制:每个物理匹配阶段都包含大小相同的表内存
动作限制:为了实现,必须限制每个阶段中指令的数量和复杂性
论文阅读:Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN的更多相关文章
- 【CV论文阅读】Dynamic image networks for action recognition
论文的重点在于后面approximation部分. 在<Rank Pooling>的论文中提到,可以通过训练RankSVM获得参数向量d,来作为视频帧序列的representation.而 ...
- 论文阅读:Flow-level State Transition as a New Switch Primitive for SDN
Name of article:Flow-level State Transition as a New Switch Primitive for SDN Origin of the article: ...
- [论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximati
[论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximation 本文结构 解决问题 主要贡献 主要 ...
- [置顶]
人工智能(深度学习)加速芯片论文阅读笔记 (已添加ISSCC17,FPGA17...ISCA17...)
这是一个导读,可以快速找到我记录的关于人工智能(深度学习)加速芯片论文阅读笔记. ISSCC 2017 Session14 Deep Learning Processors: ISSCC 2017关于 ...
- Event StoryLine Corpus 论文阅读
Event StoryLine Corpus 论文阅读 本文是对 Caselli T, Vossen P. The event storyline corpus: A new benchmark fo ...
- YOLO 论文阅读
YOLO(You Only Look Once)是一个流行的目标检测方法,和Faster RCNN等state of the art方法比起来,主打检测速度快.截止到目前为止(2017年2月初),YO ...
- 快速人体姿态估计:CVPR2019论文阅读
快速人体姿态估计:CVPR2019论文阅读 Fast Human Pose Estimation 论文链接: http://openaccess.thecvf.com/content_CVPR_201 ...
- Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读
Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读 Action4D: Online Action Recognition in the Crowd and Clutter 论文链接 ...
- 【论文阅读】Motion Planning through policy search
想着CSDN还是不适合做论文类的笔记,那里就当做技术/系统笔记区,博客园就专心搞看论文的笔记和一些想法好了,[]以后中框号中间的都算作是自己的内心OS 有时候可能是问题,有时候可能是自问自答,毕竟是笔 ...
随机推荐
- MySQL 中 savepoint 的使用
介绍 savepoint 结点名; # 设置保存点,并和rollback结合使用,实现回滚到指定保存点 rollback to 结点名; # 回滚到指定点 样例演示 USE human; ; sta ...
- mybatis插入出现org.apache.ibatis.executor.ExecutorException: No setter found for the keyProperty 'xxx'异常的原因
确定有setter方法,问题其实是xml文件中,insert的主键的列名写错了,如下,一开始写成ComId <insert id="insertCom" parameterT ...
- Binding的Path(路径)
Binding的源可以是控件(一个控件是另一个控件的Source.控件把自己的容器作为Source),把集合作为ItemsControls的Source,把xml作为Tree或者Menu的Source ...
- EJS学习(五)之EJS的CommonJs规范版本
EJS的CommonJs规范版本 ejs分为两个版本一个是CommonJs版本,另外一个是AMD规范的版本. 基础:html页面 安装:<script type="text/javas ...
- L2Dwidget.js L2D网页动画人物添加
hexo 添加live2d看板动画 https://www.jianshu.com/p/3a6342e16e57 首先贴出官网代码 官网地址配置:https://www.npmjs.com/packa ...
- TensorFlow入门——MNIST初探
import tensorflow.examples.tutorials.mnist.input_data as input_data import tensorflow as tf mnist = ...
- Java高并发程序设计学习笔记(一):并行简介以及重要概念
转自:https://blog.csdn.net/dataiyangu/article/details/86211544#_28 文章目录为什么需要并行?反对意见大势所趋几个重要的概念同步(synch ...
- 多线程编程-- part 4 线程间的通信
线程间的相互作用 线程之间需要一些协调通信,来共同完成一件任务. Object类相关的方法:notify(),notifyAll(),wait().会被所有的类继承,这些方法是final不能被重写.他 ...
- 设置Linux之CentOS7的网络的两种方式动态IP+静态IP
1 动态IP 参考之前的文章 点击进入 2 静态IP vi /etc/sysconfig/network-scripts/ifcfg-ens33 详情配置如下,上面半部分是我之前的动态IP的设置 静态 ...
- 安装MySQL数据库并开启远程访问
一.安装MySQL数据库 MySQL安装在系统盘下(C:\Program Files),方便系统备份. 1.双击安装程序,勾选“I accept the license terms”,点击“Next” ...