What’s New in the Data Plane Development Kit (DPDK) 18.05

Learn about the latest release of DPDK. The laundry list of features that come with every release is up-leveled and we will describe how each one affects the NFV user who uses it in their application.

DPDK getting started guide

Learn more about DPDK

Read the documentation

Networking Playlist on the Intel Software YouTube Channel

Subscribe to the Intel Software YouTube Channel

Hi, I'm Sujata from Intel. In this video, we talk about what is new in the latest release of the Data Plane Development Kit, or DPDK 18.05, and how it can benefit you as a developer. 

DPDK is a set of libraries and drivers for fast packet processing. You can convert a general purpose processor into your own packet forwarder without having to use expensive custom switches and routers. Using hardware and software architecture advantages like multi-core support, user space processing, and high speed IO, DPDK is able to provide a significant performance enhancement. In some cases, there is a 10x increase in performance. 

DPDK runs as a Linux freeBSD user level application accessing the hardware devices directly via Poll Mode Drivers, or PMD, which includes a number of virtual device drivers. DPDK supports a large number of CPUs and NIC devices. The CPUs include Intel, ARM, and PowerPC. NIC Support includes 1 gig, 10 gig, 40 gig, 100 gig NICS, and multi-vendor support. The multi-vendor support includes Intel, Cavium, Mellanox, NXP, and Virtio. 

DPDK also supports crypto devices in a look-aside design plus compression. To make it easier for developers, DPDK comes with a large collection of sample apps and documentation. Now let's cover some DPDK 18.05 features. One of the biggest changes in DPDK 18.05 is in the area of memory management. The memory in use by DPDK now changes dynamically as the needs of the application changes. 

The initial memory footprint of a DPDK app starting up will be very small, allowing for faster startup. But then, as the app acquires more memory for its data structures and packet buffers, it will acquire them from the operating system. Similarly, as the structures are no longer needed and released by the application, the memory used is released to the operating system. 

This dynamic memory support in DPDK will help users run multiple DPDK applications on a single system. This is because the huge page memory on the system can be shared between the various processors. This may make system dimensioning easier compared to the alternative, which in the past had each process dimensioned for its worst case memory footprint. 

Another feature added to the 18.05 release is support for data compression in DPDK. In its initial releases, DPDK started out only supporting Network Interface Cards, or NICS. But over the last few years, its device support has expanded to cover cryptography via cryptodev, events scheduling via eventdev, and baseband wireless via bbdev. 

The latest addition to this family is compressdev, which provides the data structures and APIs to perform compression on data. In line with how the API sets are designed, the compressdev APIs are explicitly neutral in how they look to support the underlying functionality. They allow hardware devices to implement the API to allow both hardware and software accelerated compression. 

Additionally, Intel optimized code from the Intel Intelligence Storage Acceleration Library Project will be available as part of the 18.05 release with other hardware and software drivers expected as part of the 18.08 and subsequent releases. There's much more to learn about DPDK, so follow the links provided to get additional information. Don't forget to like and subscribe to the Intel Software YouTube channel. Thanks for watching.