一种基于TCAM的数据流识别处理装置、系统和方法制造方法及图纸

技术编号:16550207 阅读:38 留言:0更新日期:2017-11-11 13:46
本发明专利技术公开了一种基于TCAM的数据流识别处理装置,涉及数据流识别技术领域,包括组KEY模块,TCAM查找模块,查找结果判断模块和结果处理模块。本发明专利技术采用灵活组KEY方式,从待识别数据流中提取信息字段灵活组合成多种KEY,使用组成的KEY查找TCAM条目,对查找结果独立判断或级联判断,得到每种KEY对应的TCAM条目的索引,再根据TCAM条目的索引得到每个索引对应的处理行为,再对待识别数据流的全部KEY对应的处理行为的优先级进行判断,输出优先级最高的处理行为。采用本发明专利技术可实现灵活组KEY,提高TCAM资源的利用率。本发明专利技术公开了一种基于TCAM的数据流识别处理方法。

A device, system and method for data stream identification and processing based on TCAM

The invention discloses a TCAM based data stream recognition processing device, relates to the technical field of data stream recognition, including KEY module, TCAM search module, a judging module and result processing module search results. The invention adopts the flexible group KEY, information extraction field flexible combination into a variety of KEY to be identified from the data stream, using KEY components to find TCAM entry, search results of independent judgment or cascade judgment, every KEY corresponds to the TCAM index, according to the TCAM index to get the corresponding behavior of each index the behavior of KEY, corresponding to all of the data stream to recognize the priority of judgment, the highest priority processing output. The invention can realize flexible group KEY and improve the utilization ratio of TCAM resources. The invention discloses a data stream identification and processing method based on TCAM.

