OpenBox is applied in the experimental teaching of computer network in Peking University

    北京大学计算机系在2018年秋季学期《计算机网络实习》课程中选择OpenBox-S4作为网络教学实验平台,开展网络协议处理、硬件转发和SDN交换方面的实验。     本学期共有83名大二到大四的学生选择《计算机网络实习》课程,其中60名同学基于OpenBox-S4开展实验。针对北京大学学生网络基础扎实,对网络新技术求知欲强的特点,湖南新实专门为实验定制了5个案例,包含ICMP报文协议观测与 阅读更多…

FAST virtual address space design and usage

    FAST项目的主要特色是基于FPGA硬件与多核CPU软件的协同处理实现SDN交换的数据平面。虚拟地址空间(Virtual Address Space,以下简称VAS)定义了FPGA硬件与CPU软件间的界面,在FAST项目研发中占有重要地位。     掌握VAS的概念和使用方法是进行平台相关的FPGA OS逻辑开发、平台无关的FAST UM开发、平台相关软件以及平台无关的用户程序(UA)开发 阅读更多…

FAST FPGA User Module Design Specification

1 前言     FAST(FPGA bAsed SDN swiTh)是基于FPGA的可重构SDN交换架构。平台(硬件板卡)无关是FAST的重要特点。因此,需要定义FAST交换逻辑与FPGA平台相关逻辑的接口。这些接口包括:(1)报文输入和输出接口;(2)管理配置接口;(3)协处理器接口;(4)辅助信号(如时钟与复位信号等)接口。     FAST中将平台相关逻辑称为支持FAST的FPGA操作系统 阅读更多…

Open source network tester-FAST ANT

【摘要】      ANT是国防科大网络系统组开发的一款基于FAST的轻量级网络测试分析器。在v1版本中,用户可利用OpenBox-S4 (基于Zynq 7000) 对吞吐、丢包以及精确时延进行精准测量。更重要的是,由于采用了FPGA-CPUs的高可编程架构,ANT可根据用户的定制化需求进行敏捷迭代开发,具有功能可定制、轻量级、低成本的特点,适合小型研究机构与初创公司进行网络性能与功能的测试与分析 阅读更多…

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模块能够按需连接,组 阅读更多…