Multi-level Packet Classification via Flow Table Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current network traffic processing systems face inefficiencies in packet classification and routing, particularly due to the limitations of single-level connection data structures and the binding of queues to specific CPUs, which can lead to bottlenecks and reduced performance in handling multiple connections.
Innovation Solution
A method and system employing multi-level packet classification using a flow table with flow table entries and sub-flow tables, where packets are routed to hardware or software receive rings based on matching functions, allowing for more efficient processing and distribution across multiple receive rings and virtual network interface cards.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If single-level connection data structures are used, then device complexity is reduced, but packet classification precision and routing efficiency deteriorate
Solution Approach 1:
The patent divides the connection data structure into multiple hierarchical levels: a first data structure storing common flow information and a second data structure storing connection-specific information. This segmentation allows the system to maintain detailed classification precision while managing complexity through modular organization, where each level handles specific aspects of packet classification independently.
2Stability of the object's composition
If queues are bound to specific CPUs, then processing stability is improved, but system productivity and flexibility deteriorate due to bottlenecks
Solution Approach 1:
The patent introduces a new dimension of abstraction by implementing virtual network interface cards (VNICs) that sit between physical NICs and CPU queues. This dimensional addition allows packets to be routed through virtual layers before reaching physical processing units, enabling dynamic load distribution across multiple CPUs while maintaining stable queue structures. The virtual layer decouples the binding between queues and specific CPUs, improving both productivity and flexibility.
3Productivity
If multi-level packet classification is implemented, then packet processing efficiency and routing precision are improved, but device complexity increases
Solution Approach 1:
The classification system is segmented into multiple hierarchical levels where each level handles specific classification tasks. The first data structure manages coarse-grained flow identification while the second data structure handles fine-grained connection details. This segmentation improves processing efficiency by eliminating the need for single exhaustive classification passes, while complexity is managed through clear separation of concerns at each level.
Solution Approach 2:
The patent performs preliminary classification actions at the first data structure level before packets reach the second data structure. Common flow information is identified and stored upfront, allowing subsequent connection-specific classification to operate on pre-filtered data. This preliminary action reduces the processing burden at later stages, improving overall efficiency while maintaining structured complexity management.
4Adaptability or versatility
If multiple receive rings and virtual network interface cards are used, then adaptability and packet distribution capability are improved, but device complexity and resource requirements increase
Solution Approach 1:
Virtual network interface cards are designed as universal intermediaries that can handle multiple functions: packet reception, classification, virtualization, and routing to different receive rings. This multi-functionality allows a single VNIC layer to replace what would otherwise require multiple specialized components, improving adaptability while managing complexity through consolidation of diverse functions into a unified virtual interface layer.
Data Source
AI summary
A method for processing a packet that includes receiving the packet where the packet comprises a header, and traversing a flow table comprising a plurality of flow table entries (FTEs) for each FTE encountered during the traversal, obtaining a packet matching function associated with the FTE, applying the packet matching function associated with the FTE to the header to determine whether the packet matches the FTE, if the packet matches the FTE, send the packet to one selected from the group consisting of one of a plurality of receive rings (RRs) and a first sub-flow table, where the first sub-flow table is associated with the FTE, stopping the traversal of the flow table, and if the packet does not match the FTE continue the traversal of the flow table.


