NETWORK ADDRESS LOOKUP BASED ON BLOOM FILTERS
First Claim
1. A method for performing a network address lookup for a routing table having prefixes of a plurality of different prefix lengths, the method comprising:
- (a) providing a Bloom filter (e.g., 301) programmed with the prefixes corresponding to all of the different prefix lengths in the routing table without having to expand any of the prefixes programmed into the Bloom filter; and
(b) performing membership probes into the Bloom filter using candidate prefix values for a given network address (e.g., 352).
3 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment, IP lookup into a routing table having prefixes of different prefix lengths is performed using a Bloom filter that was programmed with the prefixes corresponding to all of the different prefix lengths without having to expand any of the prefixes programmed into the Bloom filter. Membership probes are performed into the Bloom filter using candidate prefix values of a given network address. The Bloom filter can be implemented in a distributed manner using Bloom sub-filters, where each Bloom sub-filter is hashed based on a set of hash functions, where each different hash function in the set corresponds to a different prefix length in the routing table. Each Bloom sub-filter can in turn be implemented using a plurality of practically realizable multi-port memory devices controlled by a port scheduler. False-positive matches can be detected and next-hop information for true-positive matches retrieved using an off-chip, hash-based prefix table.
-
Citations
30 Claims
-
1. A method for performing a network address lookup for a routing table having prefixes of a plurality of different prefix lengths, the method comprising:
-
(a) providing a Bloom filter (e.g., 301) programmed with the prefixes corresponding to all of the different prefix lengths in the routing table without having to expand any of the prefixes programmed into the Bloom filter; and (b) performing membership probes into the Bloom filter using candidate prefix values for a given network address (e.g., 352). - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. An apparatus for performing a network address lookup for a routing table having prefixes of a plurality of different prefix lengths, the apparatus comprising:
-
a Bloom filter (e.g., 301) adapted to be programmed with the prefixes corresponding to all of the different prefix lengths in the routing table without having to expand any of the prefixes programmed into the Bloom filter; and a routing processor (e.g., 306) adapted to perform membership probes into the Bloom filter using candidate prefix values for a given network address (e.g., 352). - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. Apparatus for performing a network address lookup for a routing table having prefixes of a plurality of different prefix lengths, the apparatus comprising:
-
means for providing a Bloom filter (e.g., 301) programmed with the prefixes corresponding to all of the different prefix lengths in the routing table without having to expand any of the prefixes programmed into the Bloom filter; and means for performing membership probes into the Bloom filter using candidate prefix values for a given network address (e.g., 352).
-
Specification