Open Source Projects Consuming DPDK
- ANS – Accelerated Network Stack
BESS – Berkeley Extensible Software Switch
Butterfly – Connects Virtual Machines
DPVS – Layer-4 load balancer
FD.io/VPP – Fast Data Project
- FastClick – Highspeed dataplane
- Lagopus – software OpenFlow 1.3 switch
MoonGen – Packet generator
mTCP – User-level TCP Stack
OPNFV – Open Platform for NFV
Open vSwitch – Multilayer Open Virtual Switch
Packet-journey – Userland router
Pktgen-dpdk – Packet generator
- PcapPlusPlus – C++ packet parsing framework
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)
YAStack – DPDK with L7 Envoy Proxy
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.
Bus drivers for identifying and configuring hardware for DPDK.
Network interface controller drivers.
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.