【技术实现步骤摘要】
一种包分类方法、装置、转发芯片及电子设备
[0001]本申请涉及计算机
,特别是涉及一种包分类方法、装置、转发芯片及电子设备。
技术介绍
[0002]在交换机、路由器、防火墙等具有包分类功能的电子设备中,需要通过表项查找对数据包进行分类和转发。包分类是根据预先定义的一个规则集,为每一个到达的数据包在规则集找到所匹配的最佳规则的方法。以TCAM(Ternary Content Addressable Memory,三态内容寻址存储器)存储规则集,基于内容进行规则匹配,可提高规则匹配效率,提高包分类效率,但TCAM成本较高,且功耗较大,这使得包分类的成本较高,且功耗较大。
技术实现思路
[0003]本申请实施例的目的在于提供一种包分类方法、装置、转发芯片及电子设备,用以解决包分类成本较高,且功耗较大的问题。具体技术方案如下:
[0004]第一方面,本申请实施例提供了一种包分类方法,应用于具有包分类功能的电子设备,所述电子设备中设置有TCAM和RAM(Random
‑
Access M ...
【技术保护点】
【技术特征摘要】
1.一种包分类方法,其特征在于,应用于具有包分类功能的电子设备,所述电子设备中设置有三态内容寻址存储器TCAM和随机存取存储器RAM,所述TCAM内存储有公共规则表,所述RAM内存储有主规则表和块规则表;所述块规则表中存储有具有相同公共规则的多个规则;所述主规则表至少包括分裂位置集和基地址两个字段,所述块规则表中的规则归属于由分裂位置集所确定的一个子树,所述分裂位置集用于定位查找关键值在块规则表中对应的规则的位置,所述基地址用于定位所述块规则表,所述公共规则中的非通配符位的值与所述基地址指向的块规则表中所有规则的相同位的值相同;所述公共规则表中存储有公共规则,所述公共规则表与所述主规则表中对应同一个块规则表的索引相同;所述方法包括:从待分类数据包中抽取目标查找关键值;使用所述目标查找关键值在所述公共规则表中进行匹配,获得所述主规则表中目标表项的主索引;基于所述主索引指向的目标表项包括的基地址,定位块规则表;基于所述目标查找关键值和所述主索引指向的所述目标表项包括的分裂位置集,确定第一规则在所定位的块规则表中的次索引;基于所述次索引指向的第一规则,对所述待分类数据包进行包分类处理。2.根据权利要求1所述的方法,其特征在于,所述TCAM内还存储有物理表,所述物理表中存储有至少一条规则;所述方法还包括:使用所述目标查找关键值在所述物理表中进行匹配,获得第二规则;所述基于所述次索引指向的第一规则,对所述待分类数据包进行包分类处理的步骤,包括:从所述次索引指向的第一规则和所述第二规则中,选择优先级最高的一条规则;按照所选择的规则,对所述待分类数据包进行包分类处理。3.根据权利要求2所述的方法,其特征在于,所述从所述次索引指向的第一规则和所述第二规则中,选择优先级最高的一条规则的步骤,包括:基于所述目标查找关键值,分别对所述次索引指向的第一规则和所述第二规则进行校验;从校验确定的与所述目标查找关键值匹配的规则中,选择优先级最高的一条规则。4.根据权利要求1所述的方法,其特征在于,所述公共规则表、主规则表和块规则表通过以下方式生成:基于全局规则集中各规则的平衡位构建规则决策树,所述平衡位为各位中取值为0的规则数量与取值为1的规则数量差值最小的一位;分别从所述规则决策树的每个叶子节点开始向上按广度优先遍历,得到每个叶子节点对应的最深规则子树,所述最深规则子树为包括的平衡位的数量小于或等于预设分裂位深的规则子树中最深的规则子树;基于每个最深规则子树,生成所述公共规则表、所述主规则表和所述块规则表。5.根据权利要求4所述的方法,其特征在于,所述基于每个最深规则子树,生成所述公
共规则表、所述主规则表和所述块规则表的步骤,包括:基于每个最深规则子树包括的规则集,分别生成一个块规则表;基于每个最深规则子树包括的平衡位,分别生成一个分裂位置集;基于每个最深规则子树对应的分裂位置集和块规则表的基地址,生成所述主规则表;基于每个最深规则子树对应的所述主规则表中的表项索引和每个最深规则子树包括的规则集的公共规则,生成所述公共规则表。6.根据权利要求4所述的方法,其特征在于,所述基于全局规则集中各规则的平衡位构建规则决策树的步骤,包括:将全局规则集作为待分裂规则集,所述全局规则集包含于规则决策树的根节点中;确定所述待分裂规则集中各规则的平衡位;将所述待分裂规则集中所述平衡位的值为0的规则添加在第一侧子节点中,并将所述待分裂规则集中所述平衡位的值为1的规则添加在第二侧子节点中;针对分裂得到的每个子节点,若该子节点包括多条规则,则将该子节点包括的规则集作为待分裂规则集,重新执行所述确定所述待分裂规则集中个规则的平衡位的步骤,直至分裂得到的每个子节点包括一条规则为止,得到所述规则决策树。7.根据权利要求4所述的方法,其特征在于,所述方法还包括:将所述全局规则集中所述平衡位的值为通配符的规则划分为丢弃规则集;若已构建规则决策树的数量小于N,则将所述丢弃规则集作为全局规则集,重新执行所述基于全局规则集中各规则的平衡位构建规则决策树的步骤,直至已构建规则决策树的数量等于N,N小于所述TCAM的最大并发数。8.根据权利要求7所述的方法,其特征在于,所述TCAM内还存储有物理表,所述方法还包括:在构建N个规则决策树后,将当前丢弃规则集中的规则添加至所述物理表中。9.根据权利要求4
‑
8任一项所述的方法,其特征在于,所述规则包括前缀类字段、范围类字段、精确类字段以及通配类字段中的至少一种;在所述基于全局规则集中各规则的平衡位构建规则决策树之前,所述方法还包括:对所述全局规则集中的每条规则进行以下处理:对于该规则包括的前缀类字段,将前缀长度的最高位的值设置为前缀值,将其他位的值设置为通配符;对于该规则包括的范围类字段,将该范围类字段拆分为多个子范围,将每个子范围对应的位的取值设置为该子范围对应的等价前缀值;对于该规则包括的精确类字段,将各位的值设置为精确值;对于该规则包括的通配类字段,将各位的值设置为通配符。10.根据权利要求1
‑
8任一项所述的方法,其特征在于,所述公共规则的生成方式为:若所述块规则表存储的所有规则的一位的值均为1,则将所述块规则表对应的公共规则的该位的值设置为1;若所述块规则表存储的所有规则的一位的值均为0,则将所述块规则表对应的公共规则的该位的值设置为0;若所述块规则表存储的所有类规则的一位的值不全为1,和/或所述块规则表存储的所
有规则的一位的值不全为0,则将所述块规则表对应的公共规则的该位的值设置为通配符。11.一种包分类装置,其特征在于,应用于具有包分类功能的电子设备,所述电子设备中设置有三态内容寻址存储器TCAM和随机存取存储器RAM,所述TCAM内存储有公共规则表,所述RAM内存储有主规则表和块规则表;所述块规则表中存储有具有相同公共规则的多个规则;所述主规则表至少包括分裂位置集和基...
【专利技术属性】
技术研发人员:胡卓,罗彬,
申请(专利权)人:新华三半导体技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。