Header Background Image

Data Plane Development Kit (DPDK)

CodiLime Glossary

Some common networking terms clearly explained

Glossary /D /

Data Plane Development Kit (DPDK)

DPDK (Data Plane Development Kit) is a set of libraries for implementing user space drivers for Network Interface Controllers. DPDK provides you with a framework and common API for high-speed networking applications and allows for achieving a fast packet processing pipeline.

Data Plane Development Kit has been designed to provide a simple, yet complete framework for fast packet processing in networking apps. It’s an open-source software project managed by the Linux Foundation, with a large development community that is working on its improvement.

How does DPDK work?

DPDK provides a set of data plane libraries and network interface controller polling-mode drivers. DPDK makes communication between NIC and application in user space possible without kernel involvement. Thus, networking applications can run much faster. DPDK has five core components: the Environment Abstraction Layer (the EAL – for access to low-level resources, like memory space), the MBUF (a data structure that carries network packets as messages), the MEMPOOL (the library for creating allocated memory packets) the RING (the library that manages log-less messages sent between threads, cores, etc.), and the TIMER (for asynchronistic callback functions).

Why use DPDK?

DPDK is particularly useful when you want to accelerate packet processing on multiple-core CPUs. It allows developers and software engineers to develop high-speed data packet networking applications faster. DPDK enables more efficient computing than the standard interrupt processing that is available in the kernel. It actually eliminates the need for interrupts. Instead of using them, the Data Plane Development Kit uses a PMD (a poll mode driver) that continuously monitors Network Interface Controllers activity. Finally, DPDK works smoothly with cloud databases.

Read more:

Thumbnail of an article about How can DPDK access devices from user space?
SOFTWARE DEVELOPMENT
NETWORKS

How can DPDK access devices from user space?

DPDK (Data Plane Development Kit) is a set of libraries for implementing user space drivers for NICs (Network Interface Controllers). It provides a set of abstractions which allows a sophisticated packet processing pipeline to be programmed. But how does DPDK work? How is it able to access the hardware directly? How does it communicate with the hardware? Why does it require a UIO module (Userspace input-output)? What are hugepages and why are they so crucial? In this blog post I will try to explain, with a reasonable amount of detail, how a standard kernel space NIC driver works, how a user space program can access hardware and what can be gained from having it do so.
Thumbnail of an article about How memory types affect DPDK application performance — case study
SOFTWARE DEVELOPMENT

How memory types affect DPDK application performance — case study

In this blog post, I will describe a problem encountered while working on a project involving GPU usage in network traffic processing (knowledge of GPU programming won’t be required as it will quickly become apparent that the problem is more general and the GPU can be eliminated). I will describe the steps that helped me in locating and fixing the problem – practical methods used for DPDK profiling and debugging. Also, I will describe some low-level internal DPDK mechanisms (e.g. packet processing, IOMMU, hugepages usage and impact) that helped in understanding the issue.

Get your project estimate

For businesses that need support in their software or network engineering projects, please fill in the form and we’ll get back to you within one business day.

For businesses that need support in their software or network engineering projects, please fill in the form and we’ll get back to you within one business day.

We guarantee 100% privacy.

Trusted by leaders:

Cisco Systems
Palo Alto Services
Equinix
Jupiter Networks
Nutanix