CN104052669B - The processing means are alternately arranged for longest prefix match table - Google Patents

The processing means are alternately arranged for longest prefix match table Download PDF


Publication number
CN104052669B CN201410090589.9A CN201410090589A CN104052669B CN 104052669 B CN104052669 B CN 104052669B CN 201410090589 A CN201410090589 A CN 201410090589A CN 104052669 B CN104052669 B CN 104052669B
Prior art keywords
network switch
switch according
Prior art date
Application number
Other languages
Chinese (zh)
Other versions
CN104052669A (en
Original Assignee
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US201361778293P priority Critical
Priority to US61/778,293 priority
Priority to US14/194,567 priority
Priority to US14/194,567 priority patent/US9331942B2/en
Application filed by 凯为公司 filed Critical 凯为公司
Publication of CN104052669A publication Critical patent/CN104052669A/en
Application granted granted Critical
Publication of CN104052669B publication Critical patent/CN104052669B/en



本发明的各实施例涉及用于处理交替配置的最长前缀匹配表的装置和方法。 Example relates to an apparatus and method for processing a longest prefix match table are alternately arranged in each embodiment of the present invention. 种网络交换机,包括存储器,存储器可配置用于存储字典树层级中的单个字典树的交替表表示。 Network switch types, including a memory, the memory may be configured to alternately tree hierarchy table to store the dictionary trie single representation. 前缀表处理器使用输入网络地址并行访问单个字典树的交替表表示并且在每个交替表表示中搜索最长前缀匹配以获得本地前缀匹配。 Prefix Table processor using parallel access to a single network address input trie table representation and alternating in each alternate search a longest prefix match table representation to obtain local prefix match. 选择来自本地前缀匹配的最长前缀匹配。 Selecting a longest prefix match from the local prefix match. 最长前缀匹配具有关联的下跳索引基地址和偏移值。 The longest prefix matching index jump base address and an offset value associated with. 下跳索引处理器利用下跳索引基地址和偏移值访问存储器中的下跳索引表以获得下跳表指针。 The index table index jump jump base address and the offset value the next hop access memory processor uses the index to obtain the next-hop table pointer. 下跳处理器使用下跳表指针访问存储器中的下跳表以获得目的地网络地址。 Hop table pointer to access a memory and a jump table using the processor to obtain a jump destination network address.


用于处理交替配置的最长前缀匹配表的装置_1]才目关申请的交叉引用 Processing means for alternately arranged _1 longest prefix match table] CROSS REFERENCE for Customs purposes only

[0002] 请要求对通过引用将其公开内容结合于此、于观3年3月12日提交的第似778,293可美国临时专利申请的优先权。 [0002] ask for disclosure by reference incorporated herein, in view of the first three years, filed March 12 seems to be 778,293 US provisional patent application priority.

技术领域_3]雜㈣体上涉及处理计籠隨巾賊量。 BACKGROUND _3] napkin thief count cage with the amount of processing (iv) heteroaryl relates thereof. 更特臟,本发明涉及具有交替配置的最长前缀匹配表的网络交换机。 More particularly dirty, the present invention relates to a network switch having a longest prefix match table alternately arranged. 背景技术 Background technique

[0004]图1图示了根据现有技术被利用的最长前缀匹配处理器100。 [0004] FIG 1 illustrates a processor 100 according to the longest matching prefix of the prior art are utilized. 最长前缀匹配处理器100包括用于在转发表104中找到条目的搜索引擎1〇2。 Longest prefix matching processor 100 includes a forwarding table to find an entry in the search engine 104 1〇2. 转发表中的每个条目具有关联的交换机标识符,交换机标识符表示用于网络分组的下一目的地(跳(h〇p))。 Switch identifier for each entry in the forwarding table has an associated switch identifier indicates the next destination for the packet network (hop (h〇p)).

[0005]图2图示了现有技术的转发表104的简化版本。 [0005] FIG 2 illustrates a simplified version of the forwarding table 104 of the prior art. 转发表具有前缀列和下一跳列,前缀列具有条目的集合,下一跳列具有指明的交换机标识符。 Forwarding a prefix column having a column and the next hop, the column set has a prefix entry, the next hop specified in the column having the switch identifier. 每个前缀条目是网络地址的分段。 Each entry is a prefix of the network address of the segment. 星号㈩指明“不在意”状态。 An asterisk (x) indicates "do not care" state. 如果没有前缀匹配,则下一跳被指明为交换机“A,,。希望获得具有如下前缀的匹配,该前缀因为其表示到目标机器的最具体路径而最长。 If there is no matching prefix, the next hop is specified as the switch "A ,,. Want has matching prefix, the prefix because it represents the most specific target machine and the longest path.