【技术实现步骤摘要】
一种基于TCAM的数据流识别处理装置、系统和方法
本专利技术涉及数据流识别
,具体涉及一种基于TCAM的数据流识别处理装置、系统和方法。
技术介绍
随着通信的发展,通信网中基于包的业务流量已经占据了主流。通信网也从适应于TDM(TimeDivisionMultiplexing)通信的通信网转换为更适用于包通信的通信网。目前,在基于包通信技术中以太网技术和基于TCP/IP(协议的技术占据主流,基于这两种技术的网络设备(例如各种二层交换机、三层交换机、路由器、网关设备、PTN(PacketTransportNetwork)设备等)在通信的核心层、汇聚层、接入层都有大量应用,SDN技术和SDN设备也在迅速发展中。这类设备中大多都有流识别和处理功能。流定义为一组具有同样特征的报文,这些特征可以是数据包的协议字段,例如以太网协议的目的MAC(MediaAccessControl)地址(后文简写为DMAC)、源MAC地址(后文简写为SMAC)、VLAN(VirtualLocalAccessNetwork)域、以太网类型域(EtherType);IP(InternetProtocol)协议定义的IP源地址(以下简写为SIP)、目的地址(以下简写为DIP)、IPProtocol等;也可以是数据包的输入端口、输出端口信息(例如数据流的输入端口),还可以是数据流内部处理信息(例如输出端口,改变后的数据包协议字段等)等。流识别就是根据这些字段识别出定义的流,流处理是对识别后的流指定处理行为,例如ACL(AccessControlList)(丢弃数据包)功能,指定数据包的转发端口,指定数据包的COS(ClassOfService),指定数据包进行VLAN域修改,指定对数据包进行统计等。流识别和处理功能在包通信中具有重要的作用,并且随着SDN技术在通信中的应用,流识别和处理功能将越来越重要。通信设备中对于流的定义方法、要识别的流的数量、对流的处理行为都有明确的要求。例如:目前,PTN接入层、汇聚层设备要求识别的流就有几千条,并且明确规定了需要基于各协议字段的自由组合来识别流,对流的处理行为包括统计、镜像、指定转发端口等。并且流处理行为所对应的流识别方式一般也不同,例如:VLAN处理行为主要是基于端口和数据帧携带的VLAN字段识别流后进行处理,而指定转发功能可以基于二层协议字段或三层协议字段进行。正是由于通信设备对流识别处理的灵活性、多样性及可观的数量要求,使流识别成为设计的一个难点。流识别和处理大致可分成三个过程:第一个过程是根据流的定义,将标识流的各信息字段组成一个信息组,在下文中将这样的信息组简称为KEY,将这个过程称为组KEY过程;第二个过程是流识别过程,就是根据所组KEY在一个数据库中进行配置,如果匹配就输出此流对应的索引号(也可称为流处理索引);第三个过程是根据流到得到处理行为。流识别的难点在于如何使一个数据包同时匹配多个流,并给出多种处理行为。目前,较大规模(例如几百条)、较复杂组KEY情况下的流识别功能主要采用三态内容寻址存储器TernaryContentAddressableMemory,简称TCAM)方式实现。使用TCAM可在很短的时间内完成所有待查找条目的比对,并且TCAM器件的每个查找位都带MASK(屏蔽)位,使用MASK位可利用它实现范围匹配,和灵活组KEY。但TCAM器件具有特定的宽度和深度,而流识别所需KEY的长短不同,为了适应多种KEY,要将TCAM器件进行组合,例如将两块80比特宽的TCAM并行拼接,来支持160比特宽的KEY的查找,但采用160比特宽的TCAM来支持80比特的KEY查找是不经济的,所以对于80比特的KEY要再采用一组TCAM来查找。这样,在设计时必须根据需求精心组织KEY,安排TCAM的组合,一旦需求发生变动,将导致重新设计,且这些专用的设计很难移植,易造成设计资源的浪费,导致高的设计成本,例如,某设计需要识别KEY宽为75比特的流500条,KEY宽为200比特的数据流50条,采用宽度为80比特,深度128的TCAM进行拼接,会造成资源的很大浪费;且不利于移植到一个需要80比特KEY和100比特KEY的设计。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种基于TCAM的数据流识别处理装置、系统和方法,可实现灵活组KEY,提高TCAM资源的利用率。为达到以上目的,本专利技术采取的技术方案是:一种基于TCAM的数据流识别处理装置:包括组KEY模块,TCAM查找模块,查找结果判断模块和结果处理模块,其中:组KEY模块用于根据数据流识别需求按照组KEY配置进行组KEY,所述组KEY配置中设定了多种KEY的组成配置,每种KEY的组成配置包括每种KEY所用的信息字段和是否要按照信息字段组成有效KEY;对于需要根据信息字段组成有效KEY的,根据组KEY配置从待识别的数据流的各信息字段中选择生成每种KEY所用的信息字段,按照组KEY方法组成待识别的数据流的KEY,KEY中包含KEY的种类字段和信息字段,并输出KEY有效指示;对于不需要根据信息字段组成有效KEY的,直接输出KEY无效指示;将待识别的数据流的KEY均发送到TCAM查找模块;TCAM查找模块用于对组KEY模块输出的KEY进行TCAM条目查找,TCAM查找模块中包含根据数据流识别需求生成的TCAM条目,每个条目包含KEY的种类字段和KEY的信息字段;TCAM查找模块接收组KEY模块组成的待识别的数据流的KEY,将待识别的数据流的有效KEY分别输入TCAM条目查找是否有匹配项,对于无效KEY直接输出查找不匹配,将待识别的数据流的所有KEY对应的查找结果输出到查找结果判断模块,查找结果包括每个KEY对每个TCAM条目是否匹配;查找结果判断模块用于根据数据流识别需求生成的对应的查找判断配置判断出查找的匹配项,查找判断配置包括对每种KEY对应的查找结果进行单独判断或级联判断的配置;接收TCAM查找模块送入的待识别的数据流的KEY的所有查找结果,根据查找判断配置判断待识别的数据流的KEY的查找结果是否有匹配项,若存在,将所有匹配的TCAM条目的索引发送到匹配结果处理模块;结果处理模块用于根据数据流识别需求生成的与TCAM条目的各索引对应的处理行为配置得到对数据流的处理结果,所述处理行为配置包括与TCAM条目各索引对应的各处理行为以及各处理行为的优先级;接收查找结果判断模块送入的所有匹配TCAM条目的索引,使用各匹配TCAM条目的索引分别查找对应的处理行为配置得到各索引对应的各处理行为以及各处理行为的优先级,输出与待识别的数据流的所有KEY对应的各处理行为中优先级最高的处理行为。在上述技术方案的基础上,若数据流识别需求的某一个信息组的宽度小于TCAM的宽度,将该信息组配置成一种KEY,若需识别的数据流的某一个信息组的宽度大于TCAM的宽度,将该信息组配置成两种或两种以上的KEY。在上述技术方案的基础上,若数据流识别需求中的某信息组对应一种KEY,则查找结果判断模块判断是否有匹配项时只对待识别数据流中该种KEY对应的查找结果独立判断;若数据流识别需求中的某信息组对应两种或两种以上的KEY,则查找结果判断模块判断是否有匹配项本文档来自技高网
...
一种基于TCAM的数据流识别处理装置、系统和方法

