Software Physical/Virtual Rx Queue Mapping Toward High-Performance Containerized Networkings

Authors: Ryota Kawashima


Date: July 30th, 2021


 IOVTee: A zero copy/passthrough on the Rx path. Implements Virtual DMA write through to the Network Function (NF) that is transparent to Containers, Virtual Machines and virtual switches.


  • Network Functions (NF) present packet forwarding degradation when implemented in virtualized or containerized environments because of the bottleneck in the Physical-Virtual-Physical (PVP) datapath.


IOVTee is an internal add-on to the host side DPDK/vhost-user that hides the IOVTee implementation from virtual switches and Containerized/virtualized Network Functions (CNF/VNF) . The proposed architecture excludes the DPDK provided zero-copy Tx path implementation since it was revealed to decrease throughput due packets staying on the virtual Tx queue. IOVTee acquires the valid physical memory address of empty packet buffers of the CNF/VNF via the Rx queue and logically maps entries of physical/virtual Rx queues (Rx Queue Mapping). This has been added to DPDK 19.11 as (librte_iovtee) along with modifications to the Mellanox ConnectX-5 driver (mlx5) and the vhost-user (librte_vhost). IOVTee redirects the pointers toward empty packet buffers for DMA via PRing such that memory addresses in the guest region are set as DMA destinations (Rx Queue Mapping). This redirection enables received packets to be directly stored in the shared memory region offered by the guest, and both the vSwitch and the CNF/VNF handle same packet buffers on the Rx-path (Virtual DMA Write-through) The details of the Rx Queue Mapping are below:

Describe service chain here



A proposal that improves compatibility, manageability and performance via the software-based Rx queue mapping enabling virtual DMA write-through.


The evaluation results have shown that IOVTee pushes up throughput of the PVP datapath about 45% for 64-byte packet traffic and 98% for 1514-byte packet traffic respectively at maximum, compared to the original implementation of vhost-user.


It is very difficult to make an assessment without the author providing code for independent evaluation.
librte_iovtee is not included in the DPDK source code and no online references to the IOVTee source are available.

Related work:

Key Words:

Network Functions, virtualization, container, DPDK, zero-copy, pass-through, P4.