Single Core Packet Classification for Control and Data Plane Separation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional packet processing systems require separate central processing units (CPUs) for control plane and data plane operations, leading to increased costs and complexity, and limited scalability and flexibility.
Innovation Solution
Implementing a single processing core with distinct threads to perform both control plane and data plane operations, using a packet classifier to differentiate between known and unknown packet flows, and employing fast interrupt requests and Just-in-time rule compilation to process packets efficiently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If separate CPUs are used for control plane and data plane operations, then reliability and functional separation are improved, but device complexity and cost increase
Solution Approach 1:
The patent merges control plane and data plane operations into a single processing core, eliminating the need for separate CPUs. The single core dynamically switches between handling control plane packets (CCP) and data plane packets (CDP) based on packet classification, thereby reducing device complexity and cost while maintaining functional separation through software-based isolation.
Solution Approach 2:
The single processing core is designed to perform multiple functions by implementing both control plane and data plane operation handlers. The core can act as a control plane processor when CCP is received and as a data plane processor when CDP is received, achieving multi-functionality without requiring separate dedicated processors for each plane.
2Adaptability or versatility
If separate CPUs are used for control plane and data plane operations, then operational independence is improved, but ease of operation and scalability worsen
Solution Approach 1:
The system implements dynamic operation modes where the processing core can switch between control plane and data plane handling based on real-time packet classification. This dynamic adaptability allows the system to maintain operational independence when needed while simplifying operation during normal data flow, improving both adaptability and ease of operation.
3Device complexity
If a single processing core is used for both control plane and data plane operations, then device complexity and cost are reduced, but processing performance may deteriorate
Solution Approach 1:
The patent segments packet processing into two distinct paths: control plane packet handling and data plane packet handling. By classifying packets at the beginning and routing them through appropriate processing threads, the system avoids context switching overhead and ensures that each type of packet is processed efficiently by dedicated logic, thereby maintaining high processing performance despite using a single core.
Solution Approach 2:
The system performs preliminary packet classification at the start of processing to determine whether a packet belongs to the control plane or data plane. This preliminary action enables the system to immediately route the packet through the appropriate processing path without subsequent context switching or re-evaluation, maximizing processing efficiency.
4Device complexity
If a single processing core is used for both control plane and data plane operations, then cost is reduced, but network performance may be limited
Solution Approach 1:
The patent changes the operational parameters of the single processing core by implementing context-aware processing modes. The core adjusts its behavior based on the packet type being processed, optimizing instruction execution paths and resource allocation dynamically. This parameter adaptation allows the single core to achieve network performance comparable to or exceeding that of multi-CPU systems while maintaining lower cost.
Data Source
AI summary
A processing core includes a packet classifier, implemented in a single processing core, configured to classify incoming data packets into first data packets of a known data packet flow and into second data packets of an unknown data packet flow, a first path thread, implemented in the single processing core, configured to process ones of the first data packets at least by forwarding the first data packets to a destination that corresponds to a previously determined destination associated with the known data packet flow, and a second path thread, implemented in the single processing core, configured to process a received second data packet at least to determine a new data packet flow for the second data packet.


