我开始工作并了解DPDK的基础知识,并且它与VMWare(VMXNET3 PMD)一起使用。我开始浏览代码库,并在vmxnet3_tx_queue_t(位于vmxnet3_ring.h)中找到对3个环结构的引用,即cmd_ring,data_ring和comp_ring。
我尝试浏览以了解用例及其用法,但没有获得足够的文档或无法理解。
任何指针/方向都会有很大帮助。
vmxnet3
在DPDK NIC文档中非常恰当地描述:http://doc.dpdk.org/guides/nics/vmxnet3.html
驱动程序预先分配数据包缓冲区并预先加载命令环描述符。系统管理程序在数据包到达和写入完成环描述符时填充这些数据包缓冲区,这些描述符最终由PMD提取。接收后,DPDK应用程序释放描述符并为即将到来的数据包加载新的数据包缓冲区。
在传输例程中,DPDK应用程序将数据包缓冲区指针填充到命令环的描述符中,并通知系统管理程序。作为响应,管理程序获取数据包并将其传递给vSwitch。它将写入完成描述符环。 PMD在下一个传输例程调用中读取环,并从内存中释放缓冲区和描述符。
[不确定那些细节是否是“ DPDK的基础”,因为那些低级队列是由DPDK轮询模式驱动程序API提取的:
https://doc.dpdk.org/guides/prog_guide/poll_mode_drv.html
因此,您最好参考本文档并使用此API,因为无论如何您将无法直接在应用程序中使用vmxnet3
铃声...