Requirements
To implement DPDK (Data Plane Development Kit), you need to meet several hardware, network driver, and Linux package requirements:
Software Requirements
Zixi Broadcaster or ZEC v19.0+
Hardware Recommendations
Component | Minimum | Recommended |
|---|---|---|
CPU | 1 cores | 4+ cores ARM preferred over Intel processors |
RAM | 2 GB | 16+ GB |
Network Cards | 2 NICs (driver must support DPDK) | 2 NICs with SR-IOV support |
Note that DPDK will run on as little as 1 core and 2 GB of RAM, but DPDK performance scales linearly with the numbers of CPU cores allocated to it. More cores and RAM means better throughput.
Operating System
Recommended OS: Amazon Linux 2023 is recommended, though DPDK can run on virtually any modern Linux distribution.
AWS Instance Types
Note that DPDK should only be run on AWS Nitro virtualization systems. Legacy Xen-based instances (e.g., C3, C4, D2, I2, R3, and most M4s) are considered deprecated for this use case and should not be used.
Recommended Instance Types:
- c6gn.medium to c6gn.xlarge (Graviton 2 + Network Optimized)
- c7gn.medium to c7gn.xlarge (Graviton 3 + Network Optimized)
- c8gn.medium to c8gn.xlarge (Graviton 4 + Network Optimized)
CRITICAL: The 'n' suffix indicates network-optimized instances, which is essential for DPDK performance!
Oracle Cloud Instance Types
In Oracle Cloud, there are SR-IOV NICS with MLX5 drivers. Designed for Oracle Cloud, these NICS provide the best performance available. On VM creation, these NICS are available under Networking-->Enhanced.
Note that the default driver for the SR-IOV NICS is the Virtio driver. This should be changed to the MLX5 driver, which is far superior.
For Oracle Cloud implementations, we recommend at least 4 logical CPUs and 8 GIG of RAM.
Network Configuration Prerequisites
- VPC and Subnet: Instance must be properly attached to a VPC and subnet
- IPv4 Allocation: the secondary NIC (the dedicated DPDK interface) requires a Static IPv4
- At least 2 Etherent NICs
- Network Adapter/Driver Support: AWS EC2 deployments are tested strictly on ENA (Elastic Network Adapter) drivers. DPDK is not guaranteed to launch on any other driver type in AWS.
Linux Package Requirements
- Python 3 and/or Internet Access
- Python 3 can be downloaded and installed during the installation process if not present - it is needed to execute the installation script.
- Additional required tools will be downloaded and installed during the setup process (prompting the user with a Y/N confirmation) if not present.
System Configuration
- BIOS settings: Enable VT-d and disable C3 and C6 power states for better performance.
- Kernel configuration: Enable IOMMU support in the kernel (for kernels >= 3.0).
It's important to note that these are basic requirements, and the specific needs may vary depending on your use case and performance requirements. Always refer to the latest DPDK documentation for the most up-to-date and detailed information.