【技术保护点】
一种基于TCAM的数据流识别处理装置,其特征在于:包括组KEY模块,TCAM查找模块,查找结果判断模块和结果处理模块,其中:组KEY模块用于根据数据流识别需求按照组KEY配置进行组KEY,所述组KEY配置中设定了多种KEY的组成配置,每种KEY的组成配置包括每种KEY所用的信息字段和是否要按照信息字段组成有效KEY;对于需要根据信息字段组成有效KEY的,根据组KEY配置从待识别的数据流的各信息字段中选择生成每种KEY所用的信息字段,按照组KEY方法组成待识别的数据流的KEY,KEY中包含KEY的种类字段和信息字段,并输出KEY有效指示;对于不需要根据信息字段组成有效KEY的,直接输出KEY无效指示;将待识别的数据流的KEY均发送到TCAM查找模块;TCAM查找模块用于对组KEY模块输出的KEY进行TCAM条目查找,TCAM查找模块中包含根据数据流识别需求生成的TCAM条目,每个条目包含KEY的种类字段和KEY的信息字段;TCAM查找模块接收组KEY模块组成的待识别的数据流的KEY,将待识别的数据流的有效KEY分别输入TCAM条目查找是否有匹配项,对于无效KEY直接输出查找不匹配,将待识别的数据流的所有KEY对应的查找结果输出到查找结果判断模块,查找结果包括每个KEY对每个TCAM条目是否匹配;查找结果判断模块用于根据数据流识别需求生成的对应的查找判断配置判断出查找的匹配项,查找判断配置包括对每种KEY对应的查找结果进行单独判断或级联判断的配置;接收TCAM查找模块送入的待识别的数据流的KEY的所有查找结果,根据查找判断配置判断待识别的数据流的KEY的查找结果是否有匹配项,若存在,将所有匹配的TCAM条目的索引发送到匹配结果处理模块;结果处理模块用于根据数据流识别需求生成的与TCAM条目的各索引对应的处理行为配置得到对数据流的处理结果,所述处理行为配置包括与TCAM条目各索引对应的各处理行为以及各处理行为的优先级;接收查找结果判断模块送入的所有匹配TCAM条目的索引,使用各匹配TCAM条目的索引分别查找对应的处理行为配置得到各索引对应的各处理行为以及各处理行为的优先级,输出与待识别的数据流的所有KEY对应的各处理行为中优先级最高的处理行为。...

