1.overview
Last updated
Was this helpful?
Last updated
Was this helpful?
this gitbook represent how I design my virtual link between DPDK and QEMU,i.e. from the dpdk's perspective ,this virtual link maintains DPDK Poll mode driver(PMD) interface specification and meantime act as a backend device of QEMU .this eases DPDK based aplication in integrating all kinds of links(ports) into application without heterogeneous interface classification.
the following figure illustrates what components the whole virtual link consists of.
from the perspective of dpdk's side,the virtual link is one of DPDK PMD device which conform to PMD framework,such as rx\/tx queue setup,device-relevant information maintenance,etc. in order to loose combination between DPDK and qemu, the link-agnet is introduced which management dpdk hugepage-memory and other shared-memory uniformally such DPDK process and QEMU process will get the same memory layout,the core idea to accelerate packet processing is zero-copy packet switching,i.e. the packet payload remains in the hugepage memory while the packet index resides in the shared memory.besides ,link-agent is respondable for allocating any virtual link relevant resources centrally,last part is qemu frontend device of qemu instance which interact with DPDK indirectly through link-agent,the backend device would be Linux netdevice driver which will extend new ethernet interface within Linux networking stack ,also ,in order to support DPDK EAL in guest context,an userspace UIO driver may be introduced.
it's would be remiss to not mentioning link-agent as a device interrupt proxy which relays interrupts from DPDK pmd device to qemu pci devcie.this procedure is asynchronous.
the next article will show how I apply some changes to DPDK memory structure.