CN105376159A - 报文处理转发装置及方法 - Google Patents
报文处理转发装置及方法 Download PDFInfo
- Publication number
- CN105376159A CN105376159A CN201410422447.8A CN201410422447A CN105376159A CN 105376159 A CN105376159 A CN 105376159A CN 201410422447 A CN201410422447 A CN 201410422447A CN 105376159 A CN105376159 A CN 105376159A
- Authority
- CN
- China
- Prior art keywords
- message
- module
- tcam
- field
- processing unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种报文处理转发装置及方法,所述装置包括处理结构;每一个处理结构包括TCAM处理单元及查表单元;TCAM处理单元包括:第一提取模块,用于从对应于报文及报文描述符中提取特征字段;匹配模块,用于将特征字段与TCAM条目进行匹配,形成匹配结果;第一执行模块,用于依据匹配结果,对报文及报文描述符执行第一次操作并形成键值域索引;查表单元包括:第二提取模块,用于接收键值域索引并依据键值域索引并获取键值字段;查表模块,用于依据键值字段进行查表,形成查表结果;第二执行模块,用于根据查表结果对报文及报文描述符执行第二次操作;处理结构,还用于在指定的处理结构执行完第一次操作和第二次操作后,发送处理结构处理后的报文。
Description
技术领域
本发明涉及通信领域的报文转发技术,尤其涉及一种报文处理转发装置及方法。
背景技术
目前报文转发通常由通用中央处理器CPU、完全可编程的网络处理器NP或硬逻辑实现的芯片来实现;通用CPU由于受限其处理性能,只能满足一些极低线速要求的场景;可编程的网络处理器灵活度很高,但是成本和功耗的代价也相对比较高;硬逻辑实现的芯片优缺点也非常明显,优点是能很好的控制芯片的成本功耗,缺点是芯片开发过程中需要对业务流程的理解和梳理不能有差错,从而导致开发过程中的开发及验证难度大的问题。
发明内容
有鉴于此,本发明实施例期望提供一种报文处理转发装置及方法,以保持所述装置具有一定的灵活性,同时维持较低的硬件成本以及较低的开发难度。
为达到上述目的,本发明的技术方案是这样实现的:
本发明第一方面提供一种报文处理转发装置,所述装置包括至少一个处理结构;每一个所述处理结构包括TCAM处理单元及查表单元;
所述TCAM处理单元包括:
第一提取模块,用于从对应于报文及报文描述符中提取特征字段;
匹配模块,用于将所述特征字段与TCAM条目进行匹配,形成匹配结果;
第一执行模块,为可编程模块,用于依据所述匹配结果,对所述报文及所述报文描述符执行第一次操作并形成键值域索引;
所述查表单元包括:
第二提取模块,用于接收所述键值域索引并依据所述键值域索引获取键值字段;
查表模块,用于依据所述键值字段进行查表,形成查表结果;
第二执行模块,为可编程模块,用于根据所述查表结果对所述报文及所述报文描述输入执行第二次操作;
所述处理结构,还用于在指定的所述处理结构执行完所述第一次操作和所述第二次操作后,发送所述处理结构处理后的所述报文。
优选地,
所述TCAM处理单元还包括:
***逻辑模块,用于将所述特征字段中的指定字段转化成所述TCAM条目的匹配字段,并所述匹配字段发送给所述匹配模块。
优选地,
所述TCAM处理单元还包括:
第一获取模块,用于依据所述匹配结果获取所述第一次操作的操作信息;
所述第一执行模块,具体用于依据所述操作信息,对所述报文执行第一次操作并依据匹配结果查询获得对应所述匹配结果的键值域索引。
优选地,
所述第二提取模块还用于将所述键值字段形成预定的键值结构,并将所述键值结构发给所述查表模块。
优选地,
所述查表单元包括:
第二获取模块,用于依据所述查表结果获取所述第二次操作的操作信息;
所述第二执行模块,具体用于依据所述操作信息,对所述报文执行第二次操作。
优选地,
所述第一执行模块和所述第二执行模块为超长指令可编程模块。
优选地,
所述TCAM处理单元及所述查表单元,一次能够处理N个所述特征字段;所述N为不小于1的整数;
所述装置还包括延时单元,且分别于所述TCAM处理单元及所述可编程逻辑指令查询单元相连;
所述延时单元,用于当所述特征字段的个数M大于所述N时,存储所述M个所述特征字段以及所述特征字段对应的匹配结果和查表结果,等待所述TCAM处理单元及所述查表单元对所述M个所述特征字段处理之后,输出所述报文。
本发明第二方面提供一种报文处理转发方法,应用于包括至少一个处理结构的装置中,所述处理结构包括TCAM处理单元及查表单元;
通过所述TCAM处理单元从对应于报文及报文描述符中提取特征字段;
依据所述匹配结果,采用所述TCAM处理单元中的可编程指令对所述报文及所述报文描述符执行第一次操作并形成键值域索引;
通过所述查表单元接收所述键值域索引,依据所述键值域索引查找键值字段,依据所述键值字段进行查表形成查表结果;
根据所述查表结果采用所述查表单元中的可编程指令对所述报文及所述报文描述符执行第二次操作;
在指定的所述处理结构执行完所述第一次操作和所述第二次操作后,发送所述处理结构处理后的所述报文。
优选地,
所述TCAM处理单元包括***逻辑模块;
所述方法还包括:
通过所述***逻辑模块将所述特征字段中的指定字段转化成所述TCAM条目的匹配字段;
所述匹配字段用于与所述TCAM条目进行匹配
优选地,
所述依据所述匹配结果,采用所述TCAM处理单元中的可编程指令对所述报文执行第一次操作并形成键值域索引包括:
依据所述匹配结果获取所述第一次操作的操作信息;
依据所述操作信息,对所述报文执行第一次操作;
依据所述匹配结果查询对应所述匹配结果的键值域索引。
优选地,
所述方法还包括:
将所述键值字段形成预定的键值结构;
所述依据所述键值字段进行查表形成查表结果具体为:
依据键值结构进行查表形成所述查表结果。
优选地,
所述根据所述查表结果采用所述查表单元中的可编程指令对所述报文执行第二次操作包括:
依据所述查表结果获取所述第二次操作的操作信息;
依据所述操作信息,对所述报文执行第二次操作。
优选地,
所述TCAM处理单元和查表单元中的可编程指令为超长指令。
优选地,
所述TCAM处理单元及所述查表单元,一次能够处理N个所述特征字段;所述N为不小于1的整数;所述装置还包括延时单元;
所述方法还包括:当所述特征字段的个数M大于所述N时,通过所述延时单元存储所述M个所述特征字段以及所述特征字段对应的匹配结果和查表结果,等待所述TCAM处理单元及所述查表单元对所述M个所述特征字段处理之后,输出所述报文。
本发明实施例所述报文处理转发方法及装置,结合TCAM处理单元及查表单元,可通过对可编程的第一执行模块和第二执行模块进行拓展实现所述装置的行业务拓展及业务调整,保持较高的灵活性,相比较于硬逻辑芯片可降低开发难度及验证难度;通过TCAM处理单元的引入,采用TCAM对报文进行部分处理,减少可编程模块需要处理的工作量,可相对的降低成本及功耗等。
附图说明
图1为本发明实施例所述的报文处理转发装置的结构示意图;
图2为本发明实施例所述的处理结构的结构示意图之一;
图3为本发明实施例所述的TCAM处理单元的结构示意图;
图4为本发明实施例所述的处理结构的结构示意图之二;
图5为本发明实施例所述的报文处理方法的流程示意图之一;
图6为本发明实施例所述的执行第一次操作并形成键值域索引的流程示意图;
图7为本发明示例所述的处理结构的结构示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。
实施例一
如图1及图2所示,本实施例提供一种报文处理转发装置,所述装置包括至少一个处理结构11;在图1中所述装置包括n+1个处理结构CELL;其中,所述n为不小1的整数;所述至少一个处理结构一次是CELL0、CELL1、……CELLn-1以及CELLn;
每一个所述处理结构11包括TCAM处理单元110及查表单元120;
所述TCAM处理单元包括:
第一提取模块111,用于从对应于报文及报文描述符中提取特征字段;
匹配模块112,用于将所述特征字段与TCAM条目进行匹配,形成匹配结果;
第一执行模块113,为可编程模块,用于依据所述匹配结果,对所述报文及所述报文描述符执行第一次操作并形成键值域索引;
所述查表单元120包括:
第二提取模块121,用于接收所述键值域索引并依据所述键值域索引获取键值字段;
查表模块122,用于依据所述键值字段进行查表,形成查表结果;
第二执行模块133,为可编程模块,用于根据所述查表结果对所述报文及所述报文描述符执行第二次操作;
所述处理结构,还用于在指定的所述处理结构执行完所述第一次操作和所述第二次操作后,发送所述处理结构处理后的所述报文。
所述报文为待转发的报文;所述报文描述符为承载有所述报文特征信息的信息;进入所述装置的所述报文描述符可包括依据接收所述报文的端口配置获得的信息以及解析报文获得的信息;在具体的实现过程中,后一个所述处理结构接收的所述描述符,还包括上一所述处理结构根据查表模块的查表结果形成的信息。
在图1中所述MF_IN为输入到所述装置的报文以及所述报文的报文描述符;所述MF_OUT为处理后的输出结果,具体如处理后的报文。
所述TCAM为TernaryContentAddressableMemory的缩写,是一种三态内容寻址存储器;所述TCAM条目为存储在所述TCAM内的内容。所述TCAM依据所述TCAM条目对应有三种状态,TCAM条目中每个bit位有三种状态,除掉“0”和“1”外,还有一个“don’tcare”状态,所以称为“三态”,基于上述三种状态所述TCAM能够进行精确匹配,又能进行模糊匹配。
所述TCAM处理单元为至少包括一个所述TCAM的结构;在本实施例中优选为所述TCAM处理单元包括多个所述TCAM,从而能同时实现对多个特征字段的进行匹配处理,以提高对报文的转发处理速率。
所述第一执行模块为可编程模块,通过对所述第一执行模块中代码的改变,可以改变第一执行模块执行的功能,从而能增加装置的灵活性。
在具体的实现过程中,所述匹配单元具体用于根据微码提取所述特征字段发送给所述匹配模块,所述微码为较为底层的代码,可简便的实现从微码转换成机械语言,能提高处理效率。
所述报文及报文描述符具体包括Mac地址、VLAN、MLPS、IP地址以及生命周期标签TTL等信息及报文类型、报文长度、报文的入向端口、报文出向端口、下一跳信息(下一个网络设备信息)、报文处理的优先级等信息。
所述第一执行模块113的具体结构可为处理器,所述处理器用于执行所述第次一操作并形成键值域索引。
所述第一次操作包括所述第一修改操作;所述第一修改操作可为报文的转发路径的修改操作等。
所述第一修改操作可包括根据匹配结果获取报文需要进行指定操作的标记位;所述指定操作具体可以是报文上报操作、报文镜像操作以及报文采样操作等;依据所述匹配结果替换所述报文中的目的Mac地址、添加虚拟局域网VLAN标签、修改目的IP地址及修改报文的优先级等操作。
所述第一次操作还可包括统计操作;对转发的报文进行统计;具体如,对从某一端口接收的报文进行统计等操作;还可以是基于流的报文统计操作。
所述第一次操作还可包括将不满足转发规则的描述符中添加丢弃标记等,具体如当检测到报文的IP头的长度小于20个字节时,在所述描述符中添加丢弃标记。
所述特征字段还可能包括报文长度信息,所述报文长度信息主要用于报封装的时候,依据所述报文长度以及封装新增长度重新计算新报文的长度,以保证新封装成的报文长度不超过端口可发送的最大报文长度。
在具体的过程中,所述第一次操作的具体实现,可根据所述TCAM条目来确定。
所述查表单元120的具体结构,可包括处理器以及对应于所述第二执行模块的可编程逻辑器件;所述可编程逻辑器件可以根据随着可编程代码的变化,而执行功能不同;具有灵活性高,开发及验证难度低的优点。
所述查表模块122的具体结构可包括存储介质,所述存储介质中存储有表项信息。所述表项信息包括键值域索引及第二次操作的信息等。
所述第二执行模块133的具体结构包括可编程逻辑器件,能够通过改写可编程器件的代码,使所述第二执行模块执行不同的功能
所述第二次操作与第一次操作类似,是对第一次操作的补充处理操作,同样的是包括对报文的转发路径的修改和/或确定操作等,还可对报文本身转发或丢弃等操作。
本实施例所述的装置,结合了TCAM处理单元及查表单元120,采用TCAM处理单元110处理条件匹配或选择分支等操作;如作为虚拟局域网的网关节点,解析VLAN标签。所述解析VLAN标签具体可包括解析报文中添加的VLAN的层数;具体如报文是仅添加了一层VLAN还是两层VLAN。
所述查表单元120由于其具有代码的可编程性,大大降低了一次开发的难度,具有灵活性大的优点;且由于其可编程性为后续的业务调整以及业务拓展留下了空间;将一些基本处理由TCAM处理单元来做,相对于全部由可编程模块来处理具有成本低的优点。在本实施例中所述TCAM处理单元,主要用于完成在报文处理转发过程中可以写成条件判断和/或分支选择操作的处理;具体如条件真假判断等。
如图3所示,所述TCAM处理单元还包括:
***逻辑模块114,用于将所述特征字段中的指定字段转化成所述TCAM条目的匹配字段,并所述匹配字段发送给所述匹配模块。
所述***逻辑模块114包括具有处理功能的逻辑电路等电路结构。
所述指定字段可包括对应于范围比较的字段和/或需要进行逻辑运算的字段等。采用TCAM直接执行范围比较或逻辑运算,会导致TCAM内的TCAM条目复杂,实现困难。在本实施例中采用***电路来辅助执行,不仅能实现上述功能,同时还能简便实现。
优选地,所述TCAM处理单元还包括:
第一获取模块,用于依据所述匹配结果获取所述第一次操作的操作信息;
所述第一执行模块,具体用于依据所述操作信息,对所述报文执行第一次操作并依据匹配结果查询获得对应所述匹配结果的键值域索引。
所述TCAM条目通常包括对应于特征字段的待匹配字段以及对应各匹配结果的操作信息ACTION;如执行VLAN解析和/或特定IP地址解析等操作,则所述ACTION包括各解析结果对应的操作。
在具体的实现过程中所述第一执行模块包括存储介质,所述存储介质有存储有各匹配结果与键值域索引的映射关系;所述第一执行模块为依据所述匹配结果查询所述键值域索引。
优选地,所述第二提取模块还用于将所述键值字段形成预定的键值结构,并将所述键值结构发给所述查表模块。在具体实现过程中,所述查表模块中的查表索引是有固定结构的,而所述TCAM处理单元输出的键值则可能没有对应的固定结构,在本实施例中通过第二提取模块将所述键值字段形成预定的键值结构,便于所述查表模块的查表。具体的所述第二提取模块具体可用于将一个或多个所述键值域索引拼接形成对应的键值结构。
所述查表单元120包括:
第二获取模块,用于依据所述查表结果获取所述第二次操作的操作信息;
所述第二执行模块,具体用于依据所述操作信息,对所述报文及所述报文描述符执行第二次操作。
在具体的实现过程中,所述第二获取模块可包括所述装置内部的通信接口及处理器,所述通信接口如通信总线等,用于从所述查表模块中获取操作信息
所述第一执行模块和第二执行模块均为超长指令可编程单元。
在本实施例中所述查表单元为超长指令可编程逻辑单元,在完成所述查表单元的对应的至少部分功能时,采用的超长指令;所述装置在执行超长指令时,能够实现并行执行所述超长指令中的多个子操作,能够加快执行效率。
所述TCAM处理单元及所述查表单元,一次能够处理N个所述特征字段;所述N为不小于1的整数;
如图4所示,所述装置还包括延时单元130,且分别于所述TCAM处理单元及所述可编程逻辑指令查询单元相连;
所述延时单元130,用于当所述特征字段的个数M大于所述N时,存储所述M个所述特征字段以及所述特征字段对应的匹配结果和查表结果,等待所述TCAM处理单元及所述查表单元对所述M个所述特征字段处理之后,输出所述报文。
所述延时单元130的具体结构可包括存储介质;所述存储介质用于存储所述特征字段及所述匹配结果和查表结果。
具体的如,当所述M=4;而所述N=2时,所述TCAM处理单元和所述查表单元不能同时执行4个特征字段的处理,则所述延时单元将吸收所述TCAM处理单元110和所述查表单元120的延时,先存储着4个特征字段,让所述TCAM处理单元110和所述查表单元120先处理两个,并且存储先处理的2个特征字段对应的匹配结果和查询结果;待所述特征字段都处理完了,也依据每一特征字段完成了对报文的第一次操作和第二次操作之后,输出报文给下一个处理结构或由所述装置转发给下一装置。在具体的实现过程中,也可以采用能同时处理4个特征字段的TCAM处理单元和查表单元来实现报文处理转发。通常能够同时处理特征字段个数越多,则TCAM处理单元和查表单元的结构就复杂,可能需要更多的TCAM或处理器可能需要支撑能同时并发处理多条可编程指令,如支持同时执行多条超长指令,这将导致装置的硬件成本增加;而在本实施例中,通过延时单元的设置,可以很好的处理以上问题。
在具体的实现过程中,每一个所述装置可认为对应了一个所述转发节点,在指定的所述处理结构处理完之后,所述装置将处理后的报文发送到下一转发节点。当所述报文需要经过两个以上所述处理结构时,在前一个所述处理结构完成所述第一次操作和第二操作之后,会将处理后的报文以及所述报文对应的报文描述符发送到后一处理结构中,由后一处理结构继续处理,最后一个处理所述报文及报文描述符的处理结构,在处理完所述第一次操作和所述第二次操作后将直接向下一装置发送处理后的所述报文。
其中,所述指定的处理结构,可以为n+1个所述处理结构中的一个或多个。
实施例二:
如图5所示,本实施例还提供了一种报文转发方法,应用于包括至少一个处理结构的装置中,所述处理结构包括TCAM处理单元及查表单元;
步骤S110:通过所述TCAM处理单元从报文及报文描述符中提取特征字段,将所述特征字段与TCAM条目进行匹配形成匹配结果;
步骤S120:依据所述匹配结果,采用所述TCAM处理单元中的可编程指令对所述报文及报文描述符执行第一次操作并形成键值域索引;
步骤S130:通过所述查表单元提取所述键值域索引,依据所述键值域索引查找键值,依据所述键值域索引进行查表形成查表结果;
步骤S140:根据所述查表结果采用所述查表单元中的可编程指令对所述报文及所述报文描述符执行第二次操作;
步骤S150:在指定的所述处理结构执行完所述第一次操作和所述第二次操作后,发送所述处理结构处理后的所述报文。
本实施例所述的方法可以采用如实施例一中所述的装置进行来实现,结合所述TCAM处理单元及所述查表单元,对报文进行第一次操作和第二次操作,以达到报文处理转发的目的。所述TCAM处理单元和所述查表单元的具体结构可参见实施例一中的详细描述。
在步骤S110中从描述输入中提取特征字段可以由实施例一中所述的TCAM处理单元中的第一提取单元来执行;步骤S110中将所述特征字段与TCAM条目进行匹配形成匹配结果,可以由实施例一中所述的TCAM处理单元的匹配模块来执行。所述步骤S120可以由实施例一中所述的TCAM处理单元的第一执行模块来执行。
本实施例所述的方法采用所述TCAM处理单元及所述查表单元对报文进行处理转发,同时兼具了采用TCAM处理单元和可编程器件的优点,成本相对于仅采用可编程器件的装置具有成本低及功耗低的优点;同时相对于固化芯片具有灵活性高,方便后续进行业务调整以及业务拓展。在本实施例中所述TCAM处理单元主要是完成一些可以转换条件判断或分支选择操作的基本处理。
所述TCAM处理单元包括***逻辑模块;
所述方法还包括:通过所述***逻辑模块将所述特征字段中的指定字段转化成所述TCAM条目的匹配字段;所述匹配字段用于与所述TCAM条目进行匹配。
在具体的实现过程中,有些特征字段与匹配字段相同,即TCAM也能处理完成;但是对于具有范围比较或逻辑运算的特征字段,在本实施例中可以通过TCAM单元的***逻辑电路进行转化,采用***逻辑电路进行转换,能简化TCAM的处理。
进一步地,如图6所示,所述步骤S120包括:
步骤S121:依据所述匹配结果获取所述第一次操作的操作信息;
步骤S122:依据所述操作信息,对所述报文及报文描述符执行第一次操作;
步骤S123:依据所述匹配结果查询对应所述匹配结果的键值域索引。
本实施例中所述执行单元执行的第一次操作,可能是对报文转发路径相关信息的修改,如将上送报文的上送标记置为有效等操作。具体的详细阐述可以参见实施例一中对应部分。在本发明实施例中所述第一次操作包括一个或多个依据所述匹配结果执行的操作。所述第一次操作的具体详细描述可以参见实施例一中的对应部分。
进一步地,
所述方法还包括:
将所述键值形成预定的键值结构;
所述步骤S130具体可包括为:依据键值结构进行查表形成所述查表结果。
优选地,所述步骤S130包括:依据所述查表结果获取所述第二次操作的操作信息;及依据所述操作信息,对所述报文执行第二次操作。
所述查表结果可为:键值域索引是否与预先存储的匹配信息的中的索引是否匹配的结果,具体匹配那一条匹配信息。如键值A或所述键值结构A与匹配信息的索引B匹配成功;则依据所述匹配结果,提对应于所述索引B的操作信息;再依据所述操作信息执行第二次操作。所述操作信息包括具体执行的操作,操作类型和/或操作参数等信息。
优选地,所述TCAM处理单元及所述查表单元中的所述可编程指令均为超长指令;采用超长指令具有理效率高的优点。
为了简化所述TCAM处理单元及查表单元的结构,降低硬件成本,假设所述TCAM处理单元及所述查表单元,一次能够处理N个所述特征字段;所述N为不小于1的整数;则在本实施例中增设使部分特征字延时后处理的延时单元;具体地,所述方法还包括:当所述特征字段的个数M大于所述N时,通过所述延时单元存储所述M个所述特征字段以及所述特征字段对应的匹配结果和查表结果,等待所述TCAM处理单元及所述查表单元对所述M个所述特征字段处理之后,输出所述报文。
以下基于实施例一和/或实施例二,提供两个具体示例:
示例一:
如图1所示,本示例提供一个***包括n个报文转发处理装置CELL11;其中,所述n为不小1的整数;一个所述处理结构CELL11包括可认为是对应一个路径转发节点。每一个CELL11的内部结构可为如图7所示;具体包括延时单元200(英文缩写MF_DELAY)、TCAM处理单元209、查表单元210。
所述TCAM处理单元209包括、提取模块201(英文缩写T_KEY-SEL)、***逻辑模块202(英文缩写LOGIC)、TCAM模块203(英文缩写TCAM)、获取模块204(英文缩写T_ACTION)以及执行模块205(英文缩写T_EX)。所述提取模块201对应于实施例一中的第一提取模块;所述TCAM模块对应于实施例中的匹配模块;所述获获取模块及所述执行模块共同对应实施例一中的第一执行模块。
所述查表单元210包括、提取模块206(英文缩写S_KEY-SEL)、表项模块211(英文缩写TBL)、获取模块208(英文缩写S_ACTION)以及执行模块207(英文缩写S_EX)。所述提取模块201对应于实施例一中的第二提取模块;所述表项模块对应于实施例中的查表模块;所述获获取模块及所述执行模块共同对应实施例一中的第二执行模块。
所述延时单元200,用于吸收条目匹配和表项查找的延时,即实现部分特征字段的延时处处理;
提取模块201,用于提取从描述输入MF-IN中匹配需要的特征字段;所述MF-OUT为对所述MF-IN处理之后的输出结果;
***逻辑模块202,用于提升TCAM模块203的处理能力;
TCAM模块203,用于存储由微码转换来的匹配条目,用于跟模块201提取的特征字段以及由202转换后的字段作比较匹配;所述匹配条目为TCAM条目。
获取模块204,用于根据TCAM匹配结果获取与之对应的ACTION信息;
执行模块205,用于解析并执行从模块204中获取的ACTION信息对应的自定义指令,并形成键值域索引。
提取模块206,用于根据从模块205中获取的ACTION信息中获取查表的键值域索引并提取键值字段组装成键值结构向查表单元发送;
表项模块211,用于依据所述键值结构进行查表;
获取模块207,用于根据查表返回的结果获取与之对应的ACTION信息;
执行模块208,用于解析并执行从模块207中获取的ACTION信息对应的自定义指令。
示例二:
基于示例一中所述的结构,本示例对报文的转发处理步骤如下:
步骤1:对进入到CELL单元的根据微码编写的规则提取MF_IN中的特征字段给TCAM处理单元209;由TCAM处理单元进行TCAM匹配,并根据匹配结果获取对应的ACTION信息;
步骤2:对获取的ACTION信息进行解码,根据解码出的指令修改报文,并生成查找用于查表的键值域索引;
步骤3:根据键值域索引提取键值字段并按约定的键值结构拼接后发送给表项模块;由表项模块进行查表处理;
步骤4:根据查表返回的结果获取对应的ACTION信息;
步骤5:获取的ACTION信息进行解码,根据解码出的指令修改报文,决策产生下一CELL11的入口地址;
步骤8:报文经过多个节点处理后决策出真正的出端口和下一跳节点,完成报文的转发;
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种报文处理转发装置,其特征在于,所述装置包括至少一个处理结构;每一个所述处理结构包括TCAM处理单元及查表单元;
所述TCAM处理单元包括:
第一提取模块,用于从对应于报文及报文描述符中提取特征字段;
匹配模块,用于将所述特征字段与TCAM条目进行匹配,形成匹配结果;
第一执行模块,为可编程模块,用于依据所述匹配结果,对所述报文及所述报文描述符执行第一次操作并形成键值域索引;
所述查表单元包括:
第二提取模块,用于接收所述键值域索引并依据所述键值域索引获取键值字段;
查表模块,用于依据所述键值字段进行查表,形成查表结果;
第二执行模块,为可编程模块,用于根据所述查表结果对所述报文及所述报文描述输入执行第二次操作;
所述处理结构,还用于在指定的所述处理结构执行完所述第一次操作和所述第二次操作后,发送所述处理结构处理后的所述报文。
2.根据权利要求1所述的装置,其特征在于,
所述TCAM处理单元还包括:
***逻辑模块,用于将所述特征字段中的指定字段转化成所述TCAM条目的匹配字段,并所述匹配字段发送给所述匹配模块。
3.根据权利要求2所述的装置,其特征在于,
所述TCAM处理单元还包括:
第一获取模块,用于依据所述匹配结果获取所述第一次操作的操作信息;
所述第一执行模块,具体用于依据所述操作信息,对所述报文执行第一次操作并依据匹配结果查询获得对应所述匹配结果的键值域索引。
4.根据权利要求1所述的装置,其特征在于,所述第二提取模块还用于将所述键值字段形成预定的键值结构,并将所述键值结构发给所述查表模块。
5.根据权利要求1或4所述的装置,其特征在于,
所述查表单元包括:
第二获取模块,用于依据所述查表结果获取所述第二次操作的操作信息;
所述第二执行模块,具体用于依据所述操作信息,对所述报文执行第二次操作。
6.根据权利要求1、4或5所述的装置,其特征在于,
所述第一执行模块和所述第二执行模块为超长指令可编程模块。
7.根据权利要求1至5任一项所述的装置,其特征在于,
所述TCAM处理单元及所述查表单元,一次能够处理N个所述特征字段;所述N为不小于1的整数;
所述装置还包括延时单元,且分别于所述TCAM处理单元及所述可编程逻辑指令查询单元相连;
所述延时单元,用于当所述特征字段的个数M大于所述N时,存储所述M个所述特征字段以及所述特征字段对应的匹配结果和查表结果,等待所述TCAM处理单元及所述查表单元对所述M个所述特征字段处理之后,输出所述报文。
8.一种报文处理转发方法,其特征在于,应用于包括至少一个处理结构的装置中,所述处理结构包括TCAM处理单元及查表单元;
通过所述TCAM处理单元从对应于报文及报文描述符中提取特征字段;
依据所述匹配结果,采用所述TCAM处理单元中的可编程指令对所述报文及所述报文描述符执行第一次操作并形成键值域索引;
通过所述查表单元接收所述键值域索引,依据所述键值域索引查找键值字段,依据所述键值字段进行查表形成查表结果;
根据所述查表结果采用所述查表单元中的可编程指令对所述报文及所述报文描述符执行第二次操作;
在指定的所述处理结构执行完所述第一次操作和所述第二次操作后,发送所述处理结构处理后的所述报文。
9.根据权利要求8所述的方法,其特征在于,
所述TCAM处理单元包括***逻辑模块;
所述方法还包括:
通过所述***逻辑模块将所述特征字段中的指定字段转化成所述TCAM条目的匹配字段;
所述匹配字段用于与所述TCAM条目进行匹配。
10.根据权利要求9所述的方法,其特征在于,
所述依据所述匹配结果,采用所述TCAM处理单元中的可编程指令对所述报文执行第一次操作并形成键值域索引包括:
依据所述匹配结果获取所述第一次操作的操作信息;
依据所述操作信息,对所述报文执行第一次操作;
依据所述匹配结果查询对应所述匹配结果的键值域索引。
11.根据权利要求8所述的方法,其特征在于,
所述方法还包括:
将所述键值字段形成预定的键值结构;
所述依据所述键值字段进行查表形成查表结果具体为:
依据键值结构进行查表形成所述查表结果。
12.根据权利要求8或11所述的方法,其特征在于,
所述根据所述查表结果采用所述查表单元中的可编程指令对所述报文执行第二次操作包括:
依据所述查表结果获取所述第二次操作的操作信息;
依据所述操作信息,对所述报文执行第二次操作。
13.根据权利要求8、11或12所述的方法,其特征在于,
所述TCAM处理单元和查表单元中的可编程指令为超长指令。
14.根据权利要求8至12任一项所述的方法,其特征在于,
所述TCAM处理单元及所述查表单元,一次能够处理N个所述特征字段;
所述N为不小于1的整数;所述装置还包括延时单元;
所述方法还包括:当所述特征字段的个数M大于所述N时,通过所述延时单元存储所述M个所述特征字段以及所述特征字段对应的匹配结果和查表结果,等待所述TCAM处理单元及所述查表单元对所述M个所述特征字段处理之后,输出所述报文。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410422447.8A CN105376159A (zh) | 2014-08-25 | 2014-08-25 | 报文处理转发装置及方法 |
PCT/CN2015/074577 WO2016029684A1 (zh) | 2014-08-25 | 2015-03-19 | 报文处理转发装置、方法和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410422447.8A CN105376159A (zh) | 2014-08-25 | 2014-08-25 | 报文处理转发装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105376159A true CN105376159A (zh) | 2016-03-02 |
Family
ID=55377979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410422447.8A Pending CN105376159A (zh) | 2014-08-25 | 2014-08-25 | 报文处理转发装置及方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105376159A (zh) |
WO (1) | WO2016029684A1 (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106572034A (zh) * | 2016-11-07 | 2017-04-19 | 深圳市楠菲微电子有限公司 | 一种应用于交换机芯片的网络报文可编程处理方法 |
CN107342948A (zh) * | 2017-06-09 | 2017-11-10 | 烽火通信科技股份有限公司 | 一种基于tcam的数据流识别处理装置、***和方法 |
CN107579960A (zh) * | 2017-08-22 | 2018-01-12 | 深圳市盛路物联通讯技术有限公司 | 一种数据过滤方法及装置 |
CN107689962A (zh) * | 2017-09-25 | 2018-02-13 | 深圳市盛路物联通讯技术有限公司 | 一种数据流过滤方法及*** |
CN107786447A (zh) * | 2017-11-09 | 2018-03-09 | 锐捷网络股份有限公司 | 一种基于fpga的报文转发方法及设备 |
CN108270800A (zh) * | 2018-04-26 | 2018-07-10 | 济南浪潮高新科技投资发展有限公司 | 一种基于自认证码的报文处理方法和*** |
WO2018177184A1 (zh) * | 2017-03-31 | 2018-10-04 | 深圳市中兴微电子技术有限公司 | 一种实现查表处理的方法及装置、设备、存储介质 |
CN109905322A (zh) * | 2019-04-01 | 2019-06-18 | 盛科网络(苏州)有限公司 | 一种报文匹配信息预处理的方法及装置 |
CN111107042A (zh) * | 2018-10-26 | 2020-05-05 | 广州汽车集团股份有限公司 | 报文解析方法、装置、计算机设备和存储介质 |
WO2022037571A1 (zh) * | 2020-08-21 | 2022-02-24 | 深圳市中兴微电子技术有限公司 | 报文转发方法及装置,和计算机可读存储介质 |
CN115988105A (zh) * | 2022-11-02 | 2023-04-18 | 南京金阵微电子技术有限公司 | 通用流比对方法、验证平台、存储介质及电子设备 |
CN116055397A (zh) * | 2023-03-27 | 2023-05-02 | 井芯微电子技术(天津)有限公司 | 队列表项维护方法与装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107517161B (zh) * | 2016-06-15 | 2021-11-12 | 中兴通讯股份有限公司 | 一种网络处理器查表方法、网络处理器和查表*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787477A (zh) * | 2004-12-09 | 2006-06-14 | 北京三星通信技术研究有限公司 | IPv6路由表的查找方法 |
CN102075404A (zh) * | 2009-11-19 | 2011-05-25 | 华为技术有限公司 | 一种报文检测方法及装置 |
CN103905310A (zh) * | 2014-03-24 | 2014-07-02 | 华为技术有限公司 | 报文处理的方法及转发设备 |
CN103918032A (zh) * | 2011-10-31 | 2014-07-09 | 华为技术有限公司 | 一种在网络设备中进行查表的方法和装置 |
US20140215144A1 (en) * | 2013-01-30 | 2014-07-31 | Marvell Israel (M.I.S.L) Ltd. | Architecture for tcam sharing |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7869411B2 (en) * | 2005-11-21 | 2011-01-11 | Broadcom Corporation | Compact packet operation device and method |
CN101505279B (zh) * | 2009-03-20 | 2012-07-25 | 中国人民解放军信息工程大学 | 一种路由查找方法和装置 |
CN101834802B (zh) * | 2010-05-26 | 2012-08-08 | 华为技术有限公司 | 转发数据包的方法及装置 |
-
2014
- 2014-08-25 CN CN201410422447.8A patent/CN105376159A/zh active Pending
-
2015
- 2015-03-19 WO PCT/CN2015/074577 patent/WO2016029684A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787477A (zh) * | 2004-12-09 | 2006-06-14 | 北京三星通信技术研究有限公司 | IPv6路由表的查找方法 |
CN102075404A (zh) * | 2009-11-19 | 2011-05-25 | 华为技术有限公司 | 一种报文检测方法及装置 |
CN103918032A (zh) * | 2011-10-31 | 2014-07-09 | 华为技术有限公司 | 一种在网络设备中进行查表的方法和装置 |
US20140215144A1 (en) * | 2013-01-30 | 2014-07-31 | Marvell Israel (M.I.S.L) Ltd. | Architecture for tcam sharing |
CN103905310A (zh) * | 2014-03-24 | 2014-07-02 | 华为技术有限公司 | 报文处理的方法及转发设备 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106572034A (zh) * | 2016-11-07 | 2017-04-19 | 深圳市楠菲微电子有限公司 | 一种应用于交换机芯片的网络报文可编程处理方法 |
WO2018177184A1 (zh) * | 2017-03-31 | 2018-10-04 | 深圳市中兴微电子技术有限公司 | 一种实现查表处理的方法及装置、设备、存储介质 |
CN107342948A (zh) * | 2017-06-09 | 2017-11-10 | 烽火通信科技股份有限公司 | 一种基于tcam的数据流识别处理装置、***和方法 |
CN107342948B (zh) * | 2017-06-09 | 2019-08-13 | 烽火通信科技股份有限公司 | 一种基于tcam的数据流识别处理装置、***和方法 |
CN107579960A (zh) * | 2017-08-22 | 2018-01-12 | 深圳市盛路物联通讯技术有限公司 | 一种数据过滤方法及装置 |
CN107689962A (zh) * | 2017-09-25 | 2018-02-13 | 深圳市盛路物联通讯技术有限公司 | 一种数据流过滤方法及*** |
CN107689962B (zh) * | 2017-09-25 | 2021-03-19 | 深圳市盛路物联通讯技术有限公司 | 一种数据流过滤方法及*** |
CN107786447B (zh) * | 2017-11-09 | 2020-06-16 | 锐捷网络股份有限公司 | 一种基于fpga的报文转发方法及设备 |
CN107786447A (zh) * | 2017-11-09 | 2018-03-09 | 锐捷网络股份有限公司 | 一种基于fpga的报文转发方法及设备 |
CN108270800A (zh) * | 2018-04-26 | 2018-07-10 | 济南浪潮高新科技投资发展有限公司 | 一种基于自认证码的报文处理方法和*** |
CN108270800B (zh) * | 2018-04-26 | 2020-08-04 | 浪潮集团有限公司 | 一种基于自认证码的报文处理方法和*** |
CN111107042A (zh) * | 2018-10-26 | 2020-05-05 | 广州汽车集团股份有限公司 | 报文解析方法、装置、计算机设备和存储介质 |
CN111107042B (zh) * | 2018-10-26 | 2021-03-09 | 广州汽车集团股份有限公司 | 报文解析方法、装置、计算机设备和存储介质 |
CN109905322A (zh) * | 2019-04-01 | 2019-06-18 | 盛科网络(苏州)有限公司 | 一种报文匹配信息预处理的方法及装置 |
CN109905322B (zh) * | 2019-04-01 | 2021-05-07 | 盛科网络(苏州)有限公司 | 一种报文匹配信息预处理的方法及装置 |
WO2022037571A1 (zh) * | 2020-08-21 | 2022-02-24 | 深圳市中兴微电子技术有限公司 | 报文转发方法及装置,和计算机可读存储介质 |
CN115988105A (zh) * | 2022-11-02 | 2023-04-18 | 南京金阵微电子技术有限公司 | 通用流比对方法、验证平台、存储介质及电子设备 |
CN115988105B (zh) * | 2022-11-02 | 2023-11-07 | 南京金阵微电子技术有限公司 | 通用流比对方法、验证平台、存储介质及电子设备 |
CN116055397A (zh) * | 2023-03-27 | 2023-05-02 | 井芯微电子技术(天津)有限公司 | 队列表项维护方法与装置 |
CN116055397B (zh) * | 2023-03-27 | 2023-08-18 | 井芯微电子技术(天津)有限公司 | 队列表项维护方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2016029684A1 (zh) | 2016-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105376159A (zh) | 报文处理转发装置及方法 | |
CN100472480C (zh) | 分组处理方法和装置 | |
US10394784B2 (en) | Technologies for management of lookup tables | |
CN108768866B (zh) | 组播报文跨卡转发方法、装置、网络设备及可读存储介质 | |
EP3282649B1 (en) | Data packet forwarding | |
CN102577273B (zh) | 反复解析和分类 | |
CN108616376B (zh) | 一种fc网络***故障动态重构方法 | |
CN109921995B (zh) | 一种配置地址表的方法、fpga和应用该fpga的网络设备 | |
CN101242362A (zh) | 查找键值生成装置及方法 | |
CN101620623A (zh) | 内容可寻址存储器表项管理方法和装置 | |
KR101754618B1 (ko) | 소프트웨어 정의 네트워크 기반의 가상 네트워크 동적 생성 방법 및 그 장치 | |
CN111614580A (zh) | 一种数据转发方法、装置及设备 | |
CN106170956A (zh) | 一种路由方法和设备 | |
CN105677605A (zh) | 一种高效的可配置片上互联***及其实现方法、装置 | |
CN104025520A (zh) | 查找表的创建方法、查询方法、控制器、转发设备和*** | |
CN113098770A (zh) | 报文发送方法、路由表项的生成方法、装置及存储介质 | |
CN101471841A (zh) | 路由表维护方法及装置 | |
CN110932890A (zh) | 一种数据传输方法、服务器及计算机可读存储介质 | |
CN106559339B (zh) | 一种报文处理方法及装置 | |
CN106453091A (zh) | 路由器转发平面的等价路由管理方法和装置 | |
CN115883681A (zh) | 报文解析方法、装置、电子设备及存储介质 | |
US7940755B2 (en) | Lookup engine with programmable memory topology | |
CN101510837B (zh) | 以太网桥设备、迁移聚合口地址的方法及装置 | |
CN104009924A (zh) | 一种基于tcam和fpga的报文处理方法及装置 | |
US20020009056A1 (en) | Route retrieving system, method therefor and a router device to be used in the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160302 |
|
RJ01 | Rejection of invention patent application after publication |