Hash functions for applications such as network address lookup
First Claim
1. A processor-implemented method for generating a plurality of hash values for an input key, the method comprising:
- (a) hashing the input key using a set of seed hash functions to generate a set of seed hash values for the input key, wherein the input key is a candidate prefix value for a given network address;
(b) combining two or more of the seed hash values one or more different ways to generate one or more additional hash values for the input key; and
(c) using the seed hash values and one or more additional hash values to perform membership probes into a Bloom filter programmed with prefix values of a routing table having a plurality of different prefix lengths.
2 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment, IP lookup into a routing table having prefixes of different prefix lengths is performed by hashing a candidate prefix value to generate a plurality of hash values, where m seed hash values are generated by applying m seed hash functions and one or more additional hash values are generated by combining two or more of the seed hash values in different ways, e.g., using a bit-wise XOR function. The hash values are used to perform membership probes into a Bloom filter 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.
-
Citations
12 Claims
-
1. A processor-implemented method for generating a plurality of hash values for an input key, the method comprising:
-
(a) hashing the input key using a set of seed hash functions to generate a set of seed hash values for the input key, wherein the input key is a candidate prefix value for a given network address; (b) combining two or more of the seed hash values one or more different ways to generate one or more additional hash values for the input key; and (c) using the seed hash values and one or more additional hash values to perform membership probes into a Bloom filter programmed with prefix values of a routing table having a plurality of different prefix lengths. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An apparatus for generating a plurality of hash values for an input key, the apparatus comprising:
-
two or more seed hash function elements adapted to hash the input key using a set of seed hash functions to generate a set of seed hash values for the input key, wherein the input key is a candidate prefix value for a given network address; one or more seed hash value combiners adapted to combine two or more of the seed hash values one or more different ways to generate one or more additional hash values for the input key; and apparatus for using the seed hash values and one or more additional hash values to perform membership probes into a Bloom filter programmed with prefix values of a routing table having a plurality of different prefix lengths. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification