The Intel® Data Plane Development Kit (Intel® DPDK) is changing the way companies develop solutions for wire-speed DPI and other packet processing functions. The dpdk.org Open-Source Project established by 6WIND aims to accelerate the development of Intel architecture-based networking products by making the Intel DPDK libraries, drivers and documentation available on one site, together with information on third party support and enhancements. System developers should find the dpdk.org Open-Source Project a valuable resource, making the benefits of the Intel DPDK readily accessible to a wide range of companies.
In this blog I am going to explore the benefits of using Intel DPDK and review the resources available through the dpdk.org Open-Source Project and the wider ecosystem. For this blog I have been talking to 6WIND, a commercial software supplier and an Affiliate member of the Intel® Intelligent Systems Alliance. The 250-plus members of the Alliance collaborate closely with Intel to create hardware, software, tools, and services to help speed intelligent systems to market.
Intel® Data Plane Development Kit
The Intel DPDK is a set of source code programming libraries that accelerate basic data plane functions for Intel® processors. The Intel DPDK libraries have been optimized for packet processing performance on IA processors such as the Intel® Xeon® Processor E5-2600 and ES-2400 series. By using the Intel DPDK system developers can quickly implement packet processing functions, significantly reducing time to market.
Figure 1. Intel® Data Plane Development Kit
As shown in Figure 1 the key Intel DPDK elements are buffer and memory management, queue management and packet flow classification libraries, and poll mode drivers for network interface cards (NICs). The Intel DPDK supports a low overhead, run-to-completion model, optimized for data plane performance. The environment abstraction layer includes platform specific guidelines and initialization code, reducing the cost of application porting. The Intel DPDK supports a Linux userspace environment.
The Intel DPDK Memory Manager is responsible for allocating pools of objects in memory. The Memory Manager creates a pool in memory space using a ring to store free objects. The Intel DPDK Buffer Manager handles pre-allocated fixed size buffers which are stored in memory pools. The Buffer Manager significantly reduces the amount of time the operating system spends allocating and de-allocating buffers. The Intel DPDK Queue Manager implements lockless queues, instead of using spinlocks, allowing different software components to process packets, while avoiding unnecessary wait times. The Intel DPDK Flow Classifier uses the Intel® Streaming SIMD Extensions (Intel® SSE) to implement hash based flow classification to quickly place packets into flows for processing. This is an efficient mechanism that greatly improves throughput.
The Intel DPDK includes Poll Mode Drivers for Gigabit Ethernet (GE) and 10GE controllers. The drivers are designed to work without asynchronous, interrupt based, signaling mechanisms, greatly increasing the packet pipeline performance.
The Intel DPDK is provided as free, unsupported, BSD-licensed source, downloadable from Intel, in addition to part of commercial solutions from leading ecosystem companies including Wind River, Tieto and 6WIND, and through the dpdk.org Open-Source Project.
dpdk.org Open-Source Project
The dpdk.org Open-Source Project was established in April 2013 by 6WIND. The project provides a central store for source code, documents and application examples. The dpdk.org site includes libraries, drivers, documentation, development mailing list, git repository and support relevant to high-performance packet processing using the Intel DPDK. The site also includes links to relevant press releases from key ecosystem companies. To ensure the best user experience the Intel source code provided through dpdk.org have been thoroughly tested and may be one or two revisions behind the latest version available direct from Intel.
The dpdk.org Open-Source Project seems to be gaining significant interest. “We have already had 50 companies download code from the site” says Charlie Ashton, VP of Marketing at 6WIND.
Enhanced Support for Intel® Data Plane Development Kit
The three leading companies providing commercial support for Intel DPDK are Wind River, Tieto and 6WIND. The Wind River Intelligent Network Platform (INP) is an integrated software solution for intelligent network systems. The Wind River INP integrates an application acceleration engine, content inspection engine and flow analysis engine. All three engines leverage the performance of the Intel DPDK. The platform is optimized for Wind River Carrier Grade Linux which includes Intel DPDK as an integrated and supported run-time component.
Tieto provides an integrated service offering combining Managed Services, Consulting and System Integration. The company provides professional software services for multi-core packet processing for wireless and fixed infrastructure with support for Intel DPDK.
6WIND provides software solutions for advanced networking functions in mobile infrastructure equipment, networking appliances and data center networking including the 6WINDGateTM software which provides high-performance data plane processing software for multicore platforms. The 6WIND Intel DPDK library is shown in Figure 2. In addition to the baseline Intel DPDK library this supports virtualization, multi-buffer IPsec, Intel® Advanced Encryption Standard New Instructions (Intel® AES-NI), additional monitoring and statistics and drivers for security and compression accelerators like the Intel® Communications Chipset 89xx Series (formerly code named Cave Creek) and NICs like the Intel® 82571EB Gigabit Ethernet Controller.
Figure 2. Intel® Data Plane Development Kit Library from 6WIND
This growing support ecosystem is extending access to the Intel DPDK and high performance data plane software. Developers can quickly implement packet processing functions using the Intel DPDK and receive support through ecosystem members or dpdk.org.
Solutions in this blog:
- dpdk.org Open-Source Project
- Wind River Intelligent Network Platform
- Tieto Software Services and Support for Intel® DPDK
- 6WIND 6WINDGate Software
- Performance - Top Picks (blogs, white papers, and more)
- Communications - Top Picks (blogs, white papers, and more)
Wind River Systems is an associate member of the Intel® Intelligent Systems Alliance.
6WIND is an affiliate member of the Intel® Intelligent Systems Alliance.
Tieto is an affiliate member of the Intel® Intelligent Systems Alliance.
Roving Reporter (Intel® Contractor), Intel® Intelligent Systems Alliance
Principal Consultant, Earlswood Marketing
Follow me on Twitter: @simon_stanley