三重内容可寻址内存协助的包分类的制作方法_4

文档序号:8399490阅读:来源:国知局
缀及至少一个目的地址前缀,确定储存于乘积表中(如在乘积表的表项中)的一个或多个匹配的源标签和目的标签对。如前所述,可为每个所述一个或多个源地址前缀及所述至少一个目的地址前缀分配标签,从而得到多个标签。进一步地,如前所述,每个标签反映了关联前缀的父子关系。可用S.SPM、S.LPM、D.SPM及D.LPM确定所述一个或多个匹配的源标签和目的标签对。在一实施例中,本发明所公开的条件I和2可用于确定所述匹配的对。
[0072]例如,假设属于所述分trie树的前缀较佳地包括两个前缀:第一前缀和第二前缀,其中所述第二前缀为所述第一前缀的子前缀,所述第一前缀可为源地址前缀或目的地址前缀。进一步地,假设为所述第一前缀分配第一标签,所述第一标签包括第一 Value和第一 Mask;为所述第二前缀分配第二标签,所述第二标签包括第二 Value和第二 Mask。基于本发明的等式(I)和(2),可以看出使用所述第二 Value和所述第一 Mask的逻辑和运算的结果等于使用所述第一 Value和所述第一 Mask的逻辑和运算的结果,且使用所述第一 Value和所述第二 Mask的逻辑和运算的结果不等于使用所述第二 Value和所述第二 Mask的逻辑和运算的结果。
[0073]与此相反,假设所述第一和第二前缀没有父子关系。基于本发明的等式(3)和
(4),可以看出使用所述第二 Value和所述第一 Mask的逻辑和运算的结果不等于使用所述第一 Value和所述第一 Mask的逻辑和运算的结果,且使用所述第一 Value和所述第二 Mask的逻辑和运算的结果不等于使用所述第二 Value和所述第二 Mask的逻辑和运算的结果。
[0074]在步骤580,所述方法500可将每个所述一条或多条规则映射到一个匹配的源标签和目的标签对。如前所述,所述规则可储存在规则表或所述TCAM中。如果在步骤580对多条规则进行了映射,则在步骤590,所述方法500可根据所述规则在所述乘积表中的储存顺序从所述多条规则中选择具有最高级的规则。在步骤592,所述方法500可基于所述选择的规则确定要对所述包进行的动作。所述动作可在动作表中指定,所述动作表可通过所述规则进行索引。
[0075]本领域普通技术人员理解,在实现中,所述方法500可能有各种变化,某些步骤有时可省略,必要是可新增其他步骤,且当一个步骤不依赖于前一步骤时,执行顺序可以改变。例如,如果对所述包只匹配到一条规则,则步骤590可以省略,因为没有必要进行优先级选择。
[0076]本领域普通技术人员应理解,尽管本发明大都使用源地址和目的地址作为规则的两个较佳维度来阐述匹配多维trie树的原理,但在不脱离所公开的原理的前提下也可使用源地址和目的地址之外的其他维度(如,源端口、目的端口、协议或任意其他适当维度)。进一步地,如果需要,可使用两个以上的维度进行多维trie树的匹配。通常,包头可包括多个维度字段(简称字段),所述多个字段可由规则集指定。如上所述,在本发明公开的包分类中,可用所述TCAM中储存的对应表项以及储存于至少一个非TCAM内存的所述多维trie树中储存的数据,将所述包中的至少两个所述字段与所述规则的两个维度进行匹配。
[0077]总的来说,本发明提出了 TCAM协助的包分类的各实施例,以期为数据中心和/或云应用提供高速度低时延等期望属性。通过支持低成本的片装搜索引擎实现方式,可明显节省内存。
[0078]图6示出了网络设备或单元600的一个实施例,所述网络设备或单元600可为任意用于通过网络传送数据包的设备。例如,所述网络单元600可为网络路由器,其中所述内存系统200位于所述网络路由器。所述网络单元600可包括与接收器612 (Rx)连接的一个或多个入端口 610,其中所述接收器612可用于从其他网络部件接收包或帧。所述网络单元600可包括逻辑单元或处理器620,所述逻辑单元或处理器620与所述接收器612相连,用于处理所述包或确定将所述包发往哪个网络部件。所述处理器620可用硬件或硬件和软件的组合来实现。
[0079]所述网络单元600可进一步包括TCAM 622及至少一个非TCAM内存624。所述TCAM 622可用于储存独立trie树的根节点和/或前缀。非TCAM内存624可用于储存TCAMAD表、哈希化分trie树表、乘积表、规则表及动作表。注意所述各表可采用任意其他数据结构形式完成本发明所提出的功能。所述网络单元600还可包括与发射器632 (Tx)连接的一个或多个出端口 630,其中所述发射器632 (Tx)可用于向其他网络部件发送包或帧。注意,在实际实现中,可能会有所述网络单元600处理的双向流量,因此一些端口可既接收也发送包。从这点来说,所述入端口 610与所述出端口 630可共存或可认为是与收发器(Rx/Tx)连接的相同端口的不同功能。所述处理器620、所述TCAM 622、所述非TCAM内存624、所述接收器612及所述发射器632还可用于实现或支持上述的任意方案和方法,如所述实现方式300和所述方法500。
[0080]应理解,通过将可执行指令编码和/或加载到所述网络单元600上,所述处理器620、所述TCAM 622及所述非TCAM内存624中的至少一个会发生变化。从而可将所述网络单元600转变为有特殊用途的机器或装置(如具有本发明所提出的新颖功能的内存系统或子系统)。所述可执行指令可储存于所述非TCAM内存624中,并加载到所述处理器620中执行。对电气工程和软件工程技术而言,能通过加载可执行软件到计算机实现的功能可以通过众所周知的设计规则变为硬件实现是基本常识。采用软件还是硬件来实现概念的决策通常取决于设计的稳定性和待生产的元件数量,而不是软件域到硬件域的转换涉及的其他问题。一般来说,仍在频繁修改的设计可首选软件实现,这是因为硬件实现改动的成本要高于软件实现的改动。一般来说,将投入量产的稳定的设计可首选硬件实现,例如通过专用集成电路(ASIC)实现,这是因为对于大型生产活动,硬件实现的成本可能要低于软件实现。设计通常可以软件形式进行开发和测试,然后再根据众所周知的设计原则转变为等效的硬件实现,通过ASIC对软件指令进行固化。机器由新的ASIC控制后就成为具有特殊用途的机器或装置,同样,经过编程和/或已加载可执行指令的计算机也可视为具有特殊用途的机器或装置。
[0081]以上对至少一个实施例进行了说明,但由本领域普通技术人员对所述实施例的变化、组合、和/或修改,和/或对所述实施例提出的特性都应在本发明的范围内。通过整合、集成、和/或省略所述实施例的特性而产生的替代实施例也属于本发明的范围。本发明中明确说明的数值范围或限制可理解为包括此明确说明的范围或限制范围内的类似数值的迭代范围或限制(如,从约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%。权利要求中某个元素“可选”表示需要或不需要该元素,这两种情况都属于权利要求的范围。包括、包含及具有等广义词汇的使用应理解为由……组成、主要由……组成、大体上由……组成等狭义词汇也成立。相应地,保护范围不限于上述说明,而应由其后所附的权利要求书定义,所述范围包括权利要求书所述内容的所有同等替代。每个权利要求都结合在本说明书中,作为对本发明的进一步说明,且权利要求是本发明的实施例。在本发明中提到某个参考技术并不表示承认该技术为现有技术,尤其是出版日期在本申请的优先权日期之后的任何参考技术。本发明所援引的所有专利、专利申请及出版物的公开信息,其对本发明提供补充的示例性、程序性或其他细节都通过引用结合在本发明中。
[0082]尽管本发明提供了若干实施例,可理解所公开的系统和方法可能在不脱离本发明精神与范围的前提下存在许多其他具体形式。所述示例应理解为示例性而非限制性的,且并不用于将本发明限于所给出的具体细节。例如,各种元素或组件可以整合或集成在其他系统中,或可省略或不实现某些特征。
[0083]此外,各实施例中以离散或单独方式描述及阐明的技术、系统、子系统及方法,可与其他系统、模块、技术或方法在不脱离本发明范围的前提下进行整合或集成。以耦合、直接耦合或彼此通信的方式示出或讨论的其他项目,可以通过一些电气、机械或其他类型的接口、设备或中间组件进行间接耦合或通信。本领域技术人员可以理解确定本发明的其他变化、替换或变更,并可在不脱离本发明精神与范围的前提下做出其他变化、替换或变更。
【主权项】
1.一种网络路由器实现的包分类方法,其特征在于,所述方法包括: 获取包,其中所述包的包头包括由规则集指定的多个维度字段; 将至少两个所述维度字段的一个或多个比特与储存于三重内容可寻址内存(TCAM)中的对应表项进行匹配; 基于与所述TCAM中的所述对应表项关联的数据生成哈希键,其中所述关联数据储存于至少一个非TCAM内存中; 用所述哈希键搜索储存于所述至少一个非TCAM内存中的多维trie树; 基于所述搜索将所述包映射到所述规则集中的一条或多条规则。
2.根据权利要求1所述的方法,其特征在于,所述包中的所述至少两个维度字段包括第一维度字段和第二维度字段,其中所述多维度trie树包括对应所述规则集指定的至少两个维度的至少两个分trie树,其中所述至少两个分trie树包括第一分trie树和第二分trie树,所述将所述包映射包括: 将所述第一维度字段中的比特与所述第一分trie树中储存的数据进行匹配; 将所述第二维度字段中的比特与所述第二分trie树中储存的数据进行匹配。
3.根据权利要求2所述的方法,其特征在于,所述第一和第二维度字段选自由源地址、目的地址、源端口号、目的端口号及协议组成的群组。
4.根据权利要求2所述的方法,其特征在于,所述第一维度字段为源地址,所述第二维度字段为目的地址,所述TCAM中的所述对应表项包括源地址前缀和目的地址前缀中的至少一个,所述储存在所述第一分trie树中的数据包括一个或多个源地址前缀,所述储存在所述第二分trie树中的数据包括至少一个目的地址前缀。
5.根据权利要求4所述的方法
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1