Hash Collision Avoidance in Network Routing Tables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Network devices face challenges in efficiently routing data packets due to limited capacity of routing tables stored in volatile memory, which requires minimizing data storage for each route while maintaining accurate and low latency traffic direction.
Innovation Solution
A network device architecture that includes a packet classifier, field-selection table, hash module, and routing table, where the routing module determines an entry in the packet classifier, generates a hash result based on packet bits, and matches it to the routing table to obtain processing data, optimizing routing table entries and reducing collisions through dynamic updates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If routing tables store more data for each route to improve routing accuracy, then routing precision is improved, but routing table capacity is exceeded and device complexity increases
Solution Approach 1:
The routing table is segmented into multiple portions, with each portion storing only a subset of routing parameters. The packet routing process is divided into multiple lookups across different portions, extracting partial information iteratively until complete routing data is assembled. This segmentation allows the routing table to maintain high accuracy while staying within capacity constraints.
2Reliability
If routing tables store more data for each route to reduce hash collisions, then collision accuracy is improved, but routing table capacity is exceeded
Solution Approach 1:
The routing table is divided into multiple portions that collectively store routing information. By distributing routing data across segments and performing iterative lookups, the system reduces hash collisions while maintaining reliability. Each portion contributes partial information, and the combination of segments provides complete routing accuracy without requiring excessive capacity in any single location.
3Quantity of substance
If routing tables are minimized to fit volatile memory capacity, then memory efficiency is improved, but routing accuracy and collision reduction capability deteriorate
Solution Approach 1:
The routing table is organized into multiple compact portions that fit within volatile memory constraints. Each portion stores a specific subset of routing parameters, and the system performs sequential lookups across these segments to reconstruct complete routing information. This segmentation enables efficient memory utilization while preserving routing accuracy through iterative information gathering.
Solution Approach 2:
The routing lookup process transitions from a single-dimension direct lookup to a multi-dimension iterative process. Instead of requiring all routing data in one location, the system navigates through multiple dimensions (portions) of the routing table, accumulating routing information step by step. This dimensional approach allows compact memory storage while maintaining comprehensive routing capability.
4Quantity of substance
If routing tables are minimized to fit volatile memory capacity, then memory efficiency is improved, but collision accuracy deteriorates
Solution Approach 1:
The routing table is divided into multiple portions that collectively provide sufficient data to minimize hash collisions. By distributing routing information across segments and performing iterative lookups, the system achieves collision accuracy comparable to larger single-table designs while maintaining memory efficiency. Each segment contributes to reducing collisions through its unique subset of routing parameters.
Data Source
AI summary
Network device and method for routing a packet and setting up a new flow. The device includes a packet classifier, a field-selection table, a hash module, and a routing table. A packet is routed by finding an entry in the field-selection table using the packet classifier, selecting bits from the packet based on the entry in the field-selection table, and hashing the selected bits along with an identifier from the packet classifier or the field-selection table, using the hash module. The hash result is used to locate instructions in the routing table. When setting up a new flow, the hash module result may point to an existing entry in the routing table. In such instances, a new entry is added to the packet classifier, such that the hash module will produce a different result that points to an available entry in the routing table.


