NIC的TX / RX缓冲区中的数据如何传输到dpdk环形缓冲区而不是内核环形缓冲区?

时间:2019-05-28 12:14:28

标签: c++ linux networking dpdk

我想知道dpdk如何绕过内核。用户空间应用程序如何访问NIC空间。 dpdk使用什么工具访问NIC? 我知道,dpdk使用uio_pci_generic或igb_uio或vfio-pci驱动程序。这如何附加到NIC空间。轮询模式驱动程序如何知道在哪里轮询?

我知道NIC的RX重定向到dpdk环形缓冲区而不是内核环形缓冲区。

1 个答案:

答案 0 :(得分:0)

  

dpdk使用uio_pci_generic或igb_uio或vfio-pci

这正是DPDK附加到NIC的方式-通过将与DPDK兼容的驱动程序绑定到NIC PCI地址(在大多数情况下,例如对于Mellanox,使用RDMA)。好吧,it's you who has to bind the drivers

然后,如您所说,DPDK将NIC缓冲区映射到用户空间内存(大页),并通过PCI与NIC接口,直接“对话”到寄存器。

如果您想更深入地了解该体系结构,these slides可以做得很好。