I'm aware of Intel DPDK allows code in usermode running inside a process to interact directly with HW NIC bypassing the (host) kernel/OS. From my understanding DPDK is basically a library designed to be linked against the usermode code.
From an architectural point of view, I believe the model is that the physical NIC is polled by the usermode DPDK PMD (Poll Mode Driver) so there is actually no DMA performed by the NIC itself (i.e. dedicate host Cores poll the NIC and copy the NIC provided packets into userspace buffers provided by the DPDK library/user code).
If the above is correct, I've not however a clear understanding how DPDK model can be employed to exchange packets to/from Virtual Machines (VMs) that runs on the same physical box -- just to fix ideas assume QEM/KVM as virtualization environment running as hypervisor on the same box.
How does the DPDK library running inside its own process copy buffers to/from emulated NICs inside each QEMU hypervisor process ?
Thank you
