dpdk использует uio_pci_generic или igb_uio или vfio-pci
Именно так DPDK подключается к NIC - связывая DPDK-совместимые драйверы с PCI-адресом NIC (в большинстве случаев, например, с Mellanox, используется RDMA). Ну, на самом деле, это вы должны связать драйверы .
DPDK затем, как вы сказали, отображает буферы NIC в память пользовательского пространства (огромные страницы) и взаимодействует с NIC через PCI, напрямую «общаясь» с регистрами.
Если вы хотите узнать больше об архитектуре, эти слайды , я думаю, делают довольно хорошую работу.