五月天视频APP下载入口安卓版 -五月天app官网无限观看
0731-84728105
15116127200
FAST入门(3)软硬协同分组处置赏罚 模子 之一
宣布时间 :2018-06-29
     软硬件协同的分组处置赏罚 是FAST区别其他数据平面 开源项目的最主要 的特点。模块(Module)是FAST平台中交流成效 界说、资源分配以及代码重用的基本 单元,特定分组处置赏罚 成效 到软硬件模块的照射 也是FAST软硬件协同分组处置赏罚 的关键 。
一、FAST模块简介
     FAST中的模块是可以 完成 特定网络处置赏罚 成效 的,具有独一 标志 的,相对 自力 的一个软件法式(UA)或FAST流水线中的硬件逻辑块。FAST模块可以 按需毗邻 ,组成上下游关系,完成 分组处置赏罚 的流水线。FAST模块具有一些共有的属性:
   (1)用户可见
     模块的用户可见是在交流成效 设计时,模块完成 的成效 是用户可以感知到而且关注的成效 。如FPGA完成 的分组协议剖析 逻辑块、输入 调治逻辑块、IEEE 1588端节点的时钟同步成效 块以及职掌 系统 内核中的TCP/IP协议栈等。这些成效 都与用户完成 的分组交流目的 亲近 关联。FPGA OS和职掌 系统 内核中用户不成 见且不体恤 的成效 完成 不行 称为模块,例如FPGA中的DMA引擎、DDR接口控制器以及职掌 系统 中的FAST驱动法式等。
   (2)自力 可重用
     模块间是相互 自力 的,在成效 完成 上没有明白 的成效 依赖或挪用 关系。模块之间只存在上下游关系,不存在父模块和子模块关系。分别 的模块能够 来自分别 的开发职员 ,这些模块在分别 的设计中可以重用,用户经过 分别 模块的组合完成 分别 的分组交流成效 。是以 硬件模块的设计必需 遵照 FAST流水线规范 中对模块接口信号语法语义的要求,FAST软件UA模块设计必需 基于FAST API,不行 对其下游 或下游模块的完成 要领提出任何假定 。
   (3)独一 标志
     FAST平台中每个模块都用被称为MID的8比特ID独一 标志 ,是以 平台中最多支持256个模块。FAST划定0-127为FAST流水线中硬件模块的MID标志 ,128-255为FAST软件模块的标志 。硬件模块在实例化时经过 外部 连线获取MID,软件UA在初始化注册时获取自己 的MID。在软硬件协同分组处置赏罚 中,对分组目的模块号(DMID)的设置是完成 分组处置赏罚 路经控制的主要 手腕 。
     FAST开源项目为用户提供了经由 实验 可直接运用 的通用软硬件模块。其中FAST流水线中的通用硬件模块征求 :
     通用分组剖析 模块(GPP),完成 以太网、ARP、IPv4、IPv6、ICMP/ICMPv6,TCP和UDP等协议的剖析 成效 ;
     通用关键 字提取模块(GKE),完成 IPv4/IPv6分组的多元组(五元组+输入 端口号等)信息的提取和查表关键 字的天生 ;
     通用查表模块(GME),完成 TCAM查表成效 ,将GKE提取的五元组信息照射 为14位的FlowID。
     通用举动 模块(GAC),凭证 FlowID搜索 举动 表,获取分组的目的输入 接口或UA的MID(若是 需求 将分组定向到软件处置赏罚 )。
     通用输入 引擎(GOE),完成 基于令牌桶的输入 分组Meter,扬弃 分组计数等成效 ;
     通用的软件模块征求 :
     OpenFlow通道UA(OXFP),在FAST硬件流水线与源端SDN控制器之间树立 OpenFlow 1.3协议通道的毗邻 ,完成 packet-in/packet-out分组交流以及FlowMOD等旧事 的剖析 执行职掌 。
     分别 用户凭证 自身 需求,已开发的FAST流水线模块还征求 IEEE 1588 PTP协议剖析 模块、DDOS前端检测模块、TCP署理模块、Lisp协议封装/解封装模块、冒充源IPv6地址检测模块、丈量分组准时 发送模块及传输协议跳变模块等。完成 的软件UA征求 IPv6路经MTU发现模块、DDOS检测控制模块、形状 防火墙模块及LISP照射 管理 署理模块等。
     上述用户自界说模块与FAST提供的基本 软硬件模块组合,即可在尺度OpenFlow交流基础 上,扩大 更多的用户定制成效 ,完成 有形 态 的数据平面 处置赏罚 。
二、模块的组织与交流成效 完成
     不失一样往常 性,FAST平台中征求 n个硬件模块和m个软件模块(n>0,m>0)。n个硬件模块组成硬件流水线,抵达 分组依次 由硬件流水线的第1级(模块X1),第2级(模块X2)…第n级(模块Xn)举行 处置赏罚 。m个软件模块(UA)毗邻 到FAST内核上,经过 FAST API与其他软件模块和FAST硬件流水线举行 分组交流。
     FAST模块间交流的信息征求 分组信息(P)以及保管 中央 处置赏罚 效果 的元数据(MD)。元数据中征求 了处置赏罚 分组的目的模块MID(DMID)、上一个处置赏罚 该分组的源模块MID(SMID)、以及分组吸收 端口号、吸收 时间 戳等信息。FPGA OS需求 为网络端口输入 的分组初始化其MD字段,例如填写吸收 端口号,记号 吸收 时间 戳等。
      分组在FAST平台中处置赏罚 的路经控制主要 由MD中的DMID和SMID字段控制。例如FAST内核基于MD中的DMID和SMID完成 分组在分别 软件UA与硬件流水线之间的交流。而SMID在路经选择中运用 主要 是为了无邪 的完成 分组处置赏罚 流程的编排。
     基于上图所示的模块组织要领,FAST平台可将已有开源模块毗邻 起来完成 通用分组交流成效 。例如,当FAST流水线由GPP、GKE、GME、GAC和GOE五个模块依次 毗邻 组成,软件加载OpenFlow通道UA(OXFP)时,平台即可支持基本 的OpenFlow1.3成效 。
     用户可以经过 在已有的模块处置赏罚 架构中拔出 新的模块完成 成效 扩展。例如当需求 在特定接口上(例如毗邻 外部 网络的端口0上)完成 针对TCP的形状 防火墙(SFW)成效 时,一种要领是软件扩展,在linux用户空间编写SFW成效 的UA,经过 设置 GME的规则,将0号口收支 的TCP分组定向到SFW UA举行 处置赏罚 ,这种要领完成 快速 ,不需求 改动现有的硬件;另一种要领是硬件扩展,直接在FAST流水线中拔出 SFW硬件模块,这种要领处置赏罚 功用 高,适宜 熟习 硬件设计的研讨 职员 。
     怎样 基于DMID和SMID完成 分组处置赏罚 路经控制,怎样 选取适宜 的成效 扩展方式以及成效 扩展的完成 细节将在后续文章中逐渐 先容 。