Hash Range Lookup Command for Network Switching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional network switching appliances face inefficiencies in packet processing due to the slow lookup operations in hash tables, particularly when handling millions of flows at high data rates, as multiple flow keys are converted into the same hash value, leading to excessive searches in hash tables.
Innovation Solution
The Island-Based Network Flow Processor (IB-NFP) integrated circuit employs a novel hash range lookup command that allows for a selective search of hash buckets, using a microengine to send a hash range lookup command across a command bus to a lookup engine, which examines a limited number of hash buckets to find a matching flow key, thereby enhancing packet processing speeds.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If a conventional hash table lookup is used to determine flow routing, then the lookup operation can be performed, but the processing speed is slow due to excessive searches in hash buckets
Solution Approach 1:
The hash table is segmented into multiple hash buckets, and the lookup operation is divided into examining only a selective range of these buckets rather than searching the entire table. This segmentation allows the system to divide the search space and reduce the number of comparisons needed, directly improving lookup speed and reducing processing time.
Solution Approach 2:
Instead of performing a complete search of all hash buckets, the invention applies partial action by examining only a limited range of hash buckets (e.g., the hash bucket corresponding to the hash value and adjacent buckets). This partial search is sufficient to find the flow key in most cases while significantly reducing the time required compared to a full table search.
2Device complexity
If multiple flow keys are converted into the same hash value, then hash table indexing is simplified, but the number of searches required in hash buckets increases
Solution Approach 1:
The hash bucket array is segmented into multiple discrete buckets that can be independently addressed. When hash collisions occur (multiple flow keys mapping to the same hash value), the system segments the search into examining only the relevant hash bucket and a limited range of adjacent buckets, rather than searching the entire hash table. This maintains simple indexing while improving productivity.
Solution Approach 2:
The invention applies local quality by making different parts of the hash table (different hash buckets) serve different purposes. Each hash bucket is optimized for storing flow keys with specific hash values, and the lookup process focuses locally on the relevant bucket range rather than uniformly searching the entire table. This local optimization reduces collision resolution time and improves overall throughput.
Data Source
AI summary
A novel hash range lookup command is disclosed. In an exemplary embodiment, a method includes (a) providing access to a hash table that includes hash buckets having hash entry fields; (b) receiving a novel hash lookup command; (c) using the hash lookup command to determine hash command parameters, a hashed index value, and a flow key value; (d) using the hash command parameters and the hashed index value to generate hash values (addresses) to access entry fields in a selectable number of hash buckets; (e) comparing bits of the entry value in the entry field to bits of the flow key value; (f) repeating (d) through (e) until a match is determined or until the selectable number of hash buckets and entries have been accessed; and (g) returning either an address of the entry field containing the match or a result associated with the entry field containing the match.


