Address lookup in packet data communication networks
First Claim
1. An apparatus for performing an address lookup to find a longest matching prefix for an N-bit input address in a packet data communication system, comprising:
- a memory for storing a table containing a predefined portion of an N-bit address with an associated prefix search list containing prefix values that are candidates for the longest matching prefix;
an algorithm for selecting a specific prefix value in the prefix search list to structure the N-bit input address to form a search value; and
a search algorithm for performing an associative comparison of the search value to address entries in a table having the specific prefix value.
10 Assignments
0 Petitions
Accused Products
Abstract
An apparatus for performing an address lookup to find a longest matching prefix for an N-bit input address in a packet data communication system that includes a memory (e.g. RAM) for storing a table containing a predefined portion of an N-bit address with an associated prefix search list containing prefix values that are candidates for the longest matching prefix. A binary search algorithm is used for selecting a specific prefix value from the prefix search list to structure the N-bit input address to form a search value. A search algorithm (e.g. a content addressable memory) is used for performing an associative search on the search value to find the longest matching prefix. The two types of memories (RAM and CAM) each provide specific functions. The RAM is used as a lookup table to provide an N/x-bit (0<x<N) binary decoding tree, and the CAM is used to provide an associative search of network addresses that are stored in logical bins that have a specific network prefix. By using the binary search algorithm that is guided by the lookup table data, the CAM can be probed to find the longest matching prefix.
-
Citations
26 Claims
-
1. An apparatus for performing an address lookup to find a longest matching prefix for an N-bit input address in a packet data communication system, comprising:
-
a memory for storing a table containing a predefined portion of an N-bit address with an associated prefix search list containing prefix values that are candidates for the longest matching prefix; an algorithm for selecting a specific prefix value in the prefix search list to structure the N-bit input address to form a search value; and a search algorithm for performing an associative comparison of the search value to address entries in a table having the specific prefix value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus for performing a longest matching prefix search of a network address for an N-bit input address in a packet data communication system, comprising:
-
a memory for storing a table containing an N/x-bit portion of an N-bit address with an associated prefix search list containing prefix values that are candidates for the longest matching prefix, wherein each of said prefix values represent at least one possible network address match to the N-bit input address; a binary search algorithm for selecting a specific prefix value in the prefix search list to mask the N-bit input address to form a search value; and a search algorithm for performing an associative comparison of the search value to address entries in a table having the specific prefix value, where 0<
x<
N. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A method of performing an address lookup to find a longest matching prefix for an N-bit input address in a packet data communication system, comprising:
-
(a) storing a table containing a predefined portion of an N-bit address with an associated prefix search list containing prefix values that are candidates for the longest matching prefix; (b) selecting a target prefix value in the prefix search list to structure the N-bit input address to form a search value; and (c) performing an associative comparison of the search value to address entries in a table having the target prefix value. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26)
-
Specification