The Intel DPDK is a set of source code programming libraries that accelerate basic data plane functions for Intel® processors. By using the Intel DPDK system developers can quickly implement packet processing functions, significantly reducing time to market.
Intel® DPDK library components include:
- Environment Abstraction Layer – abstracts huge-page file system, provides multi-thread and multi-process support.
- Memory Manager – allocates pools of objects in memory. A pool is created in huge page memory space and uses a ring to store free objects. It also provides an alignment helper to make sure that objects are padded, to spread them equally on all DRAM channels.
- Buffer Manager – reduces, by a significant amount, the time the operating system spends allocating and de-allocating buffers. The Intel® DPDK pre-allocates fixed size buffers which are stored in memory pools.
- Queue Manager – implements safe lockless queues, instead of using spinlocks, that allow different software components to process packets, while avoiding unnecessary wait times.
- Flow Classification – provides an efficient mechanism which incorporates Intel® Streaming SIMD Extensions (Intel® SSE) to produce a hash based on tuple information, so that packets may be placed into flows quickly for processing, greatly improving throughput.