Lockless Flow Cache Table for Packet Processing Speed
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software-based packet processing units in centralized-control-type networks face reduced processing speed compared to hardware processing, particularly during rule searches, leading to standby times due to mutual exclusion requirements when accessing flow cache tables.
Innovation Solution
Implementing a lockless flow cache table by having the packet processing unit create and manage the flow cache table, eliminating the need for mutual exclusion with the rule control unit, and using sequence numbers to synchronize updates, allowing the packet processing unit to determine if the rule table has been updated, thus enabling faster packet processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a flow cache table is managed by a separate rule control unit, then rule updates can be controlled centrally, but mutual exclusion is required when accessing the flow cache table causing standby time
Solution Approach 1:
The packet processing unit autonomously manages the flow cache table itself, including creating, updating, and deleting flow cache entries. This self-service approach eliminates the need for a separate rule control unit to manage the flow cache table, thereby removing mutual exclusion requirements and standby time while maintaining reliable rule updates through version number comparison
2Adaptability or versatility
If packet processing is implemented by software, then flexibility and programmability are improved, but processing speed decreases compared to hardware processing
Solution Approach 1:
The system pre-creates flow cache entries in the flow cache table based on rules from the rule table before actual packet processing occurs. When packets arrive, the packet processing unit can quickly match against pre-computed flow cache entries using pointers, avoiding time-consuming rule searches during packet processing and achieving hardware-like speed while maintaining software flexibility
Solution Approach 2:
The system creates simplified copies of rules in the form of flow cache entries with pointers to action table entries. These flow cache entries serve as lightweight replicas that can be quickly searched and accessed during packet processing, significantly reducing the computational complexity and time required compared to searching the original rule tables while maintaining the essential matching functionality
3Measurement precision
If rule search is performed during packet processing, then accurate packet handling is achieved, but search processing time increases compared to hardware processing
Solution Approach 1:
The system creates simplified copies of rules in the form of flow cache entries with pointers to action table entries. These flow cache entries serve as lightweight replicas that can be quickly searched and accessed during packet processing, significantly reducing the computational complexity and time required compared to searching the original rule tables while maintaining the essential matching functionality
Solution Approach 2:
The system pre-creates flow cache entries in the flow cache table based on rules from the rule table before actual packet processing occurs. When packets arrive, the packet processing unit can quickly match against pre-computed flow cache entries using pointers, avoiding time-consuming rule searches during packet processing and achieving hardware-like speed while maintaining software flexibility
Data Source
AI summary
A packet processing device includes: a storage unit that holds an action table including actions that define processing contents of packets and a rule table including rules to search for actions to be applied to packets; a rule control unit that updates rules included in the rule table; and a packet processing unit that searches the action table for an action to be applied to a received packet using the rule table, processes the packet in accordance with the searched action, and accumulates a pointer with respect to the searched action, wherein the packet processing unit determines whether the rule table has been updated by the rule control unit after accumulation of the pointer and, if not updated, extracts an action to be applied to a received packet from the action table in accordance with the accumulated pointer.


