Data Plane Development Kit

DPDK
Stable release
17.08 / 8 August 2017 (2017-08-08)
Development status Active
Written in C
Operating system FreeBSD, Linux
Type Packet Processing
License BSD
Website dpdk.org

The Data Plane Development Kit (DPDK) is a set of data plane libraries and network interface controller drivers for fast packet processing from Intel. The DPDK provides a programming framework for x86 processors and enables faster development of high speed data packet networking applications.[1][2] It scales from Intel Atom processors to Intel Xeon processors. Support for other instruction set architectures such as IBM POWER8, EZchip, TILE-Gx, and ARM have been added.[3] It is provided and supported under the open source[4] BSD license.

Overview

The DPDK framework creates a set of libraries for specific hardware/software environments through the creation of an Environment Abstraction Layer (EAL).[5] The EAL hides the environmental specific and provides a standard programming interface to libraries, available hardware accelerators and other hardware and operating system (Linux, FreeBSD) elements. Once the EAL is created for a specific environment, developers link to the library to create their applications. For instance, EAL provides the frameworks to support Linux, FreeBSD, Intel IA 32- or 64-bit, IBM Power8, EZchip TILE-Gx and ARM.

The EAL also provides additional services including time references, PCIe bus access, trace and debug functions and alarm operations.

The DPDK implements a low overhead run-to-completion model for fast data plane performance and accesses devices via polling to eliminate the performance overhead of interrupt processing.

The DPDK also includes software examples that highlight best practices for software architecture, tips for data structure design and storage, application profiling and performance tuning utilities and tips that address common network performance deficits.

Libraries

The DPDK includes data plane libraries and optimized NIC drivers for the following:[6]

All libraries are stored in the dpdk/lib/librte_* directories

Plugins

The current version of the DPDK includes drivers for many hardware types Supported NICS. There have been some additional out-of-tree plugin drivers in the past. These are now considered deprecated.

Environment

The DPDK was originally designed to run using a bare-metal mode which is currently deprecated. Actually, DPDK's EAL provides support for Linux or FreeBSD userland application.

EAL can be extended in order to support any processors.

Ecosystem

Beside Intel which is a contributor to the DPDK, several other vendors also support the DPDK within their products and some offer additional training, support and professional services. The list of vendors who have announced DPDK support includes:

Projects

Opensource

The pfSense project published a road map on 25 February 2015, in which developer Jim Thompson announced the rewriting of the pfSense core—including pf, network packet forwarding and shaping, link bonding, IPsec—using Intel's DPDK: "We have a goal of being able to forward, with packet filtering at rates of at least 14.88Mpps. This is 'line rate' on a 10Gbps interface. There is simply no way to use today's FreeBSD (or linux) in-kernel stacks for this type of load."[15]

OVS has a limited set of feature running userland that can be leveraged to bypass the Linux kernel OVS processing. This use case of OVS with DPDK userland is usually named OVS-DPDK. It is mostly deployed with Openstack Neutron but it assumes that many features and SDN capabilities of Openstack are disabled. For instance, when OVS-DPDK is used, Neutron provides a lower lever of security than when OVS kernel is used (no stateful firewalling, less security group).

The FD.IO VPP platform is an extensible framework that provides out-of-the-box production quality switch/router functionality. It is the open source version of Cisco's Vector Packet Processing (VPP) technology: a high performance, packet-processing stack that can run on commodity CPUs, and can leverage the Poll Mode Drivers for both NICs and cryptographic acceleration hardware and libraries. [16]

TRex is an open source traffic generator using DPDK. It generates L4-7 traffic based on pre-processing and smart replay of real traffic templates. TRex amplifies both client and server side traffic and can scale to 200Gb/sec with one UCS using Intel XL710. TRex also supports multiple streams, ability to change any packet field and provides per stream statistics, latency and jitter.[17]

DTS (DPDK Test Suite) is a python based framework for functional tests and benchmarks. It is an Open Source project, started in 2014, and it is hosted on dpdk.org. It supports both software traffic generators like Scapy and dpdk-pktgen, and a hardware traffic generator like IXIA. [18]

References

  1. Simon Stanley,All Change for Packet Processing, Heavy Reading, 2013
  2. Shamus McGillicudy, Intel DPDK, switch and server ref designs push SDN ecosystem forward, SearchSDN, April 2013
  3. "DPDK: Data Plane Development Kit – What it is". dpdk.org. dpdk.org. Retrieved 29 March 2016.
  4. Simon Stanley,DPDK Goes Open-Source, Intel Embedded Community, May 2013
  5. Intel Corporation, Intel® Data Plane Development Kit: Programmers Guide, November 2012
  6. Intel Communications Infrastructure Division, Intel® Data Plane Development Kit Overview, December 2012
  7. PRWeb, 6WIND Extends Portable Packet Processing Software to Support Intel® Data Plane Development Kit, September 2011
  8. Calsoft Labs to offer professional services and support for Intel® Data Plane Development Kit, ALTEN Calsoft Labs, 18 February 2014, retrieved 2014-10-28
  9. COTS Journal, ATCA Blade Serves Up Xeon E5-2600 Processor, June 2012
  10. Brocade vRouter
  11. MarketWatch, Radisys Delivers Industry's First 40G Solution for Intel(R) Data Plane Development Kit, September 2012
  12. Tieto, Tieto provides professional software services and support for the Intel® Data Plane Development Kit, February 2012
  13. Reuters, Wind River Delivers Support and Services for Intel Data Plane Development Kit for High-Performance Packet Processing, May 2012
  14. Get Flying with the Intel Data Plane Development Kit, Lanner Electronics Inc., 20 February 2013, retrieved 2013-07-11
  15. Thompson, Jim. "Further (a roadmap for pfSense)". blog.pfsense.org. Electric Sheep Fencing LLC. Retrieved 21 April 2015.
  16. name=VPP-fd.io "VPP fd.io". https://wiki.fd.io. Linux Foundation. Retrieved 29 December 2016. External link in |website= (help)
  17. name=Trex "TRex". Cisco Systems. Retrieved 29 December 2016.
  18. Rami Rosen, Network acceleration with DPDK, lwn.net, July 2017
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.