0731-84728105
15116127200
FAST入门(2):FAST交换平台简介
发布时间:2018-06-25
一、FAST交换平台的组成
      FAST是基于多核CPU和FPGA的开源可重构分组交换平台。通常对处理性能要求较高的分组处理功能由FPGA实现,对处理性能要求较低,实现复杂的功能可由CPU实现。用户既可通过扩展FPGA硬件流水线功能也可以通过CPU上编程实现对分组交换功能的扩充。
     802.1Q规范没有明确定义流量测量的粒度,无法对进入网络的流量进行细粒度的测量和管控。虽然支持多种输出调度算法,但更多是保证输出调度的优先级,或者按照预先确定的权值分配不同优先级队列占用的输出带宽,在调度中没有利用全局时间信息,无法实现确定性的延时控制。软件定义网络技术的应用可以简化交换流程,将生成树管理以及地址学习功能上载到控制器上实现,可以针对每条细粒度的流定义交换行为,但也难以实现确定性的延时控制。
     FAST交换的实现不依赖特定的CPU与FPGA型号,但为了更好地提供交换功能扩充能力,保证软硬件协同分组处理的基本性能,FAST的交换平台必须具有如下两个特点:
   (1)所有网络接口连接到FPGA上
     进入交换平台的分组首先送FPGA处理,离开交换平台的分组最后由FPGA发出。这样有两个优点。一是交换平台可精确获取分组接收时间以及控制发送时间,实现类似1588透明时钟的控制,支持时间敏感交换;二是平台可以支持各种新型的分组格式,支持内容中心网络(ICN)等非IP交换。
   (2)FPGA通过高带宽总线与CPU连接
     与传统交换芯片通过低带宽的SPI总线、以太网或是单Lane的PCIE总线与控制CPU连接不同,FAST平台中FPGA通过高带宽的总线与CPU连接,提升软硬件协同分组处理的性能,支持通过CPU软件对数据平面处理功能进行扩展。
     FAST交换平台的实现架构如下图所示。FPGA逻辑分为平台相关的FPGAOS(类似微软数据中心加速FPGA中的Shell)和FAST流水线两部分。FPGA OS主要实现平台相关,交换功能无关的分组处理,如网络接口的接收与发送、CPU的DMA引擎以及FPGA片外或片内实现的TCAM查表功能等。FAST 流水线实现交换相关的网络功能,如分组解析、关键字提取、转发查表、动作执行和输出控制等。用户可通过扩展流水线实现不同的交换功能。
     FAST流水线可将特定类型的分组定向发往CPU进行处理。CPU上FPGA接口驱动称为FAST驱动,该驱动识别FAST分组,根据分组携带Metadata中的内容将分组交协议栈或FAST内核处理。如果分组交协议栈(例如发往本地控制平面的分组),则分组格式要首先转换成为skb-buf的格式。FAST内核实现Linux用户空间中不同的FAST应用程序(UA)以及FAST硬件流水线之间FAST格式分组的交换。FAST UA通过FAST 编程库提供的API与FAST硬件流水线或其他UA交换FAST分组以及管理配置FAST流水线。

图1 FAST交换平台的组成
     FAST UA实现用户定义的分组处理功能,如与外部SDN控制器连接的OpenFlow通道,软件实现的新型转发交换(如LISP、段路由等)以及各类有状态Middlebox功能等。FAST流水线中的硬件模块可以通过查表决定直接转发分组或者把分组重新定向到特定的软件UA上。
二、支持FAST的网络平台
     为支持基于FAST的教学与科研,FAST开源社区联合湖南新实网络科技有限公司推出多款FAST交换平台,支持Intel/ARM CPU,以及Altera/Xilinx公司的多个型号的FPGA。
     采用Zynq-7000 SOC芯片,内嵌双核Cortex-A9 处理器,512MB DDR3内存;支持4路千兆以太网数据接口及一路千兆管理以太网接口。适合基于FAST的计算机网络教学和新型网络交换机制的验证。

图2 OpenBox-S4z
     OpenBox-S4z平台支持NetEXP教学案例,可用于研究生和本科生的计算机网络实验教学。高校教师与研究人员可免费申请试用OpenBox-S4z平台。
     基于Intel Atom CPU和Altera Arria V FPGA实现,支持8个千兆以太网和2个万兆以太网接口,以及一个千兆管理以太网接口。适合中等端口密度的实验网组网和新型网络设备原型验证。

图3 OpenBox-S28
     采用Zynq-7000 SOC芯片,内嵌双核Cortex-A9 处理器,1GB DDR3内存;支持16个千兆以太网接口和4个万兆接口,适合高端口密度的试验网组网和新型网络设备原型验证。

图4 OpenBox-S56
  FAST开源社区为所有OpenBox系列设备提供:
     (1)平台无关的FAST硬件流水线,FAST内核,FAST编程库以及OpenFlow通道等典型UA的源代码;
     (2)平台相关的FPGA OS以及FAST驱动的执行代码;
     (3)基于OpenBox平台的用户需求定制与技术培训服务。