US 7885268 B2 Abstract Aspects of a method and system for hash table based routing via table and prefix aggregation are provided. Aspects of the invention may enable aggregating prefixes of varying lengths into a single hash table, wherein each entry in the hash table comprises one or more encoded bits to uniquely identify said prefixes. Additionally, an entry in a hash table may be formatted based on a length of one or more representations of said prefixes in the entry. Aggregating prefixes into a hash table may comprise truncating the prefixes to a common length. In this regard, the encoded bits may indicate the length of the prefixes prior to and/or subsequent to truncation. Additionally, the encoded bits may represent bits removed from the prefix during truncation. In this regard, an encoded bit may represent a possible combination of removed bits and may be asserted when the removed bits are equal to that combination.
Claims(36) 1. A method for data processing, the method comprising:
performing by one or more processors or circuits in a network device:
aggregating prefixes of varying lengths in a hash table, wherein each entry in said hash table comprises one or more encoded bits used to uniquely identify prefixes associated with said each entry;
routing data in a network utilizing said hash table, wherein one or more of: a number of fields in said each entry in said hash table, a size of one or more fields in said each entry in said hash table, and an ordering of fields in said each entry in said hash table is controlled based on a length of said prefixes associated with said each entry.
2. The method according to
said each entry in said hash table comprises a multi-purpose field; and
the format of said multi-purpose field for a particular entry is based on a length of one or more prefixes associated with said particular entry.
3. The method according to
4. The method according to
5. The method according to
6. The method according to
7. The method according to
8. The method according to
defining a set of m prefix lengths, l
_{1}, . . . , l_{m}, where m is a positive integer greater than 1; andtruncating prefixes longer than or equal to l
_{i }and shorter than l_{i+1 }to length l_{i }, wherein l_{i }and l_{i+1 }represent two consecutive lengths comprising said set, and i is a positive integer greater than or equal to 1 and less than said integer m.9. The method according to
translating each of said prefixes as a coefficient set of a polynomial; and
calculating a remainder and a quotient resulting from a modulo 2 division of said polynomial by a generator polynomial.
10. The method according to
11. The method according to
12. The method according to
13. A non-transitory computer-readable medium having stored thereon, a computer program having at least one code section for processing data, the at least one code section being executable by a computer for causing the computer to perform steps comprising:
aggregating prefixes of varying lengths in a hash table, wherein each entry in said hash table comprises one or more encoded bits used to uniquely identify prefixes associated with said each entry;
routing data in a network utilizing said hash table, wherein one or more of a number of fields in said each entry in said hash table, a size of one or more fields in said each entry in said hash table, and an ordering of fields in said each entry in said hash table is controlled based on a length of said prefixes associated with said each entry.
14. The non-transitory computer-readable medium according to
said each entry in said hash table comprises a multi-purpose field; and
the format of said multi-purpose field for a particular entry is based on a length of one or more prefixes associated with said particular entry.
15. The non-transitory computer-readable medium according to
16. The non-transitory computer-readable medium according to
17. The non-transitory computer-readable medium according to
18. The non-transitory computer-readable medium according to
19. The non-transitory computer-readable medium according to
20. The non-transitory computer-readable medium according to
defining a set of m prefix lengths, l
_{1}, . . ., l_{m}, where m is a positive integer greater than 1; andtruncating prefixes longer than or equal to l
_{i }and shorter than l_{i+1 }to length l_{i }, wherein l_{i }and l_{i+1 }represent two consecutive lengths comprising said set, and i is a positive integer greater than or equal to 1 and less than said integer m.21. The non-transitory computer-readable medium according to
translating each of said prefixes as a coefficient set of a polynomial; and
calculating a remainder and a quotient resulting from a modulo 2 division of said polynomial by a generator polynomial.
22. The non-transitory computer-readable medium according to
23. The non-transitory computer-readable medium according to
24. The non-transitory computer-readable medium according to
25. A system for data processing, the system comprising:
one or more processors and/or circuits for use in a network device, wherein said one or more processors and/or circuits are operable to:
aggregate prefixes of varying lengths in a hash table, wherein each entry in said hash table comprises one or more encoded bits used to uniquely identify prefixes associated with said each entry;
route data in a network utilizing said hash table, wherein one or more of a number of fields in said each entry in said hash table, a size of one or more fields in said each entry in said hash table, and an ordering of fields in said each entry in said hash table is controlled based on a length of said prefixes associated with said each entry.
26. The system according to
said each entry in said hash table comprises a multi-purpose field; and
the format of said multi-purpose field for a particular entry is based on a length of one or more representations of said prefixes associated with said particular entry.
27. The system according to
28. The system according to
29. The system according to
30. The system according to
31. The system according to
32. The system according to
define a set of m prefix lengths, l
_{1}, . . . , l_{m}, where m is a positive integer greater than 1; andtruncate prefixes longer than or equal to l
_{i }and shorter than l_{i+1 }to length l_{i }, wherein l_{i }and l_{i+1 }represent two consecutive lengths comprising said set, and i is a positive integer greater than or equal to 1 and less than said integer m.33. The system according to
translate each of said prefixes as a coefficient set of a polynomial; and
calculate a remainder and a quotient resulting from a modulo 2 division of said polynomial by a generator polynomial.
34. The system according to
35. The system according to
36. The system according to
Description This patent application makes reference to, claims priority to and claims benefit from U.S. Provisional Patent Application Ser. No. 60/865,369 filed on Nov. 10, 2006. This application also makes reference to: U.S. patent application Ser. No. 11/776,652 filed on Jul. 12, 2007. Each of the above stated applications is hereby incorporated herein by reference in its entirety. Certain embodiments of the invention relate to data processing. More specifically, certain embodiments of the invention relate to a method and system for hash table based routing via table and prefix aggregation. As the number of devices connected to data networks increase and higher data rates are required, there is a growing need for new technologies enabling higher transmission rates. In this regard, various efforts exist, including technologies that enable transmission rates that may even exceed Gigabits-per-second (Gbps) data rates. For example, the IEEE 802.3 standard defines the (Medium Access Control) MAC interface and physical layer (PHY) for Ethernet connections at 10 Mbps, 100 Mbps, 1 Gbps, and 10 Gbps data rates over twisted-pair copper cabling. Accordingly, as data rates increase due to widespread deployment of 1 Gbps and 10 Gbps Ethernet switches, fast IP address lookups have become indispensable for core and edge routers. Meanwhile, the number of prefixes in core routers has experienced explosive growth, with the largest border gateway protocol (BGP) routing table seeing, for example, a 40% surge in number of prefixes in a 12-month period. Earlier solutions to IP address lookups were tries-based through software execution to match an IP address progressively a few bits at a time against. In this regard, prefixes were stored in a tree-like data structure to support longest prefix matching (LPM), which chooses the longest prefix among those which matches the given IP address. In contrast, hash tables offer an attractive method for fast IP lookups because of their constant-time search latencies. Hash tables are also attractive because they can be implemented in regular SRAM rather than TCAM. SRAM may be preferred over TCAM because SRAM is less expensive, more power efficient, and exhibits higher densities than TCAM. Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings. A system and/or method is provided for hash table based routing via table and prefix aggregation, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims. These and other advantages, aspects and novel features of the present invention, as well as details of an illustrated embodiment thereof, will be more fully understood from the following description and drawings. Certain embodiments of the invention may be found in a method and system for hash table based routing via table and prefix aggregation. Aspects of the invention may enable aggregating prefixes of varying lengths into a single hash table, wherein each entry in the hash table comprises one or more encoded bits to uniquely identify said prefixes. Additionally, an entry in the hash table may be formatted based on a length of one or more representations of said prefixes in the entry. Aggregating prefixes into the hash table may comprise truncating the prefixes to a common length. In this regard, the encoded bits may indicate the length of the prefixes prior to and/or subsequent to truncation. Additionally, the encoded bits may represent bits removed from the prefix during truncation. In this regard, an encoded bit may represent a possible combination of removed bits and may be asserted when the removed bits are equal to that combination. The sub-networks The end systems The routers In an exemplary routing operation, a packet may arrive at the router In another exemplary routing operation, a packet may arrive at the router The prefixes The hash table The hash function Although choice of a proper generator polynomial may limit the occurrence of collisions, no hash function may be perfect and collisions may occur. In this regard, an associative degree of the table may be determined based on theoretical or empirically determined expectance of collisions. For example, as shown in Each of the hash tables Each of the hash tables In choosing the values of the treads for the tables Because prefixes may be truncated to a tread t before calculation of the quotient and remainder, storage of q(p Although the tables Each of the prefixes The binary division blocks In operation, a longest prefix match may be determined for the exemplary IP address 192.168.0.1. To determine a longest prefix match, the address may be truncated to y defined treads {t Accordingly, aspects of the invention may enable searching for a match to each of the y prefixes. Subsequent to step The length indicator The multi-purpose field The bitmask may enable representing 2 prefixes, which differ only in their least significant bit, in a single entry. For example, the 10 bit prefix 1111111111 Although, a 3 bit rounded-off bits field is depicted, treads may be further apart and thus more rounded-off bits may be stored without deviating from the scope of the invention. Similarly, invention is not limited to storing a quotient in the field The next hop address The length indicator The multi-purpose field The field It may be noted that, in various embodiments of the invention, multiple length indicators may be assigned to a tread which does not aggregate prefixes of multiple lengths. In this regard a tread which may not represent prefixes of multiple lengths, such as tread The length indicator field The length indicator The multi-purpose field The multi-purpose field The multi-purpose field The multi-purpose field Accordingly entries as formatted according to table Aspects of the invention may enable aggregating prefixes of varying lengths into a single hash table, such as the hash table Another embodiment of the invention may provide a machine-readable storage, having stored thereon, a computer program having at least one code section executable by a machine, thereby causing the machine to perform the steps as described herein hash table based routing via table and prefix aggregation Accordingly, the present invention may be realized in hardware, software, or a combination of hardware and software. The present invention may be realized in a centralized fashion in at least one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein. The present invention may also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form. While the present invention has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present invention without departing from its scope. Therefore, it is intended that the present invention not be limited to the particular embodiment disclosed, but that the present invention will include all embodiments falling within the scope of the appended claims. Patent Citations
Referenced by
Classifications
Legal Events
Rotate |