Как данные в буфере TX / RX NIC передаются в кольцевой буфер dpdk, а не в кольцевой буфер ядра? - PullRequest
0 голосов
/ 28 мая 2019

Я хотел знать, как dpdk обходит ядро. Как пользовательское приложение получает доступ к пространству NIC. Какой инструмент использует dpdk для доступа к NIC? Я знаю, что dpdk использует драйверы uio_pci_generic или igb_uio или vfio-pci. Как это прикрепить к сетевому пространству. Как драйвер режима опроса знает, где опрашивать?

Я знаю, что RX NIC перенаправляется в кольцевой буфер dpdk вместо кольцевого буфера ядра.

1 Ответ

0 голосов
/ 28 мая 2019

dpdk использует uio_pci_generic или igb_uio или vfio-pci

Именно так DPDK подключается к NIC - связывая DPDK-совместимые драйверы с PCI-адресом NIC (в большинстве случаев, например, с Mellanox, используется RDMA). Ну, на самом деле, это вы должны связать драйверы .

DPDK затем, как вы сказали, отображает буферы NIC в память пользовательского пространства (огромные страницы) и взаимодействует с NIC через PCI, напрямую «общаясь» с регистрами.

Если вы хотите узнать больше об архитектуре, эти слайды , я думаю, делают довольно хорошую работу.

...