Getting Started with FAST (8) – Software Design (part 3)

软硬件协同是FAST平台分组处理的特色。FAST平台软件主要实现FAST硬件流水线与FAST用户应用(UA)间数据通路和控制通路的信息交互,为UA编程提供函数库,是支撑UA运行的基础。FAST平台软件主要由Linux内核中的FAST驱动和FAST内核以及用户空间的FAST编程库组成。 一、FAST UA的通信模式 FAST UA运行时与FPGA以及网络接口有多种通信需求,包括FAST分组收发、对F 阅读更多…

Getting Started with FAST (7) – Hardware Pipeline (part 3)

针对不同应用场景在不同时间内对交换功能的需求不一致的特点,FAST流水线支持利用FPGA现场可编程特性,动态增加和卸载流水线模块以满足不断变化需求的特性。 一、硬件流水线的扩展 FAST基本流水线包含通用分组解析(GPP)、通用关键字提取(GKE)、通用匹配引擎(GME)、通用转发动作(GAC)和通用输出引擎(GOE)五个模块。基于这五个模块搭建的基本架构,FAST流水线支持动态模块的插入和删除, 阅读更多…

Getting Started with FAST (6) – Hardware Pipeline (part 2)

FAST基本的流水线由5个通用功能模块组成,可支持基本的OpenFlow转发功能。通过对基本流水线扩展,可以实现更加复杂的交换功能。 一、基本硬件流水线结构 FAST基本流水线包含通用分组解析(GPP)、通用关键字提取(GKE)、通用匹配引擎(GME)、通用转发动作(GAC)和通用输出引擎(GOE)五个模块,以及一个分组缓冲区(Buffer),如下图所示。由于Buffer对软件是不可见的,与具体的 阅读更多…

Getting Started with FAST (5) – Hardware Pipeline (part 1)

FPGA中实现的硬件流水线是FAST平台实现分组硬件处理的基础。FPGA OS为FAST流水线提供了基本的分组收发,高速DMA和查表等服务。FAST 流水线与FPGA OS的接口定义直接反映了分组硬件处理功能在FPGA OS和FAST流水线中的划分,也是FAST平台提供商必须考虑的关键问题。 一、FAST流水线接口定义 FAST流水线与FPGA OS之间定义了6个接口,分别是PIn/POut、CI 阅读更多…

Getting Started with FAST (4)

模块是FAST平台实现分组处理的基本单元,软硬件模块间高效的信息交互对实现软硬件协同分组处理具有重要意义。元数据(Metadata)是FAST平台中模块间信息交换的核心数据结构,是控制分组在软硬件模块间的处理路径以及信息交换的关键。 一、软硬件协同分组处理流程 FAST平台中传输的每个分组都携带一个元数据块,用于存放分组的接收信息(如端口号,接收时刻等)、路径控制信息(如下一个模块号DMID)、处 阅读更多…

Getting Started with FAST (3)

软硬件协同的分组处理是FAST区别其他数据平面开源项目的最重要的特点。模块(Module)是FAST平台中交换功能定义、资源分配以及代码重用的基本单元,特定分组处理功能到软硬件模块的映射也是FAST软硬件协同分组处理的关键。 一、FAST模块简介 FAST中的模块是能够实现特定网络处理功能的,具有唯一标识的,相对独立的一个软件程序(UA)或FAST流水线中的硬件逻辑块。FAST模块能够按需连接,组 阅读更多…

Getting Started with FAST (2)

一、FAST交换平台的组成 FAST是基于多核CPU和FPGA的开源可重构分组交换平台。通常对处理性能要求较高的分组处理功能由FPGA实现,对处理性能要求较低,实现复杂的功能可由CPU实现。用户既可通过扩展FPGA硬件流水线功能也可以通过CPU上编程实现对分组交换功能的扩充。 FAST交换的实现不依赖特定的CPU与FPGA型号,但为了更好地提供交换功能扩充能力,保证软硬件协同分组处理的基本性能,F 阅读更多…

Getting Started with FAST (1)

一、FAST是什么 FAST是FPGA加速的交换平台(FPGA Accelerated Switching plaTform)英文的简写,其诞生与发展深受斯坦福大学Nick Mckeown教授在十多年前主持的NetFPGA项目影响,目标是为计算机网络的科研与教学提供一个开源和开放的FPGA交换平台。 FAST代表的4个单词反映了项目的内容和特点: FPGA FAST实现的核心载体是可编程FPGA, 阅读更多…

FAST white paper

  1.引言   软件定义网络(SDN)采用控制与转发分离结构,由于允许网络拥有者和运营商对网络行为进行编程而取得巨大的成功,在工业界得到广泛认可。各种开源项目,如ODL和ONOS等,在SDN技术发展中扮演重要角色,是推动SDN应用的最大动力。 可编程交换是当前SDN的研究热点之一。如何实现高性能的openflow流表查表,如何扩展SDN交换平面功能,如何实现对高级语言编程(P 阅读更多…

Discussion with Bojie Li on ClickNP

引言:最近在FAST开源项目群中对2016 SIGCOMM论文ClickNP进行了讨论,我们总结了五个问题。我们与ClickNP的第一作者李博杰进行了沟通和讨论,在此对博杰表示感谢。下面把关于ClickNP的五个问题和博杰的回复向大家分享一下,希望大家能有所收获,并多多发表意见。 问题一:FPGA在数据中心交换中大有可为。随着多核处理器能力提升(特别是核数提升),数据中心端系统连接网络的第一跳交换 阅读更多…