Distributions

DPDK is packaged by various distributions for multiple platforms and architectures. Popular distributions with packages for DPDK include:

Open Source Projects Consuming DPDK

DPDK’s growing and robust community of member organizations and cross-industry partners spans hardware vendors, physical and virtual network drivers, and other open source organizations that consume DPDK. See below for a full list of up and down-stream open source projects that consume DPDK.
  • Packet-journey – Userland router

  • Pktgen-dpdk – Packet generator

  • Ruru – Real-time TCP latency monitoring

  • Seastar – open-source C++ framework

  • SPDK – Storage Performance Development Kit

  • TRex – Stateful Traffic Generator

  • WARP17 – Stateful Traffic Generator

  • YANFF –  NFF-Go -Network Function Framework for GO (former YANFF)

Support, Service & Training For DPDK

The DPDK ecosystem includes organizations that provide services, support, and instructor-led training courses for DPDK environments.

Instructor-Led Training

Supported Hardware

DPDK supports a broad range of Network Interface Controllers (NICs) and various other device drivers and configurations.

Amazon
ena (Elastic Network Adapter)

Atomic Rules
ark (Arkville Packet Conduit FX0/FX1)

Broadcom
bnxt (NetXtreme-C, NetXtreme-E, StrataGX)

Cavium
thunderx (Poll mode/ vnic driver for ThunderX 88xx, OCTEON TX 80xx, 81xx, 82xx and 83xx)
octeontx (Event mode driver for OCTEON TX 82xx and 83xx)
liquidio (LiquidIO II CN23XX)
bnx2x (QLogic 578xx)
qede (QLogic FastLinQ QL4xxxx)

Chelsio
cxgbe (Terminator 5, Terminator 6)

Cisco
enic (UCS Virtual Interface Card)

Intel

e1000 (82540, 82545, 82546)

e1000e (82571, 82572, 82573, 82574, 82583, ICH8, ICH9, ICH10, PCH, PCH2, I217, I218, I219)

igb (82575, 82576, 82580, I210, I211, I350, I354, DH89xx)

ixgbe (82598, 82599, X520, X540, X550)

i40e (X710, XL710, X722)

fm10k (FM10420)

Note: The drivers e1000 and e1000e are also called em. The drivers em and igb are sometimes grouped in e1000 family.

Marvell

mrvl (Marvell Packet Processor v2)

Mellanox

mlx4 (ConnectX-3, ConnectX-3 Pro)

mlx5 (ConnectX-4, ConnectX-4 Lx, ConnectX-5)

Netcope

szedata2 (NFB-*, NPC-*, NSF-*)

Netronome

nfp (NFP-4xxx, NFP-6xxx)

NXP
dpaa (LS102x, LS1043, LS1046)
dpaa2 (LS1048, LS108x, LS20xx, LX216x)

Solarflare
sfc_efx (SFN7xxx, SFN8xxx)

Paravirtualization
avp (Wind River Accelerated Virtual Port)
virtio-net (QEMU)
vmxnet3 (VMware ESXi)

Others
af_packet (Linux AF_PACKET socket)
tap (kernel L2)
pcap (file or kernel driver)
ring (memory)

Supported Drivers

The supported drivers may be classified in two categories: Physical for Real Devices and Virtual for Emulated Devices.

Some physical devices may be shaped through a virtual layer as for SR-IOV. The interface seen in the virtual environment is a VF (Virtual Function). The ethdev layer exposes an API to use the networking functions of these devices. The bottom half part of ethdev is implemented by the drivers. Thus some features may not be implemented. There are more differences between drivers regarding some internal properties, portability or even documentation availability. Most of these differences are summarized below.

Baseband

Hardware and software drivers for wireless baseband accelerators.

  • null
  • turbo_sw

Bus

Bus drivers for identifying and configuring hardware for DPDK.

  • dpaa
  • fslmc
  • ifpga
  • pci
  • vdev

Compress

Hardware and software drivers for compression.

  • isa-l

Crypto

Hardware and software drivers for crypto.

  • aesni-gcm
  • aesni-mb
  • armv8
  • ccp
  • dpaa2_sec
  • dpaa_sec
  • kasumi
  • mvsam
  • null
  • openssl
  • qat
  • scheduler
  • snow3g
  • virtio
  • zuc

Event

Hardware and software drivers that support an event-driven model in DPDK.

  • dpaa
  • dpaa2
  • octeontx
  • opdl
  • skeleton
  • sw

Mempool

Memory pool drivers.

  • bucket
  • dpaa
  • dpaa2
  • octeontx
  • ring
  • stack

Net

Network interface controller drivers.

  • af_packet
  • ark
  • avf
  • avp
  • axgbe
  • bnx2x
  • bnxt
  • bonding
  • cxgbe
  • dpaa
  • dpaa2
  • e1000
  • ena
  • enic
  • failsafe
  • fm10k
  • i40e
  • ifc
  • ixgbe
  • kni
  • liquidio
  • mlx4
  • mlx5
  • mvpp2
  • nfp
  • null
  • octeontx
  • pcap
  • qede
  • ring
  • sfc
  • softnic
  • szedata2
  • tap
  • thunderx
  • vdev_netvsc
  • vhost
  • virtio
  • vmxnet3

Raw

Drivers for device types that don’t yet have their own specific API in DPDK.

  • dpaa2_cmdif
  • dpaa2_qdma
  • ifpga_rawdev
  • skeleton_rawdev

Members

DPDK is comprised of a robust community of member organizations committed to enabling accessible fast packet processing to help move the networking industry forward.  Join your industry peers in helping build and shape the DPDK ecosystem, its use cases and applications,  as we usher in the next evolution of innovative network solutions.

Gold Members

Silver Members

Associate Members