[0006]图3图示了由具有最长前缀匹配处理器100的交换机302接收的分组300。 [0006] FIG. 3 illustrates a packet 300 having a switch 302 receives from processor 100 the longest prefix match. 最长前缀匹配处理器生成到另一机器的跳,另一机器比如为交换机A、C或者E或者机器B、D、F或者G。 Longest prefix match processor generates a jump to another machine, and other machines such as switches A, C or E or machine B, D, F or G. [0007]图4图示了二叉树或者字典树(trie) 400。 [0007] FIG. 4 illustrates a binary tree or trie (trie) 400. 该图的顶部图示了三角形400,三角形400是在该图的底部示出的字典树400的简化的表示。 Top of the figure illustrates a triangle 400, the triangle 400 is a simplified bottom of the figure shows a representation of the trie 400. 字典树400具有由〇和1表示的不同路径,其中0表示向左的路径并且1表示向右的路径。 Trie having a square 400 different paths represented, where 0 represents a leftward path and the path to the right. 使用这一技术,可以用数字值指明字典树中的任何路径。 Using this technique, the digital values ​​can be specified in any path trie. 如所示,字典树400的底部具有四个叶节点,其可以分支到八个目的地(〇)至(7)。 As shown, the base 400 has four trie leaf nodes, which can branch to eight destination (square) to (7). 到目的地⑼的路径被表示为000,因为三个左分支用来到达这一位置。 ⑼ path to a destination is indicated as 000, since the three left branch is used to reach this position. 到目的地(3) 的路径被标识为011,因为一个左分支(0)后接两个右分支(1)。 Path to the destination (3) is identified as 011, because the right by two branches (1) after a left branch (0). 以这一方式,可以使用二进制值指定每个路径。 In this manner, each path can be specified using a binary value. 字典树400具有三层节点并且因此被称为具有为三的步幅(stride)。 Trie node 400 having three layers and is thus referred to as having three stride (stride). [0008]图5图示了字典树400可以与许多其他字典树具有任意复杂层级关系。 [0008] FIG. 5 illustrates a trie 400 may have arbitrary complex hierarchy with many other trie. 例如,字典树400可以被视为层0,在其下方具有在层1的八个字典树400j至400_8。 For example, trie layer 400 may be considered 0, thereunder having eight trie layer 1 400_8 to 400j. 这一字典树扩展可以推进用于任何数目的层,如图5中所示。 This extension may be advanced trie for any number of layers, as shown in Fig. 每个字典树可以具有不同大小。 Each dictionary tree may have different sizes. 因此,可以领会到,可以通过这样的结构定义任意长路径表达。 Thus, it may be appreciated, such a definition can be expressed by an arbitrarily long path structure.

[0009] 图6图示了字典树600的每个节点可以具有指明的编号。 [0009] FIG. 6 illustrates a trie node 600 may each have a specified number. 在这一示例中,如所示,节点被编号为1至7。 In this example, as shown, nodes are numbered 1-7.

[0010] 图7图示了其中下一跳信息驻留在暗节点(节点5和7)的场景。 [0010] FIG. 7 illustrates a next hop information resides in a dark node (node ​​5 and 7) of the scene. 到节点5的路径可以用二进制被表达为01,而到节点7的路径可以用二进制被表达为11。 5 the path node can be expressed as binary 01, and the path to the node 7 can be expressed as a binary 11. 参照图5可以领会到,节点路径可以遍历多个层并且将用长二进制值表达到特定节点的作为结果的路径。 Referring to FIG 5 may be appreciated, the plurality of layers may traverse a path node and the binary value expressed by the length of a particular node as a result of the path.

[0011] 鉴于前述,存在对提供用于标识最长前缀匹配的改进技术的持续需求。 [0011] In view of the foregoing, there is a continuing need for improved techniques to provide for identifying the longest prefix match.


