BittWare提供StreamSurge,这是一个用于BittWare的XUP-P3R加速卡的100G网络负载测试应用。StreamSurge作为预编译的比特流免费提供给XUP-P3R用户,使该卡成为一个简单的网络测试解决方案,只需支付硬件成本。点击这里获得StreamSurge的应用说明。
为什么将FPGA用于网络测试?
已经有软件解决方案用于任何带宽的网络协议测试和高达10GbE的负载测试。但在25G和更高的带宽下,即使是最新的多核英特尔至强CPU也无法跟上,你需要专用的网络加速硬件。
由于GPU不适合用于数据包处理,选择范围缩小到NIC ASIC或FPGA解决方案。基于ASIC的设备的优点是它们提供25-100Gbps的速度,并有许多用于广泛测试的功能。然而,专用的100G设备是相当昂贵的,它们的成本可能是单个FPGA卡的许多倍。
此外,基于FPGA的解决方案可以以更低的成本设计出符合用户需求的功能。
BittWare建立StreamSurge的动机
在BittWare,我们内部对100G网络负载测试有两种不同的使用情况。
这两种情况都需要多个100G测试器同时运行。虽然存在用于这些测试的ASIC测试器,但我们需要以非常高的单位成本(是XUP-P3卡价格的五倍或更多)购买几个。
我们的解决方案是缩小测试所需的功能,以SmartNIC Shell为起点,我们建立了StreamSurge。
它是如何工作的
因为我们从SmartNIC Shell开始,我们已经有了垫圈和其他 "管道",以便在FPGA中操作数据包。此外,我们还使用了DPDK数据转换器与主机应用连接。这为我们节省了大量时间,让我们的团队专注于SmartNIC应用中的独特之处:网络负载测试。
为了测试,我们需要在FPGA内创建一个数据包生成器,或者提供一种方法,使用FPGA播放或流式传输数据包,但要使用来自另一来源的数据包。我们选择了第二条道路,但同时启用了回放或流媒体。对于回放,用户首先从软件或ASIC源捕获数据包到PCAP文件。然后,StreamSurge可以从一个缓冲器中以线速度回放PCAP文件。
对于流媒体,我们利用行业标准的DPDK主机接口。这使XUP-P3R在数据包生成软件中显示为一个普通的网卡,在发送和接收时都有时间戳。在XUP-P3上有一个大的DRAM缓冲器,具有这些功能。
为了与StreamSurge接口,我们创建了 "streamcli "DPDK应用程序。这个命令行工具控制上述所有的硬件功能。此外,它还可以将数据包接收到PCAP文件中,传输PCAP文件,并可以根据IETF RFC 2544和ITU-T Y.1564测试神话的模式填充数据包缓冲区。
我们有一段视频,展示了StreamSurge在两个XUP-P3R卡上的操作,与GPS原子钟同步,并设置为测量卡间设备的延迟。
总结
对于网络数据包处理,BittWare的FPGA解决方案可以帮助解决CPU性能有限,而基于ASIC的解决方案要么没有,要么不可行,要么对所需应用来说太昂贵的问题。在这种情况下,基于ASIC的设备有足够的功能,但设备成本限制了持续集成测试或制造测试所能做到的。
相反,BittWare XUP-P3R卡为100Gb/s的网络测试提供了一个合适的解决方案。对于卡的所有者,StreamSurge在BittWare开发者网站上以比特流的形式免费提供(与有限的芯片/卡配置子集兼容)。
本文转载自:BittWare官网