Home 5G Part 2 – Accelerating the 5G Dataplane with SR IOV and DPDK

Part 2 – Accelerating the 5G Dataplane with SR IOV and DPDK

by Vamsi Chemitiganti

The next part of adding high-performance network packet processing to Kubernetes is DPDK (Dataplane Development Kit). allows the application to achieve packet processing performance that greatly exceeds the ability of the kernel network stack. The DPDK project is maintained at https://www.dpdk.org/

Network processing using DPDK

All packet processing on Linux-based OSs (used by pretty much all Telcos and Operators) takes place in the kernel. But there can be a mismatch between the kernel and the NICs as hardware speeds keep increasing. Enter kernel bypass technologies such as DPDK, which perform packet processing in the userspace.

Currently managed under the Linux Foundation, DPDK is a set of libraries and drivers that provide fast packet processing for any processor (e.g x68, ARM and PowerPC). When used with applications, it helps them perform at higher speeds by enabling them to send and receive packets in a very efficient manner – usually less than 80 CPU cycles. DPDK uses kernel bypass to talk directly to the hardware. It does this using library called Poll Mode Drivers (PMDs), memory huge pages (which reduces TLB misses). PMDs poll data directly from the NIC and enable kernel bypass. DPDK leverages other platform technologies to increase performance while reducing overhead. These include CPU pinning for CPU-bound workloads, NUMA. DDIO etc.

We use the same illustration we used in the last blog on SR-IOV. Again, Multus is used to enable attaching multiple CNIs to our pod running on K8s. The DPDK CNF runs over the DPDK user library. As can be seen from the above, this path completely bypasses the Linux kernel so that data IO is sent from the user space in the pod -> NIC via SR-IOV.

Here are some salient things around DPDK –

  1. DPDK focuses only on the data plane and does not provide any NFs etc. Networking middleware such as Firewalls, Layer 3 forwarding are not offered by DPDK. This is entirely by design.
  2. Systems developers typically add their own implementations or custom protocol stacks over DPDK.
  3. DPDK calls for all resources to be allocated prior to calling applications that use it. It does not support a scheduler and access all divides using polling. To keep overheads at a minimum, it implements a run to completion model for packet processing, where all resources must be allocated prior to calling Data Plane applications, running as execution units on logical processing cores. The model does not support a scheduler and all devices are accessed by polling. The primary reason for not using interrupts is to avoid the performance overhead of interrupt processing.

Conclusion

5G applications will all be about low latency and fast data processing at high throughput. These will include not just the wireless core, radio applications but also custom workloads such as video streaming, VoIP, etc. Along with SR-IOV, DPDK is a high-performance option that enables the industry to move latency-sensitive applications to the cloud.

Discover more at Industry Talks Tech: your one-stop shop for upskilling in different industry segments!

You may also like

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.