Flow Cache Mechanism for Network Device Packet Lookup Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing methods for packet flow processing in computer networks, particularly those using Bloom filters and hash tables, face bottlenecks in throughput due to 'hot banking' issues when multiple packet flows share the same memory bank, leading to increased clock cycles and hash table lookups, which can limit network device performance.
Innovation Solution
Implementing a flow cache that selectively stores information about packet flows based on configurable parameters such as clock cycles and hash table lookups, allowing for programmatic control to identify and cache packet flows most likely to impact performance, thereby reducing cache size and hardware costs while improving throughput.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If a Bloom filter is implemented in hardware with multiple memory banks to perform parallel lookups, then the speed of identifying filter terms is improved, but when a large number of search keys require reads from the same memory bank, the queue becomes full and forces the scheduler to stall, limiting overall throughput
Solution Approach 1:
The patent segments the Bloom filter into multiple independent memory banks (first memory bank, second memory bank, etc.), each capable of processing lookup requests in parallel. This segmentation allows the system to distribute search keys across different memory banks, preventing any single bank from becoming a bottleneck and thereby maintaining both high lookup speed and high throughput simultaneously.
Solution Approach 2:
The patent introduces a new dimension of parallelism by organizing memory banks in a multi-dimensional structure where search keys can be routed to different banks based on their characteristics. This dimensional organization transforms the single-queue bottleneck into a multi-queue system, enabling concurrent processing of multiple lookup requests without mutual interference.
2Productivity
If the flow cache stores information about all packet flows, then lookup performance is improved, but the cache size increases and hardware costs increase
Solution Approach 1:
The patent applies local quality by storing different types of information in different parts of the flow cache. Specifically, it stores flow identification information (for quick matching) separately from flow state information (for filtering decisions). This selective storage strategy ensures that only essential information is cached, optimizing lookup performance while minimizing cache size and hardware requirements.
Solution Approach 2:
The patent implements partial caching by storing information for only a portion of packet flows rather than all flows. The flow cache selectively caches flows that benefit most from caching (e.g., frequent flows or flows with complex filtering rules), achieving significant performance improvement without the need to cache every possible flow, thus reducing overall cache size.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
An example network device includes a network interface configured to receive a packet of a packet flow, wherein the packet flow is one of a plurality of packet flows processed by the network device, a flow cache configured to receive a lookup key associated with the packet flow, and a Bloom filter configured to process the lookup key. The flow cache is further configured to store information about a portion of the plurality of packet flows processed by the network device, and determine whether to store information about the packet flow by at least applying a selection criterion to processing of the lookup key by the Bloom filter. The flow cache is configured to determine whether the lookup key is stored in the flow cache, and, when the lookup key is stored in the flow cache, retrieve a stored result associated with the lookup key and output the stored result.