[0012] —种网络交换机,包括存储器,存储器可配置用于存储字典树层级中的单个字典树的交替表表示。 [0012] - the network switch types, including a memory, the memory may be configured to alternately tree hierarchy table to store the dictionary trie single representation. 前缀表处理器使用输入网络地址并行访问单个字典树的交替表表示并且在每个交替表表示中搜索最长前缀匹配以获得本地前缀匹配。 Prefix Table processor using parallel access to a single network address input trie table representation and alternating in each alternate search a longest prefix match table representation to obtain local prefix match. 选择来自本地前缀匹配的最长前缀匹配。 Selecting a longest prefix match from the local prefix match. 最长前缀匹配具有关联的下一跳索引基地址和偏移值。 Longest prefix match a next hop index base address and an offset value associated with. 下一跳索引处理器利用下一跳索引基地址和偏移值访问存储器中的下一跳索引表以获得下一跳表指针。 Next hop index using the processor next hop index next hop index table base address and an offset value access memory to obtain the next-hop table pointer. 下一跳处理器使用下一跳表指针访问存储器中的下一跳表以获得目的地网络地址。 The processor next hop next-hop table pointer to access a memory table for the next hop destination network address.


[0013] 连同附图结合以下具体描述来更完全地领会本发明,在附图中: [0013] In the following detailed description in conjunction with the accompanying drawings to more fully appreciate the present invention, in the drawings:

[0014] 图1图示了现有技术的最长前缀匹配处理器。 [0014] FIG 1 illustrates a prior art processor longest prefix match.

[0015] 图2图示了现有技术的转发表。 [0015] FIG 2 illustrates a prior art forwarding table.

[0016] 图3图示了具有用于将分组路由到任何数目的交换机或者机器的最长前缀匹配处理器的交换机。 [0016] FIG. 3 illustrates a route packets to having any number of switches or longest prefix match processor machine switch.

[0017] 图4图示了现有技术的二叉树。 [0017] FIG 4 illustrates a prior art binary tree.

[0018] 图5图示了二叉树的具有任意复杂路径的嵌套配置。 [0018] FIG. 5 illustrates a nested configuration having a binary tree path of any complexity.

[0019] 图6图示了根据本发明的实施例被使用的节点编号。 [0019] FIG. 6 illustrates a node number in accordance with an embodiment of the present invention is used.

[0020] 图7图示了在选择的节点具有下一跳信息的二叉树。 [0020] FIG. 7 illustrates a node in a binary tree having the selected next hop information.

[0021] 图8图示了根据本发明的实施例被利用的稀疏模式表配置。 [0021] FIG 8 illustrates an embodiment of the present invention is utilized sparse mode table configuration.

[0022] 图9图示了根据本发明的实施例被利用的位图模式表配置。 [0022] Figure 9 illustrates the bitmap pattern according to embodiments of the present invention is utilized table configuration.

[0023] 图10图示了根据本发明的实施例被利用的叶推进(leaf-push)模式表配置。 [0023] FIG. 10 illustrates a propulsion leaves (leaf-push) mode table configuration is utilized in accordance with embodiments of the present invention.

[0024] 图11图示了根据本发明的实施例被利用的下一跳索引表。 [0024] FIG. 11 illustrates a next hop index table according to an embodiment of the present invention is utilized.

[0025] 图12图示了根据本发明的实施例被利用的下一跳表。 [0025] FIG. 12 illustrates an embodiment of the present invention to be utilized next hop table.

[0026] 图13图示了根据本发明的实施例被执行的分组处理操作。 [0026] FIG. 13 illustrates packet processing operation is performed in accordance with an embodiment of the present invention.

[0027] 图14图示了根据本发明的实施例被利用的处理组件。 [0027] FIG. 14 illustrates a process assembly according to embodiments of the present invention is utilized.

[0028] 相似参考号贯穿附图的若干视图指示对应的部分。 Indicate corresponding parts throughout the several views [0028] Similar reference numerals throughout the accompanying drawings.

具体实施方式 Detailed ways