【技术特征摘要】
1.一种基于TCAM的数据流识别处理装置,其特征在于:包括组KEY模块,TCAM查找模块,查找结果判断模块和结果处理模块,其中:组KEY模块用于根据数据流识别需求按照组KEY配置进行组KEY,所述组KEY配置中设定了多种KEY的组成配置,每种KEY的组成配置包括每种KEY所用的信息字段和是否要按照信息字段组成有效KEY;对于需要根据信息字段组成有效KEY的,根据组KEY配置从待识别的数据流的各信息字段中选择生成每种KEY所用的信息字段,按照组KEY方法组成待识别的数据流的KEY,KEY中包含KEY的种类字段和信息字段,并输出KEY有效指示;对于不需要根据信息字段组成有效KEY的,直接输出KEY无效指示;将待识别的数据流的KEY均发送到TCAM查找模块;TCAM查找模块用于对组KEY模块输出的KEY进行TCAM条目查找,TCAM查找模块中包含根据数据流识别需求生成的TCAM条目,每个条目包含KEY的种类字段和KEY的信息字段;TCAM查找模块接收组KEY模块组成的待识别的数据流的KEY,将待识别的数据流的有效KEY分别输入TCAM条目查找是否有匹配项,对于无效KEY直接输出查找不匹配,将待识别的数据流的所有KEY对应的查找结果输出到查找结果判断模块,查找结果包括每个KEY对每个TCAM条目是否匹配;查找结果判断模块用于根据数据流识别需求生成的对应的查找判断配置判断出查找的匹配项,查找判断配置包括对每种KEY对应的查找结果进行单独判断或级联判断的配置;接收TCAM查找模块送入的待识别的数据流的KEY的所有查找结果,根据查找判断配置判断待识别的数据流的KEY的查找结果是否有匹配项,若存在,将所有匹配的TCAM条目的索引发送到匹配结果处理模块;结果处理模块用于根据数据流识别需求生成的与TCAM条目的各索引对应的处理行为配置得到对数据流的处理结果,所述处理行为配置包括与TCAM条目各索引对应的各处理行为以及各处理行为的优先级;接收查找结果判断模块送入的所有匹配TCAM条目的索引,使用各匹配TCAM条目的索引分别查找对应的处理行为配置得到各索引对应的各处理行为以及各处理行为的优先级,输出与待识别的数据流的所有KEY对应的各处理行为中优先级最高的处理行为。2.如权利要求1所述的一种基于TCAM的数据流识别处理装置,其特征在于:若数据流识别需求的某一个信息组的宽度小于TCAM的宽度,将该信息组配置成一种KEY,若需识别的数据流的某一个信息组的宽度大于TCAM的宽度,将该信息组配置成两种或两种以上的KEY。3.如权利要求2所述的一种基于TCAM的数据流识别处理装置,其特征在于:若数据流识别需求中的某信息组对应一种KEY,则查找结果判断模块判断是否有匹配项时只对待识别数据流中该种KEY对应的查找结果独立判断;若数据流识别需求中的某信息组对应两种或两种以上的KEY,则查找结果判断模块判断是否有匹配项时需对待识别数据流中与信息组对应的两种或两种以上的KEY对应的查找结果级联判断。4.如权利要求1所述的一种基于TCAM的数据流识别处理装置,其特征在于:每个KEY的组成为{key_id,key_pkt_info},key_id是KEY的种类字段,key_pkt_info是信息字段;每个KEY的组KEY配置为{key_valid,key_sel[n-1:0]};key_valid为‘1’表示要进行组KEY,否则不进行组KEY,key_sel的每个比特表示是否要选择相应的pkt_info进行组KEY;每个KEY的组KEY过程如下:步骤1:生成key_id和key_pkt_info:key_id[k-1:0]根据组KEY配置的条目号生成,宽度为k比特;key_pkt_info[s-k-1:0]为全‘0’,宽度为s-k;步骤2:采用移位的方法,根据key_sel[n-1:0]生成key_pkt_info[s-k-1:0]:首先判断key_sel[n-1],为‘1’时,将pkt_info(n-1)替换到key_pkt_info的低位,为‘0’时key_pkt_info不变;然后判断key_sel[n-2],为‘1’时,先将key_pkt_info左移信号pkt_info(n-2)的位宽,然后将pkt_info(n-2)替换到key_pkt_info的低位,为‘0’时key_pkt_info不变;依次进行其它比特的判断,当所有比特判断完得到key_pkt_info,在判断过程中自动将key_pkt_info裁剪为s-k比特。5.如权利要求1所述的一种基于TCAM的数据流识别处理装置,其特征在于:所述TCAM查找模块输出的查找结果信息包括{key0_hit_rslt,key1_hit_rslt,…,key(m-1)_hit_rslt},其中,key0_hit_rslt表示KEY0的查找结果,其它KEY结果类推,每个查找结果都是一个数组,数组的0比特对应第0个TCAM条目的判断结果,‘1’表示配置,其余比特类推。6.如权利要求5所述的一种基于TCAM的数据流识别处理装置,其特征在于:若查找判断配置为独立判断,则仅对该KEY的查找结果是否有匹配项进行独立判断;若查找判断配置为级联判断,则根据查找判断配置对需要进行级联判断的KEY的查找结果进行级联判断;具体过程如下:查找结果判断模块中包含一个查找判断配置数据库,包含每种KEY对应的查找判断配置;查找判断配置包括多个查处判断配置条目,每个查找判断配置条...

【专利技术属性】
技术研发人员:杨彦波张艳匡可
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北,42

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

1