Bloom Filter Lookup for Variable Prefix Lengths
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network devices face performance penalties when handling large sets of prefix lengths due to hardware or software constraints, as they are limited in the number of prefix lengths that can be evaluated concurrently, leading to increased processing time and power usage.
Innovation Solution
The technique involves grouping prefix lengths into multiple groups, each containing no more than the maximum number of prefix lengths supported by the hardware or software, allowing the network device to iterate through these groups until a match is found or all groups have been searched, thereby reducing the number of prefixes that need to be searched and processed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the network device evaluates multiple different prefix lengths concurrently to improve search speed, then the lookup performance is improved, but the hardware or software constraints limit the number of prefix lengths that can be evaluated in parallel
Solution Approach 1:
The patent segments the set of prefix lengths into multiple groups, where each group contains no more than the maximum number of prefix lengths that can be evaluated in parallel. This segmentation allows the system to manage prefix length evaluation in manageable chunks while maintaining high throughput by processing multiple groups concurrently.
Solution Approach 2:
The patent introduces a new dimension by organizing prefix lengths into groups rather than treating them as a single flat list. This dimensional reorganization enables the system to exceed the parallel evaluation limit by distributing prefix length evaluation across multiple groups that can be processed in parallel, effectively increasing the total number of prefix lengths that can be evaluated concurrently.
2Adaptability or versatility
If the network device supports a large set of prefix lengths, then the adaptability is improved, but the processing time and power usage increase
Solution Approach 1:
The patent segments the large set of prefix lengths into multiple smaller groups, each manageable by the hardware. This segmentation maintains the ability to support extensive prefix length sets while reducing processing time by limiting the number of prefixes evaluated in each parallel iteration.
Solution Approach 2:
The patent employs partial action by evaluating only the necessary number of prefix lengths from each group in parallel, rather than evaluating all possible prefix lengths simultaneously. This partial evaluation approach reduces processing time and power consumption while still providing comprehensive coverage across multiple groups.
3Productivity
If the network device iterates through multiple groups of prefix lengths, then the number of prefixes to search is reduced, but the complexity of managing multiple groups increases
Solution Approach 1:
The patent segments prefix lengths into groups that are easy to manage and iterate through. Each group is independently manageable, allowing the system to simplify the complexity of handling large prefix sets by breaking them down into smaller, organized units.
Solution Approach 2:
The patent creates a universal group structure that can accommodate any number of prefix lengths while maintaining consistent management procedures. This universal approach simplifies complexity by providing a standardized method for handling prefix length groups regardless of their size or content.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
An example network device includes a control plane and a filter lookup module that includes a Bloom filter that supports parallel lookup of a maximum number of different prefix lengths. The filter lookup module accesses the Bloom filter to determine a longest length prefix that matches an entry in a set of prefixes. The control plane receives prefix lengths that include more than the maximum number of different prefix lengths supported by the Bloom filter, wherein the set of prefix lengths is associated with one application, generates, based on the received set of prefix lengths, two or more groups of different prefix lengths, wherein each of the two or more groups of different prefix lengths includes no more than the maximum number of different prefix lengths, and programs the filter lookup module with the two or more groups of different prefix lengths associated with the one application.