[0029] 本发明是在交换机中嵌入的最长前缀匹配处理器。 [0029] The present invention is embedded in the switch processor longest prefix match. 最长前缀匹配处理器利用交替配置的最长前缀匹配表,可以针对不同最长前缀匹配搜索策略和存储器优化策略优化最长前缀匹配表。 Longest prefix match processor uses the longest prefix match table arranged alternately, the optimization strategy may be optimized for different longest prefix match table longest prefix match search strategy and a memory. 在图8中示出了一个最长前缀匹配表。 In FIG. 8 shows a longest prefix match table. 该表的第一列指定分组类型,在这一实例中为IPV4。 The first column of the table specifies the type of packet, in this example is IPV4. 有利地,IPV4和IPV6分组类型可以被高效地存储在单个表中。 Advantageously, IPV4 and IPV6 packet types can be efficiently stored in a single table. 下一列指定存储模式,在这一实例中为稀疏类型。 The next column specifies the storage mode, sparse type in this example. 稀疏类型有助于针对单个字典树的大步幅。 Sparse type help for a single stride trie. 即,稀疏模式有助于针对其中单个字典树大的配置的处理。 That is, the sparse mode which helps to process a single dictionary tree for large configurations. 下一列指定分支长度。 The next column specifies the branch length. 分支长度是从层级字典树的根节点到单个字典树(比如图5中的任意字典树(也被称为子字典树))的任意根节点的路径的长度的指示符。 Branch length from the root node of the tree hierarchy to a single dictionary trie (such as in FIG. 5 arbitrary trie (also referred to as sub trie)) of the root node indicator of the length of any path. 步幅指定字典树的大小,比如2#§。 Stride trie specified size, such as 2 # §. 在这一示例中,步幅为5或者25或者32。 In this example, the stride is 5 or 25 or 32. 下一列是下一跳索引基地址。 The next column is the base address of a next hop index. 本发明将下一跳索引用于对下一跳表的引用。 The present invention will next hop index is used in reference to the next-hop table. 这允许在配置存储器资源中的最大灵活性。 This allows for maximum flexibility in configuration memory resources. 该表的下一列是分支ID,比如如以上讨论的通过树的路径的二进制表示。 The next column of the table is a branch in ID, such as a binary tree by the path discussed above. FIG. 图8的最后列指定具有下一跳信息的字典树节点ID。 The last column in FIG. 8 with the specified trie node ID of the next hop information. 图7提供字典树节点和具有下一跳信息的对应的节点ID的示例。 7 provides an example of a trie node having the node ID corresponding to the next hop information. 图8的前四个字段具有固定宽度。 The first four fields of FIG. 8 has a fixed width. 剩余的两个字段具有可变宽度。 The remaining two fields have variable widths.

[0030]图9图示了用于前缀匹配表的交替配置。 [0030] FIG. 9 illustrates an alternate configuration for the prefix match table. 第一字段指定分组类型。 The first field specifies the packet type. 下一字段指定位图模式。 The next field specifies a bitmap pattern. 如以上讨论的,下一字段指定分支长度。 As discussed above, the next field specifies the length of the branch. 下一字段指定步幅。 The next field specifies stride. 在位图模式中,用于步幅5的字典树的所有节点被存储在25-1或者31位的数组中。 Bitmap mode, all the nodes for trie steps of 5 or 25-1 is stored in the array 31. 下两个字段是NHI基地址和分支ID。 The next two fields are address and the branch NHI group ID. 如以上讨论的,分支ID指定分支路径。 Branch branch path ID is specified as discussed above. NHI基地址指定对应于字典树位图的最低有效位的基位置,其被标记为1。 NHI base address corresponding to the specified trie bitmap-based least significant bit position, which is labeled 1. 其他节点使它们的指针从基位置递增进入NHI表。 Other nodes so that their position is incremented from the base pointer into the table NHI. 例如,如果基位置为零,则被标记为1的第五位将从基位置被递增4个条目。 For example, if the position of the group is zero, it was marked 1 position of the fifth group will be incremented by 4 entries. 最后字段是字典树位图。 The last field is trie bitmap. 在这一示例中,字典树位图为31位图。 In this example, trie bitmap 31 in FIG. 位图指定在指定的字典树中具有下一跳信息的不同位置。 Bitmap specifies a different position in the next hop information in the specified trie. [0031]图10图示了用于前缀匹配表的交替配置。 [0031] FIG. 10 illustrates an alternate configuration for the prefix match table. 第一字段指定叶推进模式。 The first field specifies the leaves propulsion mode. 在叶推进模式中,在数组中仅表示最底部节点。 In the leaf advance mode, the array represents only the bottom node. 例如,关于图6,在数组中将仅表示节点4、5、6和7。 For example, with respect to FIG. 6, in the array of nodes 5, 6 and 7 shows only. 如果图6的其他节点具有下一跳信息,则可以使用各种技术(比如受控前缀扩展)来将该信息定位在最底部节点中。 If other nodes in FIG. 6 having the next hop information, various techniques can be used (such as controlled prefix expansion) positioned at the bottom of this information to the node. NHI表在这一实例中需要进行对应的复制。 NHI table needs to be performed in this example corresponding copy. 这一模式在其中用于直接连接的主机的网络地址被存储在相同表的实例中特别存储器高效,因为那些主机通常具有连续地址。 This example mode in which particular memory directly connected to the host network address is stored in the same table efficient, because those host typically with consecutive addresses. 这一模式也是有利的,因为所有搜索在相同层终止。 This model is also advantageous because all searches terminate at the same level.

