Infrastructure datapath function(IDPF) workshop


Anjali Singhai Jain
Willem de Bruijin
Sridhar Samudrala
Michael S. Tsirkin


Nuts and Bolts

Session Type




This workshop presents the motivation for a new high performance Open network
interface, presents a candidate design and proposes a standardization process to get to broad industry agreement. It aims to answer questions including why standardization, why deviate from virtio and why this specific candidate.

There is broad industry understanding on the benefits of a single shared
interface. It simplifies VM management for users and distros, and heterogenous
hardware fleets management for hyperscale providers. Speeds of 200 Mpps and
beyond require an optimized design with features such as separate buffer and
completion queues, inline crypto acceleration and header-split for direct
data placement.

This workshop introduces what is to our understanding the first concrete,
specific proposal for such an industry standard device, the infrastructure
dataplane function, or IDPF. IDPF is demonstrated at 200 Gbps, supports
the core network interface features such as multi-queue and stateless
segmentation offloads, and is extensible to incorporate the features of the
latest generation NICs, including line-rate PTP timestamping, inline crypto
offload and TCP pacing offload.

The workshop will present

- Motivation: performance requirements and design differences with virtio, VDPA and Intel AVF
- The API, including capability negotiation process, minimum and optional feature sets
- A reference driver: a single driver for PF, VF and software devices
- A reference software implementation
- Advanced features: live migration
- Standardization: OASIS, process and founding partners
- Conformance tests and validation

And will conclude with a panel and open floor discussion.

IDPF is intended as a vendor neutral device interface that provides a single
network interface for hosts, containers and guests. The plan is to arrive
at an industry standard by submitting reference drivers to the Linux upstream
community [1], making available a software implementation and publishing an
open spec through an OASIS technical committee.

A reference software implementation is important for an open standard.
A reference software IDPF back-end will be presented, to illustrate the key components of this
implementation and present performance data. This software
device will be publicly available through the official DPDK Git repository. The
IDPF back-end uses the recent VFIO-USER [1] QEMU fast path for emulation
outside the QEMU binary, and can be applied to both virtual machines and
containers. As a software NIC, the IDPF back-end can be used for:

1. Simulation of new hardware features.

2. Deployment in multi-vendor environments where part of the hardware does not support native IDPF but a unified interface is to be provided for all instances.

3. Advanced scenarios including live upgrade of a physical device firmware, transparently falling back onto the software NIC.

[1] Adaptive Virtual function driver,

[2] NICs for Hyperscalers

[3] John Johnson, “VFIO User - Using VFIO as the IPC Protocol in Multi-Process QEMU”

[4] IDPF patches under review (new version will be posted before the workshop)