一种流表混合排序的实现方法技术

技术编号:28942828 阅读:47 留言:0更新日期:2021-06-18 21:50
本发明专利技术揭示了一种流表混合排序的实现方法,包括:S100,将芯片内的多块流表存储单元按照流表规则的大小分区,分区使得同一个流表存储单元给相同大小的流表规则使用,或者给不同大小的流表规则使用;S200,对于与流表存储单元的宽度相同的流表规则,确定该流表规则对应的多块流表存储单元的匹配优先级;S300,芯片在入端口根据报文信息产生流表规则类型,根据流表规则类型做流表查找,查找对应区域的流表存储单元,并判断是否查找到。本发明专利技术可以实现流表混合排序,充分利用芯片资源。

【技术实现步骤摘要】
一种流表混合排序的实现方法
本专利技术属于芯片资源
,具体涉及一种流表混合排序的实现方法。
技术介绍
目前,交换机中的流表都是一整块Block(为芯片存储流表的一个基本单元)给某个Key(流表规则)使用,比如一块Block的宽度为160bits,深度为1024。如果160bits的Key使用需要1块Block,320bits的Key使用需要2块,480bits的Key使用需要3块,具体如图1所示。但是,实际应用场景中,160bits、320bits和480bits的Key都是会使用到的,如果交换机中320bits和480bits的Key没有占满整个Block,那么空余的部分就浪费掉了,即不能充分利用芯片资源。因此,针对上述技术问题,有必要提供一种可充分利用芯片资源的流表规则使用方案。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种流表混合排序的实现方法。为了实现上述目的,本专利技术一实施例提供的技术方案如下:一种流表混合排序的实现方法,包括:S100,将芯片内的多块流表存储单元按照流表规则的大小分区,分区使得同一个所述流表存储单元给相同大小的流表规则使用,或者给不同大小的流表规则使用;S200,对于与流表存储单元的宽度相同的流表规则,确定该流表规则对应的多块流表存储单元的匹配优先级;S300,芯片在入端口根据报文信息产生流表规则类型,根据所述流表规则类型做流表查找,查找对应区域的流表存储单元,并判断是否查找到。一实施例中,所述S200包括:芯片内抽象出一个虚拟流表存储单元,由所述虚拟流表存储单元管理和分配对应区域的多块流表存储单元的索引,并由所述索引确定该区域的多块流表存储单元的优先级。一实施例中,索引最小的流表存储单元的优先级最高。一实施例中,所述S200中,不同大小的流表规则均分别在各自的区域内排序。一实施例中,所述S300包括:S301,芯片出流表的查找类型和查找的流表存储单元的编号;S302,根据报文信息产生流表规则类型,再根据流表规则类型做流表TCAM查找,所述流表规则类型包括流表规则的大小;S303,对于不同大小的流表规则,根据预先设置的所述查找类型和编号,查找对应的流表存储单元。一实施例中,所述S303中,对于与流表存储单元的宽度相同的流表规则,则根据预先配置的优先级,选择最高优先级的流表存储单元作为最终匹配结果。一实施例中,所述S303中,对于除与流表存储单元的宽度相同的流表规则外的其他大小的流表规则,则连续查找对应区域的多块流表存储单元,若多块流表存储单元相同索引的匹配规则均匹配,则判断匹配。一实施例中,所述S301之前还包括:在芯片的多块流表存储单元上配置多个类型的流表规则需要查找的至少一个流表存储单元以及所述至少一个流表存储单元之间的优先级。本专利技术具有以下有益效果:本专利技术可以实现流表混合排序,使得同一块Block中同时存在多个大小的流表规则Key,充分利用芯片资源。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有单一大小的流表规则分布的示意图;图2是本专利技术方法的流程示意图;图3是本专利技术流表规则(160/320/480)混合分布的示意图;图4是本专利技术流表规则(160/320)混合分布的示意图;图5是本专利技术流表规则(160/480)混合分布的示意图;图6是本专利技术流表规则(320/480)混合分布的示意图;图7是本专利技术虚拟流表存储单元的示意图;图8是本专利技术芯片查找流程示意图。具体实施方式为了使本
的人员更好地理解本专利技术中的技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。如图2所示,本专利技术所揭示的一种流表混合排序的实现方法,包括以下步骤:S100,将芯片内的多块流表存储单元按照流表规则的大小分区,分区使得同一个所述流表存储单元给相同大小的流表规则使用,或者给不同大小的流表规则使用。具体地,将多块流表存储单元按照流表规则的大小分区,区域的边界可以根据实际情况进行调整。如图3所示,以交换机中具有三块流表存储单元为例,分别是Block0、Block1和Block2,每个Block的宽度均为160bits,深度为1024,对于160bits的流表规则,分布于Block0、Block1和Block2,对于320bits的流表规则,同时占用Block0、Block1,对于480bits的流表规则,同时占用Block0、Block1和Block2。如图4所示,为160bits和320bits流表规则的混合,对于160bits的流表规则,分布于Block0和Block1,对于320bits的流表规则,同时占用Block0、Block1。如图5所示,为160bits和480bits流表规则的混合,对于160bits的流表规则,分布于Block0、Block1和Block2,对于480bits的流表规则,同时占用Block0、Block1和Block2。如图6所示,为320bits和480bits流表规则的混合,对于320bits的流表规则,分布于Block0和Block1,对于480bits的流表规则,同时占用Block0、Block1和Block2。S200,对于与流表存储单元的宽度相同的流表规则,确定该流表规则对应的多块流表存储单元的匹配优先级。本专利技术芯片中,对不同大小(Size)的流表规则的优先级是分开排序的,对于与流表存储单元的宽度相同的流表规则,如上述160bits的流表规则,是在虚拟流表存储单元中排序的,对于除与流表存储单元的宽度相同的流表规则外的其他大小的流表规则,则分别在各自的区域内排序。具体地,对于与流表存储单元的宽度相同的流表规则,如上述举例中的对于160bits的流表规则,如图7所示,本实施例中,芯片内抽象出一个虚拟流表存储单元,由该虚拟流表存储单元管理和分配对应区域的多块流表存储单元的索引,并由索引确定该区域的多块流表存储单元的优先级,通过设置三块流表存储单元的命中优先级来确定虚拟流表存储单元中的流表规则Key优先级,然后将虚拟流表存储单元中的逻辑优先级根据160bits的流表规则的边界映射到实际Block中的优先级。如本实施例中,虚拟流表存储单元从上往下依次对应Block0、Block1和Block2的索引,索引越小的优先级越高,如Block0的本文档来自技高网
...

