Multi-key Decision Cache for Network Packet Forwarding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current network switches face performance bottlenecks when processing packets that require software processing, as they often rely on slower software routines due to hardware limitations, particularly in tasks like network address translation and complex decision-making.
Innovation Solution
Implementing a decision cache that uses multiple-key lookups to rapidly evaluate packets and apply cached actions, reducing the need for extensive software processing by leveraging hash values and internal table searches, thereby accelerating packet forwarding.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If software routines are used to process packets requiring complex decisions, then processing flexibility is improved, but processing speed deteriorates
Solution Approach 1:
The decision cache pre-computes and stores forwarding decisions for common packet types and scenarios. When a packet arrives, the system first checks the cache for pre-computed decisions, allowing rapid forwarding without executing full software processing routines, thus resolving the contradiction between flexibility and speed
Solution Approach 2:
The decision cache acts as an intermediary between the incoming packet and the software processing routines. It filters out packets that can be handled by cached decisions, allowing only complex cases to reach software processing, thereby improving overall processing speed while maintaining flexibility for edge cases
2Speed
If hardware-based switching is used to achieve wirespeed performance, then processing speed is improved, but device complexity increases
Solution Approach 1:
The packet processing function is segmented into three distinct paths: hardware-based wirespeed forwarding for simple packets, decision cache lookup for common scenarios, and software-based processing for complex cases. This segmentation allows the system to achieve high performance for majority traffic while maintaining flexibility and managing complexity through modular processing paths
3Reliability
If comprehensive software processing is performed for all packets, then processing completeness is improved, but productivity deteriorates
Solution Approach 1:
Instead of performing complete software processing for all packets (excessive action), the system applies partial processing by using the decision cache to handle common packet types efficiently. This partial action approach maintains processing completeness for necessary cases while dramatically improving productivity by avoiding unnecessary software processing for cacheable packets
Data Source
AI summary
One embodiment disclosed relates to a method of processing a data packet. The data packet is received at a network device. A determination is made as to whether a multiple-key decision cache is hit by the data packet. At least one cached action is applied if the decision cache is hit. The data packet is processed using software routines if the decision cache is missed. Another embodiment disclosed relates to a network apparatus. The network apparatus includes a plurality of ports configured to receive data packets, and software routines are configured to process the data packets. Logic in the apparatus is configured to determine whether a multiple-key decision cache is hit by a data packet, to apply at least one cached action if the decision cache is hit, and to process the data packet using the software routines if the decision cache is missed.


