Bloom Filter Longest Prefix Match for Network Routing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current network devices face inefficiencies in longest prefix match operations due to high memory access requirements and scalability issues with TCAM-based and RAM-based routing tables, particularly with increasing network address lengths.
Innovation Solution
The implementation of a method using Bloom filters to perform longest prefix match lookups, where Bloom filters represent prefixes of varying lengths, and dynamically adjust their size based on false positive probabilities to optimize memory access, reducing the number of accesses needed for subsequent packets.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If TCAM-based routing tables are used for longest prefix match lookups, then search speed is improved, but device size, cost and power consumption increase
Solution Approach 1:
The routing table is divided into multiple segments stored in different memory blocks. Each memory block contains a portion of the routing entries, allowing parallel access to multiple segments simultaneously. This segmentation enables the system to achieve high search speeds comparable to TCAM while using standard memory devices with lower cost and power consumption.
Solution Approach 2:
An intermediary processing structure is introduced between the input address and the memory blocks. This intermediary includes components that preprocess the address, determine which memory blocks to access, and coordinate the parallel lookup operations. This mediator enables efficient navigation through the segmented routing table without requiring expensive TCAM hardware.
2Device complexity
If RAM-based routing tables with trie-based algorithms are used, then cost and power consumption are reduced, but search speed decreases and memory bandwidth increases
Solution Approach 1:
The routing table is segmented across multiple memory blocks that can be accessed in parallel. Instead of using a sequential trie-based algorithm that processes entries one by one, the segmented approach allows simultaneous access to multiple routing entries across different memory blocks, dramatically improving search speed while maintaining compatibility with standard RAM devices.
Solution Approach 2:
The system performs partial parallel access to memory blocks based on the input address characteristics. Not all memory blocks are accessed for every lookup operation - only those relevant to the specific address being searched. This selective parallel access reduces the overall memory bandwidth requirement compared to fully parallel approaches while still achieving significant speed improvements over sequential methods.
3Device complexity
If traditional routing table structures are used, then implementation is simple, but scalability to longer network addresses is poor
Solution Approach 1:
The routing table structure is designed to be dynamic and adaptable to different address lengths. The segmentation strategy and memory block organization can be reconfigured to accommodate varying prefix lengths and address formats (such as transitioning from IPv4 to IPv6). This dynamic structure maintains implementation simplicity while providing excellent scalability to longer network addresses.
Solution Approach 2:
The routing table architecture is designed with universal applicability to handle multiple address formats and lengths. The same basic structure can accommodate different network protocols and address schemes by adjusting the segmentation parameters and memory block organization, making the system scalable without requiring fundamental redesign for longer address formats.
4Quantity of substance
If more memory space is allocated for routing table entries, then more routing information can be stored, but memory bandwidth requirements increase
Solution Approach 1:
Routing information is segmented and distributed across multiple memory blocks. Each block contains a subset of the routing entries, allowing the system to store large amounts of routing information without requiring high bandwidth for any single memory access. The parallel access to multiple segmented blocks reduces the effective bandwidth requirement compared to storing all entries in a single large memory structure.
Data Source
AI summary
A network address associated with a packet is obtained at a search engine of a network device. The search engine includes a plurality of Bloom filters that represent prefixes of respective lengths in the routing table. Respective Bloom filters are applied to respective prefixes of the network address to determine a set of one or more prefixes for which a match potentially exists in the routing table. A number of accesses to the memory are performed using prefixes in set of prefixes, beginning with a longest prefix and continuing in decreasing order of prefix lengths until a matching entry is found in the routing table, and routing information for the packet is retrieved. If the number of performed memory accesses exceeds a threshold, the routing table is adapted to reduce a number of memory accesses to be performed for subsequent packets associated with the network address.