[0032]图10的表也具有分支长度字段、步幅字段、NHI基地址字段、分支ID字段和字典树底部位图字段。 TABLE [0032] FIG 10 also has a branch length field, the stride field, the NHI group address field, ID field, and a branch portion in FIG trie bottom field. 在5步幅的实例中,整个位图具有25-1或者31位,这导致16个节点的底部集合。 In Example 5, the steps, or the entire bitmap 25-1 having 31, 16 which leads to the bottom of the set of nodes. 因此,16位图可以用来指定这些不同节点的位置。 Thus, FIG. 16 can be used to specify the positions of the different nodes.

[0033]图11图示了下一跳索引表。 [0033] FIG. 11 illustrates a next hop index table. 表中的不同条目指定到下一跳表基位置加上块大小偏移的指针。 Different table entry specifies the next hop table base position plus an offset pointer to the block size. 基位置指定进入表的入口点而块大小指定从该基位置的附加字段。 Base location entry point table specifies the block size designation additional field from the base position. 下一跳表条目的块大小被用于等价多路径(ECMP)寻路由,一种高级网络寻路由策略。 Block size next hop table entry is used for ECMP (an ECMP) routed, an advanced routed network policy. 连同IP地址,对最长前缀匹配引擎的每个请求伴随有用于路径选择的ECMP哈希值。 Together with the IP address, accompanied ECMP hash value for path selection for each request longest prefix matching engine. ECMP哈希值可以大于可用块大小,因此最后路径选择被计算为下一跳基地址加上下一跳块大小的输入ECMP哈希值取模。 ECMP hash value may be larger than the size of the available block, so the final path selected next hop is calculated as the base address plus the input ECMP next hop hash value modulo the block size. 在一个实施例中,针对ECMP支持上至1024个路径。 In one embodiment, for the ECMP 1024 to support path.

[0034] NHI表大小是字典树配置的函数。 [0034] NHI trie table size is a function of the configuration. 表大小可以被动态配置和优化。 Table size may be dynamically configured and optimized.

[0035]图12图示了下一跳表。 [0035] FIG. 12 illustrates a next-hop table. 该表中的每个条目指定到目的地机器的跳。 Each entry in the table assigned to the jump destination machine.

[0036]图13图示了根据本发明的实施例被执行的处理操作。 [0036] FIG. 13 illustrates the processing operations to be performed in accordance with an embodiment of the present invention. 入口网络地址(例如,网际协议地址)1300应用于前缀表0至N的集合,全部或者部分表可以由软件配置。 Ingress network address (e.g., Internet Protocol address) prefix table 1300 is applied to a set of 0 to N, all or part of the table may be configured by software. 如结合图8至图10讨论的,每个前缀表包含前缀条目的集合,每个前缀条目指定到字典树的路径并且然后是该字典树的特性。 , Each set of the prefix table entry contains a prefix as discussed in conjunction with FIG. 8 to FIG. 10, each prefix trie entry specifies the path and then the characteristics of the trie. 使用前缀表0 1302作为示例,入口网络地址的位的软件配置的选择应用于哈希函数以映射到前缀表地址1304。 Prefix table 01302 as an example, bit network address entry software configured to select a hash function is applied to the address mapping table 1304 to the prefix. 有利地,在硬件中利用固定延时完成所有匹配。 Advantageously, in hardware using a fixed delay to complete all match. 然后读取前缀表存储器以到达子字典树〇(任意复杂层级字典树结构中的单个字典树,比如图5中所示的字典树)1306。 Prefix table memory is then read to reach sub-trie square (arbitrary complex hierarchical trie trie single structure, such as the trie shown in FIG. 5) 1306. 然后在该子字典树执行最长前缀匹配1308。 Then perform longest prefix match 1308 in the sub-tree dictionary. 跨所有前缀表0至N重复这一处理以创建本地前缀匹配。 All across the table from 0 to N prefix This process is repeated to create a local prefix match. 然后处理结果以选择最长前缀匹配1310。 Then the processing result 1310 to select a longest prefix match. 然后读取NHI表1312,这导致对下一跳表的访问1314,这产生下一跳1316。 Then read the NHI table 1312, which led to the next hop table access 1314 pairs, which results in the next hop 1316.

