Intel® Ethernet Controller E810 Application Device Queues (ADQ)

Configuration Guide

ID 609008
Date 04/03/2023
Version 2.8
Document Table of Contents

Testing ADQ with VirtIO

VirtIO is an abstraction layer over a host's devices for virtual machines. It is one of I/O (block, NIC ,etc) virtualization techniques that are used to provide guests with high performance network and many of the performance benefits.

VirtIO divided into three parts:

  1. Frontend virtio drivers: Implemented in the guest operating system as a device driver.
  2. Backend virtio drivers: Implemented in the hypervisor, and accepts the I/O requests from front-end drivers and perform corresponding I/O operations via a PF.
  3. Transport: Communication between front-end and back-end drivers is done through a queue called virtqueue.

Virtio-net is a virtual ethernet card running in the guest kernel space.

The main building blocks in virtio are KVM, QEMU and libvirt.

  1. KVM used QEMU for I/O hardware emulation. QEMU is a user-space emulator that can emulate a variety of guest processors on host processors.
  2. KVM is managed via the libvirt API and tools. libvirt tools include virsh,virt-install and virt-clone.
  3. KVM provides the ability for a portion of the physical CPU to be directly mapped to the virtual CPU.