Bloom Filter Longest Prefix Match for Network Routing

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesearch speedVSAvoiddevice size
Core Design Contradiction:
SpeedVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvedevice costVSAvoidsearch speed
Core Design Contradiction:
Device complexityVSSpeed

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #16Partial or excessive action

3Device complexity

If traditional routing table structures are used, then implementation is simple, but scalability to longer network addresses is poor

Engineering Contradiction:
Improveimplementation simplicityVSAvoidscalability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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

Engineering Contradiction:
Improverouting information capacityVSAvoidmemory bandwidth
Core Design Contradiction:
Quantity of substanceVSUse of energy by moving object

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9819637B2Efficient longest prefix matching techniques for network devices
Publication Date: 2017.11.14 MARVELL ASIA PTE LTD
  • US9819637B2 patent drawing
  • US9819637B2 patent drawing
  • US9819637B2 patent drawing

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.