FPGA
该如何使用FPGA加速通用路由封装(GRE)的解封装速度的工作负载?FPGA加速在网络设计和特定内容提供商操作中有着怎样的实际高效运用?删除GRE标头解决多云连接限制,在与基于软件的处理进行相比时又会有着怎样的表现?请往下看,有答案~
图 1. 使用 GRE 进行通信的示例
面向包含FPGA的英特尔® 至强® CPU 的英特尔® 加速堆栈由英特尔设计和经销,是由一系列软件、固件和工具所构成的强大组合,可帮助设计师更加轻松地开发和部署英特尔® FPGA,以支持数据中心的工作负载优化。它还可以提供经过优化和简化的硬件接口和软件应用编程接口(API),帮助开发人员节省时间,以便他们更多地专注于提高解决方案的独特价值。
本文使用的英特尔® FPGA可编程加速卡(英特尔® FPGA N3000原型主板支持在连接到QSFP 28/QSFP+收发器的以太网MAC功能与连接到英特尔以太网控制器 XL710(NIC)的以太网 MAC 功能之间,在用户可编程逻辑(UPL)模块中实现用户特定的数据包处理功能,使用户能够专注于开发这一内核逻辑。
图 2. 英特尔® FPGA可编程加速卡(英特尔® FPGA PAC)N3000 原型主板
使用的FPGA内部接口可在一个时钟周期内接收256位(32 字节)的数据包数据。第一列显示传入的数据包数据。当GRE数据包在第3层(L3)中传输时,一旦接收到第二个数据,便可开始解封装处理。
首先,通过添加逻辑分析仪验证内部波形;验证后,在5至7个时钟周期内接收最小GRE数据包的所有数据(以太网帧(64B)+ 外部 IPv4 标头(20B)+ GRE标头(4B)= 88 字节)。此外,通过使用解封装缓冲两个时钟周期的入站分组数据,可在延迟的第三个时钟周期中实施管道处理。
图 3. 时间表
实施与图 4 所示配置类似的状态机,执行上述解封装操作。它从初始状态(INIT)开始确定所接收的分组数据是否为GRE分组,然后根据有效信号的真/假,转换为等待状态(WAIT)或有效载荷处理状态(PYLD)。最后,它转换为EOP状态(EOP),该状态表示数据包在返回初始状态(INIT)之前已经终止。
状态机实现(部分内容)
图 5. 高级状态转换视图(部分省略)
我们从FPGA加速、使用DPDK进行软件处理和直连网络设备方面对GRE解封装流程的延迟和吞吐量性能进行了比较。图 6 所示为评估的拓扑结构。
图 6. 平台对比
表 1 列出了针对一个数据包测量的每个延迟值。DPDK是一个用户空间软件处理平台,通过CPU极点模式和批处理提供高速数据包处理。因此,像预计的那样,一个数据包的延迟大于FPGA硬件处理所实现的延迟。与DPDK相比,FPGA加速将实现更低的功耗,其中CPU用于数据包检索处理。
表 1. 平台延迟对比
测量方法:TCP 段使用100字节的以太网帧长度,包括帧校验序列(FCS)。GRE测试使用100字节的以太网帧长度,包括FCS;在删除 IP/GRE 标头(24 字节)后,入站服务器收到了一个76字节的以太网帧。一个数据包发送五次,并计算平均值。
图 7. 延迟比较
表 2 列出了吞吐量值,表示已达到的足够性能水平。
测量方法:TCP段使用92字节的以太网帧长度,包括FCS。GRE测试使用92字节的以太网帧长度,包括FCS;在删除IP/GRE标头(24 字节)后,入站服务器收到了一个68字节的以太网帧。TCP段和GRE封装数据包以 1:1 的比率发送到入站服务器。
表 2. 平台吞吐量比较
平台对比注意事项
由于每种解决方案都有自己的优势和劣势,因此选择适合贵公司情况或应用的解决方案非常重要。表 3 列出了各种应用的优势和劣势。
表 3. 面向不同应用的FPGA加速解决方案的优势和劣势
图 8. FPGA模块逻辑配置
图 9. DPDK模块逻辑配置
THE END
网络设备扩展无法满足如今的服务云化和集中化需求。为应对这一问题,许多解决方案提供商经常为企业提供使用基于服务器的软件处理来替代传统设备的软件定义网络(SDN)和网络功能虚拟化(NFV)技术。
然而,通过比较商用网络设备、基于FPGA网卡的硬件处理和基于DPDK的软件处理,可以发现在某些特殊情况下,基于SDN或NFV的软件处理并非总能提供最佳解决方案。如本文所示,根据网络要求,用专门针对具体情形进行编程的FPGA替代某些网络功能能更有效。在这种情况下,硬件可编程FPGA可能适合范围更广的SDN和NFV。