[0037]图14图示了根据本发明的实施例被配置的最长前缀匹配处理器1400。 [0037] FIG. 14 illustrates a longest prefix match processor 1400 according to embodiments of the present invention is configured. 处理器1400 包括前缀表处理器1402,其为被配置用于指定并且然后访问不同最长前缀匹配表(比如图8-图10中的最长前缀匹配表)的硬件资源。 The processor 1400 comprises a processor 1402 a prefix table, which is configured for the hardware resources specified and then access different longest prefix match table (such as longest prefix match table 10 in FIGS. 8) is. 表驻留在存储器1404中,存储器1404可以是SPAM资源池。 Table reside in memory 1404, memory 1404 may be SPAM resource pool. 前缀表处理器1402协调图13的操作1304至1310。 Operation 1304-1310 prefix table 1402 coordination processor 13 of FIG. 下一跳索引处理器1406然后可以用来访问存储器1404中的下一跳索引表,下一跳索引表向下一跳处理器1408返回基地址和偏移(如果存在)。 The processor 1406 next hop index may then be used to access a next hop index table memory 1404, a next hop index table to the next hop processor 1408 returns base address and an offset (if present). 下一跳处理器M08访问在存储器1404中存储的下一跳表,其产生下一跳地址作为结果1410。 M08 next hop processor access memory 1404 stores the next-hop table, the next hop is generated as a result of 1410. 如果前缀表处理器1402具有字典树未命中或者其他错误,则可以如用箭头1412所示直接生成错误或者默认结果1410。 If the prefix trie table having 1402 processor misses or other errors, an error may be generated directly as shown by an arrow 1412 or 1410 default result.

[0038] 前述描述出于说明的目的使用具体命名提供对本发明的透彻理解。 [0038] The foregoing description of specific nomenclature used for illustrative provide a thorough understanding of the present invention. 然而,对本领域技术人员将明显的是,并不需要具体细节以便实践本发明。 However, it will be apparent to those skilled in the art that the specific details are not required in order to practice the invention. 因此,出于例示和描述的目的呈现本发明的具体实施例的前述描述。 Thus, for purposes of illustration and description presented particular embodiments of the invention described in the foregoing embodiment. 它们并不旨在于是详尽的或者将本发明限制到所公开的精确形式;明显地,鉴于以上教导许多修改和改变是可能的。 They are not intended to be exhaustive or to limit the invention to the precise forms disclosed; Obviously, in view of the above teachings that many modifications and variations are possible. 选择并且描述实施例以便最佳地说明本发明的原理及其实践应用,它们因此使得本领域其他技术人员能够最佳地利用本发明以及具有在适合于预期的特定使用时的各种修改的各种实施例。 Example embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, they thereby enabling others skilled in the art to best utilize the invention and having various where appropriate to the particular use contemplated to modify each Example species. 旨在于以下权利要求及其等效物限定本发明的范围。 Is intended the following claims and their equivalents define the scope of the present invention.

Claims (14)

