通过统一哈希化Trie树进行的互联网协议及以太网查找的制作方法_4

文档序号:8532101阅读:来源:国知局
用,主张将地址分配策略设计为可使VPN和VSI尽量共享各独立树的根节点,以最小化所述昂贵的TCAM的大小。此时,可对本发明所述的各种算法的使用做微小的改动。具体地,在计算后来将用于查找哈希表的哈希键时,不使用{TCAMAddr,PartKey}作为所述哈希键,而是可使用{TCAMAddr,PartKey,VPN ID/VSI ID}作为所述哈希键。也就是说,在所述哈希键的计算中还考虑VPN ID或VSI ID域,其中每个VPN ID标识一个不同的CPN,每个VSI ID标识一个不同的VSI。
[0062]图5示出了网络地址查找方法500的一个实施例,所述方法500可由配备了处理器的内存系统(如所述内存系统300、360或370)实现。在步骤510,所述方法500可在TCAM中储存多个独立trie树中每一个的根节点,得到多个根节点。在步骤520,所述方法500可在至少一个非TCAM内存中(如在TCAM AD表中)储存标识每个所述多个根节点的关联数据。在步骤530,所述方法500可在至少一个非TCAM内存中(如在2_left哈希表中)储存多个指针,每个所述多个指针可由哈希键部分基于所述每个根节点的关联数据进行定位。在步骤540,所述方法500可在所述非TCAM内存中(如在分trie树表中)储存多个网络地址前缀,所述多个网络地址前缀属于所述多个独立trie树的分trie树,其中每个分trie树可通过指针定位。在步骤550,所述方法500可在所述非TCAM内存中(如在RE组中)储存与所述多个网络地址前缀对应的多个RE。
[0063]在步骤560,所述方法500可从所述多个根节点中确定与入网络地址中第一数量的MSB匹配的根节点。即,所述第一数量的MSB与所述根节点中比特的值相等。注意所述入网络地址可有所述内存系统接收,或者通过任意其他方式获得。在步骤570,所述方法500可,基于所述根节点的关联数据中包含的标识信息(如TCAMAddr或软件定义的以任意适用方式分配给所述根节点的标识)以及所述入网络地址(如PartKey)中的第二数量的比特,计算哈希键,其中所述TCAM地址是所述哈希表中储存的关联数据的一部分,其中所述第二数量的比特紧随所述第一数量的MSB,其中所述第二数量的比特的长度(如HashLen)由所述关联数据指定。在步骤580,所述方法500可用所述哈希键在所述哈希表中定位一个指针。在步骤590,所述方法500可用所述定位的指针在所述分trie树表中定位分trie树。在步骤592,所述步骤500可将所述入网络地址的比特与所述至少一个网络地址前缀匹配,直到找出最长前缀。本领域普通技术人员可理解,所述方法500可能有各种变体,实现时还可增加其他的步骤,具体信息如前所述。例如,在多处搜索所述分trie树表时,步骤580和590可重复执行多次。
[0064]图6示出了网络设备或单元600的一个实施例,所述网络设备或单元600可为任意用于通过网络传送数据包的设备。例如,所述网络单元600可为网络路由器,其中所述内存系统300、360或370位于所述网络路由器。所述网络单元600可包括与接收器612 (Rx)连接的一个或多个入端口 610,其中所述接收器612可用于从其他网络部件接收数据包或帧。所述网络单元600可包括逻辑单元或处理器620,所述逻辑单元或处理器620与所述接收器612相连,用于处理数据包或确定将数据包发往哪个网络部件。所述处理器620可用硬件或硬件和软件的组合来实现。
[0065]所述网络单元600可进一步包括TCAM 622及至少一个非TCAM内存624。所述TCAM622可用于储存独立trie树的根节点和/或前缀。非TCAM内存624可用于储存TCAM AD表、哈希表、分trie树表及RE节点组。所述网络单元600还可包括与发射器632 (Tx)连接的一个或多个出端口 630,其中所述发射器632 (Tx)可用于向其他网络部件发送数据包或帧。注意,在实际实现中,可能有所述网络单元600处理的双向流量,因此一些端口可既接收也发送数据包。从这点来说,所述入端口 610与所述出端口 630可共存或可认为是与收发器(Rx/Tx)连接的相同端口的不同功能。所述处理器620、所述TCAM 622、所述非TCAM内存624、所述接收器612及所述发射器632还可用于实现或支持上述的任意方案和方法,如所述方案400和所述方法500。
[0066]应理解,通过将可执行指令编码和/或加载到所述网络单元600上,所述处理器620、所述TCAM 622及所述非TCAM内存624中的至少一个会发生变化。从而将所述网络单元600部分转变为有特殊用途的机器或装置(如具有本发明所述的新颖功能的内存系统或子系统)。所述可执行指令可储存于所述非TCAN内存624中,并加载到所述处理器620执行。对电气工程和软件工程技术而言,能通过加载可执行软件到计算机实现的功能可以通过众所周知的设计规则变为硬件实现是基本常识。采用软件还是硬件来实现概念的决策通常取决于设计的稳定性和待生产的单元数量,而不是软件域到硬件域的转换涉及的其它问题。一般来说,仍在频繁修改的设计可首选软件实现,这是因为硬件实现改动的成本要高于软件实现的改动。一般来说,将投入量产的稳定的设计可首选硬件实现,例如通过专用集成电路(ASIC)实现,这是因为对于大型生产活动,硬件实现的成本可能要低于软件实现。设计通常可以软件形式进行开发和测试,然后再根据众所周知的设计原则转变为等效的硬件实现,通过ASIC对软件指令进行固化。机器由新的ASIC控制后就成为具有特殊用途的机器或装置,同样,经过编程和/或已加载可执行指令的计算机也可视为具有特殊用途的机器或装置。
[0067]以上对至少一个实施例进行了说明,但由本领域普通技术人员对所述实施例的变化、组合、和/或修改,和/或对所述实施例提出的特性都应在本发明的范围内。通过整合、集成、和/或省略所述实施例的特性而产生的替代实施例也属于本发明的范围。本发明中明确说明的数值范围或限制可理解为包括此明确说明的范围或限制范围内的类似数值的迭代范围或限制(如,从约I到约10包括2、3、4等;大于0.10包括0.11,0.12,0.13等)。例如,每公开具有下限R1和上限Ru的数值范围时,具体也公开了包括此范围内的任意数值。具体来说,公开了此范围内的以下数值:R = Rfl^(Ru-R1),其中,k为取值范围从1%到100%
的递进步长为 1% 的变量,即 k 为 1%、2%、3%、4%、5%、......、50%、51%、52%、......、
95%、96%、97%、98%、99%或100%。而且,具体还公开如上所述的两个数字R所定义的任意数值范围。其中,除非另有说明,“约”表示其后数值的±10%。权利要求中某个元素“可选”表示需要或不需要该元素,这两种情况都属于权利要求的范围。包括、包含及具有等广义词汇的使用应理解为由……组成、主要由……组成、大体上由……组成等狭义词汇也成立。相应地,保护范围不限于上述说明,而应由其后所附的权利要求书定义,所述范围包括权利要求所述内容的所有同等替代。每个权利要求都结合在本说明书中,作为对本发明的进一步说明,且权利要求是本发明的实施例。在本发明中提到某个参考技术并不表示承认该技术为现有技术,尤其是出版日期在本申请的优先权日期之后的任何参考技术。本发明所援引的所有专利、专利申请及出版物的公开信息,其对本发明提供补充的示例性、程序性或其他细节都通过引用结合在本发明中。
[0068]尽管本发明提供了若干实施例,可理解所公开的系统和方法可能在不脱离本发明精神与范围的前提下存在许多其他具体形式。所述示例应理解为示例性而非限制性的,且并不用于将本发明限于所给出的具体细节。例如,各种元素或组件可以整合或集成在其他系统中,或某些特征可以被省略或不实现。
[0069]此外,各实施例中以离散或单独方式描述及阐明的技术、系统、子系统及方法,可与其他系统、模块、技术或方法在不脱离本发明范围的前提下进行整合或集成。以耦合、直接耦合或彼此通信的方式示出或讨论的其他项目,可以通过一些电气、机械或其他形式的接口、设备或中间组件进行间接耦合或通信。本领域技术人员可以理解确定本发明的其他变化、替换或变更,并可在不脱离本发明精神与范围的前提下做出其他变化、替换或变更。
【主权项】
1.一种装置,其特征在于,包括: 三重内容可寻址内存(TCAM),用于: 储存多个trie树中每一个的根节点,得到多个根节点; 至少一个非TCAM内存,用于: 储存标识每个所述多个根节点的关联数据; 储存由一个或多个分trie树表示的多个网络地址前缀,所述一个或多个分trie树属于所述多个trie树中的trie树,其中每个分trie树可至少部分基于所述根节点的关联数据进行定位。
2.根据权利要求1所述的装置,其特征在于,所述多个根节点的关联数据储存于TCAM地址(TA)表中,且所述至少一个非TCAM内存还用于在路由元素(RE)组中储存与所述多个网络地址前缀对应的多个RE。
3.根据权利要求1所述的装置,其特
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1