DPDK
DPDK
DPDK provides a simple, complete framework for fast packet processing in data plane
applications. Using the APIs provided as part of the framework, applications can leverage the
capabilities of underlying network infrastructure.
This document describes DPDK basic introduction, DPDK core components, DPDK Linux
networking, DPDK Crypto Subsystem, DPDK memory manager and DPDK implementation on
Layerscape platforms.
DPDK is a set of libraries and drivers for fast packet processing across CPU architecture
a) High performance with dedicated user space cores.
b) Core optimized run-time libraries
c) Implements a run to completion model or pipeline model
d) Scales from low to high end processors
Why Use DPDK?
a) Bypass the operating system and kernel over-head getting data directly to
your application
b) Core optimized run-time C-libraries with APIs
DPDK is originally designed by Intel is now a Linux Foundation de-facto standard for userspace
networking – adopted by most vendors.
The work flow of typical DPDK poll mode driver(PMD) is as the following.
DPAA support HW (FMAN) – Virtual based traffic splitting with different interfaces.
• Virtual storage profile can be configured
• Custom method to split the traffic can be programmed via FMAN PCD interface
configurations.
4. DPDK Crypto Subsystem
Session-less Mode
For each job, software defines:
The data to be operated upon (input buffers, lengths, offsets).
The output buffers to hold results.
The cryptographic operations to be performed.
Keys & context for the cryptographic operations.
LOOK-
ASIDE
PROTO
[ lookaside protocol ]
NIC HW
IPSEC IPSEC
PIPELINE SP/SA HOST
INGRESS CLASSIFY PMD L2/3 PRE- POST- L3
STAGES LOOKUP CRYPTO
CRYPTO CRYPTO
Pools memory represented by rte_mempool which is used as raw buffers or packet buffers
(rte_mbuf)
Each pool is backed by physical memory represented by Memory zones of rte_memzone
A Memzone has backing of multiple physical pages, including hugepages, represented by
rte_memsegs
This multi-layered hierarchy allows for a flexible memory layout – for applications as well as
drivers.
DPDK 1807 onwards, memory hotpluging is supported where physical memory is allocated on-
demand
5.2 Buffer Manager
* 1 DPMCP
* 16 DPBP
* 8 DPCON
* 8 DPSECI
* 4 DPNI
* 16 DPIO
* 2 DPCI
* 8 DPDMAI
* 0 DPRTC