A:简单讲就是跟踪数据流的第一个数据包和后续连续的数据包,第一个数据包会被OVS检查流表是否有此数据流的规则,如果没有就会添加规则,并转发数据包到目的地,并将流表卸载到eSwitch,后续的数据包就不会经过 OVS,而是被eSwitch直接按流表转发。详情可去b站搜索视频:“在 BlueField DPU 上实现OVS DPDK”。
BlueField-2 芯片集成了 ConnectX-6 Dx ,理论上支持任意数量的QP没有限制,活跃QP信息会缓存在芯片内部cache中.
A: pcie Gen3是 8GT/s,PCIe Gen4是16GT/s,也就是PCIe Gen4 x 4相当于PCIe3 x 8的带宽,16对16的话就是差一倍带宽;PCIe Gen3可以折算支持100Gb/s,但不能支持200Gb/s,如果网络吞吐量大,Gen4/Gen5肯定是最佳选择。
Q7:请问一下,如果宿主机和DPU上的arm同时向远端发出流量,会占用同一部分PCIE带宽吗?
A: 不会占用
Q8:请问一下bluefield3 dpu上datapath 加速器中的16核256线程和16个arm核指的是同一个东西吗?Bluefield2上有这个数据路径加速器吗?那这个加速器是什么类型的特殊处理器啊?asic吗?还是np?
A:不是同一个东西,Bluefield2上没有这个数据路径加速器,加速器类型:RISCV
Q9:编程时外来的数据包转发给arm核还是转发给主机是e switch决定的还是pcie switch决定的?
还可以看一下这个视频,可以比较直观的看到 OVS的卸载过程
https://www.bilibili.com/video/BV1fF411M7xy/?spm_id_from=333.999.0.0,卸载的逻辑就是根据eSwitch的规则表,eSwitch查表,如果是数据流的第一个数据包,就要先发给 Arm确定转发规则,后续的数据流的数据包就按照规则表里的规则转发。
Q10:想在 DPU 的 Soc 里执行 DMA 操作,doca_pci_bdf 应该选择什么?
Q11:请问主机上的DOCA应该怎么卸载?
A:升级内核以后一般需要重装ofed,DOCA是装在DPU上的。主机上装ofed即可。
Q12:在尝试跑DOCA的示例"URL-Filter"这个项目的时候,编译这些示例项目时,一直都遇到一个编译错误,应如何解决?
A:可以在export之后ldconfig,之后ldconfig -p |grep argp。
Q13:NVIDIA BlueField 显示的product name 是 SOC 是1代还是2代?
A:建议您从型号上来判断,一代的是MBF1开头,二代是MBF2开头
Q14:NVIDIA DPU中国黑客松竞赛的训练营可以旁听吗?
A:训练营是开放的,所有感兴趣的小伙伴都可以报名参加。
Q15:NVIDIA BlueField-2 DPU压缩和解压缩功能指的是什么呢?
A:指的是数据块的压缩和解压缩,类似gzip。另外,就是DPU芯片里集成了压缩和解压缩的处理器,可以高速处理。
Q16:CX6上使用mlnxqos正常,但用NVIDIA Bluefield-2DPU时命令不生效,请问原因?
A:BlueField DPU需要按照 DPU方式安装软件,和ConnectX并不完全一样,DPU需要在ARM上安装操作系统。
Q17:现在DPU支持P4了吗?
A:在发布的 DOCA 1.3 的 DOCA Service 中显示支持 P4 Runtime。
Q18:NVIDIA DOCA目前开源了吗?
A: DOCA分为两块,如 DOCA Driver中的 DPDK和SPDK本身就是开源软件,而DOCA 库 API 是Open License,随着成为 OPI创始成员,后续会有更多贡献在 OPI项目中,您可以关注Github上的OPI。
Q19:如图所示,流量会匹配所有规则然后转发到规则对应的队列;还是流量会先对应队列,然后只匹配队列对应的规则?
数据包流量进来会经过多个pipe,形成pipeline,在Flow Pipe里可以是Match,Monitor,Modify和Forward。
Q20:运行中entry和queue的对应关系是怎样的?
A: Queue是一一对应硬件内核的,要多内核处理,就是把不同 Entry 创建在不同的Queue 逻辑里
Q21: DPU和GPU结合使用的话,编译的toolchain是怎样的?
进入BF-X mode 之后,GPU对CPU host 不可见,具体可见下图
Q22:运行ipmitool 这个命令对硬件有要求吗?
具体运行程序如下:sudo ipmitool power cycle
Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory
A:您的 DPU 卡上不带 BMC。具体可参考:
Q23:BlueField-X的是融合卡,卡上有一颗GPU和一颗DPU.具体怎么用这两个芯片呢?
A:以用在一些边缘场景,比如5G加速和分布式
Q24:融合卡上的GPU是被卡上的ArmCPU接管吗?
A:有两种模式,标准模式,GPU和DPU分开运作,一种BF- X,主机不可见GPU
Q25: NVIDIA BlueField-2 DPU与普通网卡的主要区别?
A:NVIDIA BlueField-2 DPU支持运行用于x86主机的应用程序、支持独立的Shell环境、支持运行不同的操作模式。
Q26: NVIDIA BlueField-2 DPU中RXP的应用场景有哪些?
A:包括入侵检测和预防、有状态防火墙、负载均衡、深度数据包检测DPI、应用程序识别、存储搜索等。
Q27: NVIDIA BlueField-3 DPU的突破有哪些?
A:NVIDIA BlueField-3 DPU是用于数据中心网络、存储和安全的400Gbps处理器,包括400GB连接、可编程计算、零信任安全、可组合存储等突破。
Q28:NVIDIA BlueField-2 DPU里面是ARM+cx6吗?
A:NVIDIA BlueField-2 DPU集成了ARM CPU和Connectx-6 DX网卡,以及其他硬件加速器。
Q29: Ovs offload跟test pmd的原理是相同的吗?
A: Ovs kernel通过tc卸载流,ovs dpdk通过rte flow卸载流.
Q30:运行中能offload多少条flow?下发flow速率可以参考ovs flow下发的速率吗?
A:使用software steering的流插入速度是每秒几十万条,使用hardware steering的插入速度可以到每秒上百万条;通过rte flow下发流比ovs dpdk下发快很多,因为ovs dpdk在插入流时需要做流验证(revalidation),在卸载时要将ovs数据流转换成rte flow流。
Q31:DPU除了数据中心的应用场景,还有哪些应用场景呢?
A:从部署的角度,主要是应用在云计算、核心数据中心和边缘计算
Q32:在DOCA目录下的application中,都使用的是rte_eth_rx_burst来接收包,但是下图所示的循环里的log却从来没有输出过,请问是什么原因?
A:运行的时候要设定日志等级,如果日志等级开满,可换成printf再做尝试。
关联Q:是否由于offload的问题?(现在走的是doca的cx offload,需把offload关了才能进dpdk的rx和tx)
A:由于打的并非dns流量,所以会出现上述问题。
关联Q:请问只有dns流量会上cpu处理,其他的流量直接就在cx上hardware处理掉了吗?
A:是的,可以在宿主机上ping一个域名做尝试。您没有用RegEx来识别DNS 流量,发送的数据包被当作非DNS数据包处理了。
关联Q:请问是rte_rx在什么情况下会收到包?如果在dns_filter里只有dns包能收到的话,DOCA_FLOW_FWD_RSS这个fwd类型就是用来送包上arm的dpdk的吗?
A:可参考:2.15. Logging Management
Define functions for internal and external logging management
To add DOCA internal logging compile with "-D DOCA_LOGGING_ALLOW_DLOG"
及Will generate debug log for development purposes. To show the logs define DOCA_LOGGING_ALLOW_DLOG in the compilation variables. This will not effect performance if compiled without DOCA_LOGGING_ALLOW_DLOG, as it will be removed by the compiler.
需要先打开允许Debug Log,然后编译才会输入 Log,否则编译时会去除 Debug Log的输出。可参考这个 API 的说明:
Q33:请问是所有包都会被rte_eth_rx_burst收到吗?手头并没有dpu如何解决?
A:rte_eth_rx_burst 是在 DPDK 中针对以太网设备接收队列中输入数据包的。
另外,手头没有 DPU,可以注册DOCA早期开发者计划,然后申请卓越中心提供的本地免费开发环境使用机时。
Q34:请问物理上DDR是多少(主频3200MHz,位宽64bit)?实际能跑到的可用DRR占比是否有超过50%?
A:DDR4跑到满频率,单通道 32GB/s左右。
Q35:把dpdk的生成包的代码copy过来,但是在allocate packet时会segmentaion fault,请问这和DOCA之前可能隐式的生成过mempool有关吗?
A:该问题应是在分配池子的时候用了和DOCA隐式分配一样的池子名,可尝试修改池子名。
Q36:之前正常使用100g qsfp28 dac连的bf2和intel的交换机,而把intel交换机换成了华为ce6800系列交换机,dac不能用了,请问这种情况应该如何解决?
A:换华为交换机的兼容线即可,如果有老版本的固件,刷完了也可能会解决这个问题。
Q37:所有流量都必须通过DPA吗?
A:不是必须的,缺省都不必通过。
Q38:请问有 Bluefield3的产品文档吗?这个产品需要什么样的pcie插槽?
A:BlueField-3 DPU 中文产品手册如下:
pcie插槽可参考文档:
Q39:请问 NVIDIA BlueField SNAP and virtio-blk SNAP Documentation该文档如何获得?
A:SNAP 需要单独购买许可。
Q40:Bluefield-2配备什么型号的服务器?未来Bluefield-3又会用什么型号?
A:在服务器型号上没有特定的推荐,可根据需求和预算来选,选定特定型号的 BlueField
DPU 后,要看它的硬件安装要求。如果想选择 NVIDIA OEM 合作伙伴出品的服务器,可以看戴尔、联想、浪潮的品牌服务器。
Q41: DOCA里FLOW_FWD_RSS用的默认哈希字段是什么?怎么设置hash字段呢?
Q42:DPU没有使用,却一直高温报警,请问是什么问题?
A:可以尝试拆开机器检测温度,检查是否真的过热,有可能是因为后台程序被占用。
Q43:是否有一个stepbystep的操作指南,能把OpenStack的计算节点的网络ovs卸载和存储卸载测试环境搭出来呢?
A:如果您是NVIDIA DPU的客户或合作伙伴,您需要联系您对应的NVIDIA销售和系统架构工程师以获得帮助
Q44:按照以下教程,想安装一下doca1.5.1,结果mst 启动不了了, 请问是什么情况?
A:这是由于旧版本卸载不完全导致的。
Q45:请问什么软件可以测cps吗?
Q46:请问DOCA 什么时候出python版本?
Q47:在BlueField2中运行flow sample下的flow aging例子时,报错了cannot create hws action since hws is not supported。请问应该怎么查看有关hws的支持呢?
Q48:目前Host端BF2的驱动始终无法加载,仅能通过OOB访问ARM系统,想问下这个问题如何解决呢?
问题详情:按照https://docs.nvidia.com/doca/sdk/installation-guide-for-linux/index.html#upgrading-firmware
指示的步骤做完 Upgrading Firmware后,DPU ARM端Driver is the owner是“not supported”,重启Host端后,发现mlx5_core模块探测设备的时候出了问题。
A:从Host,sudo lspci |grep -i Blue,可以看到DPU卡的话,验证一下rshim是否active,再查看一下 DPU运行模式,运行模式要DPU mode,然后检查rshim的IP是否和DPU在一个网段。
关联Q:如何确定DPU运行模式呢?
A:在您看的SDK 文档右上角搜索 DPU mode,有一个 DPU Operation Mode的文档。
Q49:在Host下使用ibv_devinfo 没有发现可用设备,请问这是应该让BF2 DPU用到Host端的mlx5_core 内核模块吗?(现在Host端加载mlx5_core模块时会报一些错误)