DPU Flow Table Programming via Host DPDK Control Packets
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing DPU architectures face challenges in achieving high connection per second (CPS) flow table management capabilities due to restrictions on direct access to P4 hardware flow tables, necessitating software agents to run on host x86 CPUs rather than DPU's CPU cores, which limits high-rate flow programming.
Innovation Solution
A method is introduced to manage DPU flow tables from host x86 CPUs using a high-performance packet interface based on DPDK, enabling API-Control-Packets to program DPU P4 tables through a software proxy, leveraging ARM cores and P4 engines for parallel processing and offloading table management tasks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If software agents run on host x86 CPUs to manage flow tables, then flow table management is enabled, but high CPS rates cannot be achieved
Solution Approach 1:
A software proxy is introduced as an intermediary component that runs on the DPU and mediates between the host x86 CPU software agents and the P4 hardware flow tables. The proxy receives programming requests from the host, translates them into appropriate hardware commands, and manages direct access to the flow tables, thereby enabling high CPS rates while maintaining controlled access restrictions.
Solution Approach 2:
The system is segmented into three distinct components: host software agents (control plane), DPU software proxy (intermediate layer), and P4 hardware flow tables (data plane). This segmentation allows each component to operate independently at its optimal level, with the proxy handling high-speed hardware interactions while the host agents manage high-level flow management logic.
2Productivity
If DPU CPU cores are used to program P4 tables, then high CPS rates can be achieved, but software agents cannot run on host x86 CPUs
Solution Approach 1:
The software proxy acts as an intermediary that enables software agents to run on host x86 CPUs while still achieving high CPS rates. It translates high-level software agent requests into optimized hardware commands and manages the actual flow table programming operations on the DPU, combining the benefits of both approaches.
Solution Approach 2:
The system replaces the mechanical constraint of requiring software agents to physically reside on DPU cores with a virtualized communication mechanism. The proxy uses efficient memory-mapped I/O and direct memory access techniques to substitute for traditional CPU-to-CPU communication, enabling remote software agents to achieve near-local performance.
3Reliability
If direct access to P4 hardware flow tables is restricted, then system security is improved, but flow table management performance deteriorates
Solution Approach 1:
The software proxy serves as a secure intermediary that enforces access control policies while enabling high-performance flow table management. It validates and filters requests from the host, ensuring security requirements are met, while simultaneously optimizing the programming operations to maintain high CPS rates through efficient hardware interaction.
Solution Approach 2:
The system changes the operational parameters of the proxy by implementing batch processing modes, asynchronous operations, and memory-mapped I/O techniques. These parameter changes allow the proxy to maintain security controls while achieving flow table programming speeds that approach direct hardware access performance.
Data Source
AI summary
Embodiments herein describe a system including a host having a policy agent and a data plane development kit (DPDK) interface and a data processing unit (DPU) to transmit packets to the host, wherein the DPDK interface of the host performs operations including evaluating the packets, generating packet evaluation results, selecting, with the policy agent, a data processing library based on the packet evaluation results, and transmitting a control packet that includes the data processing library from the policy agent of the host to the DPU. The DPU is further configured to receive the control packet and program datapath tables based on the data processing library.