1. 一种网络交换机,包括: 存储器,可配置用于存储字典树层级中的单个字典树的交替表表示,其中所述交替表表示针对不同最长前缀匹配搜索策略和存储器优化策略被优化; 硬件前缀表处理器,用于: 使用输入网络地址并行访问所述单个字典树的所述交替表表示并且在每个交替表表示中搜索最长前缀匹配以获得本地前缀匹配, 从所述本地前缀匹配选择所述最长前缀匹配,其中所述最长前缀匹配具有关联的下一跳索引基地址和偏移值; 下一跳索引处理器,用于利用所述下一跳索引基地址和偏移值访问所述存储器中的下一跳索引表以获得下一跳表指针;以及下一跳处理器,用于使用所述下一跳表指针访问所述存储器中的下一跳表以获得目的地网络地址。 A network switch, comprising: a memory, may be configured to alternately tree hierarchy table to store the dictionary trie single representation, wherein the alternating table indicates a match, and a memory search strategy is optimized for different optimization strategies longest prefix; hardware prefix table processor configured to: enter the network address using said alternating parallel access to the single table showing trie table and searches each alternate representation to obtain a longest prefix match local prefix match, from the local prefix the match selection longest prefix match, the longest prefix match wherein a next hop index base address and an offset value associated with; next hop index processor configured to hop index using the base address and the bias shifting the next hop index table to access said memory to obtain the next-hop table pointer; next hop and a processor for using the next-hop table pointer to access said memory to obtain the next-hop table destination network address.
2. 根据权利要求1所述的网络交换机,其中所述交替表表示包括标识选择的字典表节点的稀疏検式表不。 The network switch according to claim 1, wherein the alternating table showing dictionary table includes an identification of the selected node table is not sparse ken formula.
3. 根据权利要求2所述的网络交换机,其中所述稀疏模式表示包括分支标识和步幅值。 Network switch according to claim 2, wherein said representation comprises a branch identifier sparse mode and the stride value.
4. 根据权利要求1所述的网络交换机,其中所述交替表表示包括具有标识选择的字典树节点的位图的位图模式表不。 Network switch according to claim 1, wherein said alternating comprises a bit map table showing trie node with an identification of the selected pattern table is not a bitmap.
5. 根据权利要求4所述的网络交换机,其中所述位图模式表示包括分支标识和步幅值。 Network switch according to claim 4, wherein said bit map pattern includes a branch identifier and showing step value.
6. 根据权利要求1所述的网络交换机,其中所述交替表表示包括标识在字典树的底部的选择的字典树节点的叶推进表示。 The network switch according to claim 1, wherein said alternating comprises a propulsion leaf table showing identification at the bottom of selecting trie nodes of the trie representation. _ _
7. 根据权利要求6所述的网络交换机,其中所述叶推进表示包括分支标识和步幅值。 Network switch according to claim 6, wherein the blade includes a branch identifier and propulsion represented stride value.
8. 根据权利要求1所述的网络交换机,其中所述前缀表处理器是具有确定性查找延时的硬件资源。 Network switch according to claim 1, wherein said processor is a prefix table lookup hardware resource deterministic delay. _ 一 _ One
9. 根据权利要求1所述的网络交换机,其中所述交替表表示包括在相同表中具有不同分组类型的表。 Network switch according to claim 1, wherein said alternating comprises a table showing a packet having different types of tables in the same table.
10. 根据权利要求9所述的网络交换机,其中所述不同分组类型包括1PV4分组和IPV6分组。 10. A network switch according to claim 9, wherein the different packet type comprises packets and 1PV4 IPV6 packet. 一一 Eleven
11.根据权利要求1所述的网络交换机,其中所述前缀表处理器标识用于远程主机的最长前缀匹配和用于直接连接的主机的准确匹配。 11. The network switch according to claim 1, wherein exactly match the longest prefix match for the prefix table identifies the remote host processor and the host for direct connection. _、 _,
12.根据权利要求11所述的网络交换机,其中所述前缀表处理器在相同表中标识用于所述远程主机的所述最长前缀匹配和用于所述直接连接的主机的所述准确匹配。 The network switch according to claim 11, wherein said same prefix table in the processor identified in the table for the longest prefix match the remote host and the hosts directly connected for accurate match.
13.根据权利要求1所述的网络交换机,其中所述下一跳索引处理器处理下一跳表条目的块以有助于等价多路径寻路由。 13. The network switch according to claim 1, wherein said next hop index processor block next hop table entry to facilitate ECMP routed. 、 , ,,
14.根据权利要求13所述的网络交换机,其中所述块指定上至1024个路径。 Network switch according to claim 13, wherein said block is assigned to the 1024 path.
CN201410090589.9A 2013-03-12 2014-03-12 The processing means are alternately arranged for longest prefix match table CN104052669B (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US201361778293P true 2013-03-12 2013-03-12
US61/778,293 2013-03-12
US14/194,567 2014-02-28
US14/194,567 US9331942B2 (en) 2013-03-12 2014-02-28 Apparatus and method for processing alternately configured longest prefix match tables

Publications (2)

Publication Number Publication Date
CN104052669A CN104052669A (en) 2014-09-17
CN104052669B true CN104052669B (en) 2018-12-07



Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410090589.9A CN104052669B (en) 2013-03-12 2014-03-12 The processing means are alternately arranged for longest prefix match table

Country Status (1)

Country Link
CN (1) CN104052669B (en)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141738A (en) * 1998-07-08 2000-10-31 Nortel Networks Corporation Address translation method and system having a forwarding table data structure
DE10085390T1 (en) * 1999-12-10 2003-04-30 Mosaid Technologies Inc Kanata Method and apparatus for address search longest match
US7966421B2 (en) * 2000-06-21 2011-06-21 SAtech Group, A.B. Limited Liability Company Method and apparatus for logically expanding the length of a search key
US7111071B1 (en) * 2000-06-29 2006-09-19 Intel Corporation Longest prefix match for IP routers
US8295286B2 (en) * 2003-12-31 2012-10-23 Stmicroelectronics, Inc. Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware
US7019674B2 (en) * 2004-02-05 2006-03-28 Nec Laboratories America, Inc. Content-based information retrieval architecture
US7724734B1 (en) * 2005-12-23 2010-05-25 Extreme Networks, Inc. Methods, systems, and computer program products for controlling updating of a layer 3 host table based on packet forwarding lookup miss counts
US7827218B1 (en) * 2006-11-18 2010-11-02 X-Engines, Inc. Deterministic lookup using hashed key in a multi-stride compressed trie structure
US8090901B2 (en) * 2009-05-14 2012-01-03 Brocade Communications Systems, Inc. TCAM management approach that minimize movements
US8755383B2 (en) * 2011-03-21 2014-06-17 Avaya, Inc. Usage of masked ethernet addresses between transparent interconnect of lots of links (TRILL) routing bridges

Also Published As

Publication number Publication date
CN104052669A (en) 2014-09-17

Similar Documents

Publication Publication Date Title
EP1168723B1 (en) Method and apparatus for longest matching prefix determination in a communication network
US8090805B1 (en) System and method for performing cascaded lookups to forward packets
ES2527224T3 (en) Method and apparatus for selecting between multiple equal cost paths
Huang et al. A novel IP-routing lookup scheme and hardware architecture for multigigabit switching routers
CN102726021B (en) Flexible Data Center Network Architecture
US9660905B2 (en) Service chain policy for distributed gateways in virtual overlay networks
US8780926B2 (en) Updating prefix-compressed tries for IP route lookup
US20040233913A1 (en) Method and apparatus for routing and forwarding between virtual routers within a single network element
EP2978191B1 (en) System for distributing nameless objects using self-certifying names
US7418505B2 (en) IP address lookup using either a hashing table or multiple hash functions
CN105191215B (en) The method and apparatus that data plane for bi-directional service chain learns
JP4565793B2 (en) Method and apparatus for longest matching address lookup
US20130003735A1 (en) Dynamically provisioning middleboxes
JP4556761B2 (en) Packet transfer device
EP2214355B1 (en) Method and apparatus for forwarding packets with hierarchically structured variable-length identifiers using an exact-match lookup engine
US6778984B1 (en) Flexible and high-performance packet classification algorithm
US7443841B2 (en) Longest prefix matching (LPM) using a fixed comparison hash table
US9979601B2 (en) Encoding explicit paths as segment routing segment lists
US7441074B1 (en) Methods and apparatus for distributing entries among lookup units and selectively enabling less than all of the lookup units when performing a lookup operation
US7808929B2 (en) Efficient ACL lookup algorithms
US20050071501A1 (en) Method and apparatus for performing a binary search on an expanded tree
AU2004227809B2 (en) Arrangement in a router for generating a route based on a pattern of a received packet
US20120230225A1 (en) Hash-Based Load Balancing with Per-Hop Seeding
US9819637B2 (en) Efficient longest prefix matching techniques for network devices
Abraham et al. A generic scheme for building overlay networks in adversarial scenarios

Legal Events

Date Code Title Description
C06 Publication
C41 Transfer of patent application or patent right or utility model
ASS Succession or assignment of patent right

Owner name: CAVIUM INC.

Free format text: FORMER OWNER: XPLIANT INC.

Effective date: 20150717

REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1202193

Country of ref document: HK

C10 Entry into substantive examination