Session

Infrastructure datapath function(IDPF) workshop

Chairs

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

Label

Nuts and Bolts

Session Type

Workshop

Contents

Description

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, https://www.intel.com/content/www/us/en/products/docs/network-io/ethernet/controllers/ethernet-adaptive-virtual-function-hardware-spec.html

[2] NICs for Hyperscalers https://146a55aca6f00848c565-a7635525d40ac1c70300198708936b4e.ssl.cf1.rackcdn.com/images/323f189f34c8b81696ec5af59cec1383fae2afd1.pdf

[3] John Johnson, “VFIO User - Using VFIO as the IPC Protocol in Multi-Process QEMU” https://kvmforum2021.sched.com/event/ke3g/vfio-user-using-vfio-as-the-ipc-protocol-in-multi-process-qemu-john-johnson-jagannathan-raman-oracle

[4] IDPF patches under review (new version will be posted before the workshop) https://lore.kernel.org/all/Yfvx5DKKkMIhLYEg@boxer/T/#m5c76a8b136bf37619680e9988d8bc7e741f469ed