KR20140111986A - Apparatus and method for processing alternately configured longest prefix match tables - Google Patents
Apparatus and method for processing alternately configured longest prefix match tables Download PDFInfo
- Publication number
- KR20140111986A KR20140111986A KR1020140028584A KR20140028584A KR20140111986A KR 20140111986 A KR20140111986 A KR 20140111986A KR 1020140028584 A KR1020140028584 A KR 1020140028584A KR 20140028584 A KR20140028584 A KR 20140028584A KR 20140111986 A KR20140111986 A KR 20140111986A
- Authority
- KR
- South Korea
- Prior art keywords
- next hop
- network switch
- prefix
- processor
- longest prefix
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Cross-reference to related application
This application claims priority to U.S. Provisional Application No. 61 / 778,293, filed March 12, 2013, the content of which is incorporated herein by reference.
The present invention is generally directed to processing traffic in a computer network, and more particularly, the present invention is directed to network switches having longest prefix match tables configured alternately.
Figure 1 illustrates a longest
2 illustrates a simplified version of the forwarding table 200 of the prior art. The forwarding table has a prefix column with a set of entries and a next hop column with a designated switch identifier. Each prefix entry is a segment of the network address. The asterisk * specifies the "do not care" state. If there is no prefix match, the next hop is designated as switch "A ". It is desirable to obtain a match with the longest prefix because it represents the most specific path to the target machine.
FIG. 3 illustrates a
Figure 4 illustrates a binary tree or trie. The top of this figure shows a
Figure 5 illustrates that the
FIG. 6 illustrates that each node of
FIG. 7 illustrates a scenario in which the next hop information resides in the
In view of the foregoing, there is a continuing need to provide improved techniques for identifying longest prefix matches.
The network switch includes a memory configured to store alternate table representations of individual trials in a hierarchy of tries. The prefix table processor accesses the alternate table representations of the individual trie in parallel using the input network address and searches for the longest prefix match in each alternate table expression to obtain local prefix matches. The longest prefix match is selected from the local prefix matches. The longest prefix match has an associated next hop index base address and offset value. The next hop index processor accesses the next hop index table in the memory using the next hop index base address and offset value to obtain the next hop table pointer. The next hop processor uses the next hop table pointer to access the next hop table in the memory to obtain the destination network address.
The invention will be more fully understood from the following detailed description taken in conjunction with the accompanying drawings, in which: FIG.
Figure 1 illustrates a longest prefix matching processor of the prior art.
Figure 2 illustrates a prior art forwarding table.
Figure 3 illustrates a switch having a longest prefix matching processor for routing packets to any number of switches or machines.
Figure 4 illustrates a prior art binary tree.
Figure 5 illustrates a nested configuration of binary trees with arbitrarily complex paths.
Figure 6 illustrates node numbers used in accordance with an embodiment of the present invention.
Figure 7 illustrates a binary tree with the next hop information at the selected node.
8 illustrates a sparse mode table configuration used in accordance with an embodiment of the present invention.
Figure 9 illustrates a bitmap mode table configuration used in accordance with an embodiment of the present invention.
Figure 10 illustrates a leaf-push mode table configuration used in accordance with an embodiment of the present invention.
Figure 11 illustrates the next hop index table used in accordance with an embodiment of the present invention.
Figure 12 illustrates the next hop table used in accordance with an embodiment of the present invention.
Figure 13 illustrates packet processing operations performed in accordance with an embodiment of the present invention.
Figure 14 illustrates the processing components used in accordance with an embodiment of the present invention.
Like numbers refer to like elements throughout the several views of the drawings.
The present invention is a longest prefix matching processor incorporated in a switch. The longest prefix matching processor uses alternate longest prefix matching tables that can be optimized for different longest prefix matching search schemes and memory optimization schemes. A single longest prefix matching table is shown in FIG. The first column of this table specifies the packet type, in this case IPV4. Advantageously, the IPV4 and IPV6 packet types can be efficiently stored in a single table. The next column specifies the storage mode, in this case the sparse mode. Sparse mode achieves a large stride in individual trials. That is, the sparse mode implements processing for configurations where the individual trials are large. The next column specifies the branch length. The branch length is an indicator of the length of the path from the root node of the hierarchical trie to the arbitrary root node of the individual trie, such as any trie (also referred to as a subtree) in FIG. Stride specifies the size of the trie such as 2 strides . In this example, the stride is 5, 2 5, or 32. The next column is the next hop index base address. The present invention uses the next hop index for reference to the next hop table. This ensures maximum flexibility in configuring memory resources. The next column in this table is the same branch ID as the binary representation of the path through the tree, as described above. The last column of FIG. 8 specifies the triode IDs having the next hop information. FIG. 7 shows an example of corresponding node IDs having tri node and next hop information. The first four fields of Figure 8 have a fixed width. The remaining two fields have a variable width.
Figure 9 illustrates an alternate configuration for a prefix matching table. The first field of this table is the packet type. The next field specifies the bitmap mode. The next field specifies the branch length as described above. The next field specifies the stride. In bitmap mode, all the nodes for the triplets of the 5 strides are stored in a 2 5 -1 or 31 bit array. The next two fields are the next hop index (NHI) base address and the branch ID. The branch ID specifies the branch path as described above. The NHI base address specifies the base position corresponding to the least significant bit of the tri-bit map, which is displayed as 1. Other nodes have their pointers to the NHI table incremented from the base location. For example, if the base position is zero, the fifth bit marked as 1 will be incremented 4 entries from the base position. The last field is a tri-bit map. In this example, the tri-bit map is a 31-bit map. This bitmap specifies different locations within a particular trie with next hop information.
Figure 10 illustrates an alternate configuration for a prefix matching table. The second field of this table specifies a leaf-push mode. In the leaf-push mode, only the lowest nodes in the array will appear. For example, referring to FIG. 6,
The table of FIG. 10 has a branch length field, a stride field, an NHI base address field, a branch ID field, and a trie bottom bitmap field. In the case of 5 strides, the entire bitmap has 2 5 -1 or 31 bits, which results in a set of 16 base nodes. Thus, a 16 bit map can be used to specify the locations of these different nodes.
Figure 11 illustrates the next hop index table. The different entries in this table specify a pointer indicating the addition of the block size offset to the next hop table base location. This base position specifies the entry point in the table, and the block size specifies additional fields from the base position. The block size of the next hop table entries is used in ECMP (equal-cost multi-path) routing and advanced network routing techniques. Along with the IP address, each request to the longest prefix matching engine is accompanied by an ECMP hash value for path selection. The ECMP hash value may be greater than the available block size, so the final path selection is calculated as the sum of the ECMP hash value input to the next hop base address plus the modulo divided by the next hop block size. In one embodiment, 1024 paths are supported in the ECMP.
The NHI table size is a function of the trie configuration. This table size can be dynamically configured and optimized.
Figure 12 illustrates the next hop table. Each entry in this table specifies a hop to the destination machine.
Figure 13 illustrates processing operations performed in accordance with an embodiment of the present invention. An ingress network address (e.g., Internet Protocol address) 1300 is applied to prefix table 0 through prefix table N set, and some or all of these tables may be configured by software. Each prefix table includes a set of prefix entries, and each prefix entry specifies the path to the trie and the characteristics of this trie as discussed with reference to Figures 8-10. Using prefix table 0 1302 as an example, a software configured selection of bits of the ingress network address is applied 1304 to the hash function to map to the prefix table address. Advantageously, all matching is performed with hardware latency fixed. The prefix table memory is then read 1306 to obtain a subtree 0 (an individual trie in an arbitrarily complex hierarchical trie structure as shown in FIG. 5). The longest prefix match is performed in this subtree (1308). This processing is repeated throughout all the prefix tables 0 to N to produce local prefix matches. The results are processed to select the longest prefix match (1310). The NHI table is then read (1312), an access to the next hop table is made (1314), and a next hop is generated (1316).
FIG. 14 illustrates a longest
The foregoing description for the purpose of illustration has been made using specific nomenclature to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that these specific details are not required to practice the present invention. Accordingly, the foregoing description of specific embodiments of the invention has been presented to illustrate, but not to limit, the invention. They should not be construed as limiting the invention to the disclosed forms, but it is evident that many modifications and variations are possible in light of the above teaching. These embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art to which it pertains according to the various embodiments having various modifications as are suited to the particular use contemplated, . The following claims and their equivalents define the scope of the invention.
Claims (14)
Memory, a prefix table processor, a next hop index processor, and a next hop processor,
Wherein the memory is configured to store alternate table representations of individual trials in a hierarchy of tries,
Wherein the prefix table processor comprises:
Accessing the alternate table representations of the individual trie in parallel using the input network address and searching for the longest prefix match in each alternated table expression to obtain local prefix matches,
Selecting the longest prefix match from the local prefix matches,
Wherein the longest prefix match has an associated next hop index base address and offset value,
Wherein the next hop index processor accesses the next hop index table in the memory using the next hop index base address and offset value to obtain a next hop table pointer,
Wherein the next hop processor accesses a next hop table in the memory using the next hop table pointer to obtain a destination network address,
Network switch.
Wherein the alternate table representations include a sparse mode representation identifying the selected tri nodes.
Network switch.
Wherein the sparse mode representation comprises a branch identifier and a stride value.
Network switch.
Wherein the alternate table representations comprise a bitmap mode representation having a bitmap identifying the selected tri nodes,
Network switch.
Wherein the bitmap mode representation comprises a branch identifier and a stride value.
Network switch.
Wherein the alternate table representations include a leaf-push mode representation identifying selected tri nodes at a bottom of the trie,
Network switch.
The leaf-push mode representation includes a branch identifier and a stride value.
Network switch.
Wherein the prefix table processor is a hardware resource having a deterministic lookup latency,
Network switch.
Wherein the alternate table representations comprise tables having different packet types in the same table,
Network switch.
Wherein the different packet types include an IPV4 packet and an IPV6 packet.
Network switch.
Wherein the prefix table processor identifies the longest prefix match for the remote host and an exact match to the directly attached host,
Network switch.
Wherein the prefix table processor identifies the longest prefix match for the remote host and an exact match to the directly attached host in the same table,
Network switch.
Wherein the next hop index processor processes a block of next hop table entries to implement equal-cost multi-path routing,
Network switch.
The block specifies 1024 paths,
Network switch.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201613778293P | 2013-03-12 | 2013-03-12 | |
US61/778,293 | 2013-03-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20140111986A true KR20140111986A (en) | 2014-09-22 |
Family
ID=51757163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140028584A KR20140111986A (en) | 2013-03-12 | 2014-03-11 | Apparatus and method for processing alternately configured longest prefix match tables |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20140111986A (en) |
-
2014
- 2014-03-11 KR KR1020140028584A patent/KR20140111986A/en not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9729447B2 (en) | Apparatus and method for processing alternately configured longest prefix match tables | |
JP5525273B2 (en) | System for forwarding packets with hierarchically structured variable length identifiers | |
US7953923B2 (en) | Double density content addressable memory (CAM) lookup scheme | |
US20140003436A1 (en) | Internet Protocol and Ethernet Lookup Via a Unified Hashed Trie | |
CA2365395C (en) | Default route coding | |
KR100586461B1 (en) | Method, Hardware Architecture and Recording Medium for Searching IP Address by Using Pipeline Binary Tree | |
JP5960863B1 (en) | SEARCH DEVICE, SEARCH METHOD, PROGRAM, AND RECORDING MEDIUM | |
CN105141525B (en) | IPv6 method for searching route and device | |
US9270636B2 (en) | Neighbor lookup operations in a network node | |
EP3280104B1 (en) | Ip routing lookup | |
WO2014047863A1 (en) | Generating a shape graph for a routing table | |
CN104052669B (en) | For handling the device for the longest prefix match table being alternately arranged | |
CN103457855B (en) | Classless inter-domain routing table is established and the method and apparatus of message forwarding | |
US11888743B1 (en) | Network device storage of incremental prefix trees | |
CN103078968B (en) | Domain name inquiry method, IP divide race's method, device and equipment | |
KR20140111986A (en) | Apparatus and method for processing alternately configured longest prefix match tables | |
KR20180019437A (en) | Table lookup method for determining set membership and table lookup apparatus using the method | |
EP3319279B1 (en) | Ip routing lookup | |
JP6205463B2 (en) | SEARCH DEVICE, SEARCH METHOD, PROGRAM, AND RECORDING MEDIUM | |
Maksic et al. | Updating designed for fast IP lookup | |
Park et al. | A fast IP address lookup algorithm based on search space reduction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
N231 | Notification of change of applicant | ||
WITN | Withdrawal due to no request for examination |