【技术保护点】
1.一种流表混合排序的实现方法,其特征在于,所述方法包括:/nS100,将芯片内的多块流表存储单元按照流表规则的大小分区,分区使得同一个所述流表存储单元给相同大小的流表规则使用,或者给不同大小的流表规则使用;/nS200,对于与流表存储单元的宽度相同的流表规则,确定该流表规则对应的多块流表存储单元的匹配优先级;/nS300,芯片在入端口根据报文信息产生流表规则类型,根据所述流表规则类型做流表查找,查找对应区域的流表存储单元,并判断是否查找到。/n

【技术特征摘要】
1.一种流表混合排序的实现方法,其特征在于,所述方法包括:
S100,将芯片内的多块流表存储单元按照流表规则的大小分区,分区使得同一个所述流表存储单元给相同大小的流表规则使用,或者给不同大小的流表规则使用;
S200,对于与流表存储单元的宽度相同的流表规则,确定该流表规则对应的多块流表存储单元的匹配优先级;
S300,芯片在入端口根据报文信息产生流表规则类型,根据所述流表规则类型做流表查找,查找对应区域的流表存储单元,并判断是否查找到。


2.根据权利要求1所述的一种流表混合排序的实现方法,其特征在于,所述S200包括:芯片内抽象出一个虚拟流表存储单元,由所述虚拟流表存储单元管理和分配对应区域的多块流表存储单元的索引,并由所述索引确定该区域的多块流表存储单元的优先级。


3.根据权利要求2所述的一种流表混合排序的实现方法,其特征在于,索引最小的流表存储单元的优先级最高。


4.根据权利要求2所述的一种流表混合排序的实现方法,其特征在于,所述S200中,不同大小的流表规则均分别在各自的区域内排序。


5.根据权利要求1所述的一种流表混...

【专利技术属性】
技术研发人员:何志川钱超赵子苍
申请(专利权)人:盛科网络苏州有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1