CN101242362B - 查找键值生成装置及方法 - Google Patents
查找键值生成装置及方法 Download PDFInfo
- Publication number
- CN101242362B CN101242362B CN2008100074368A CN200810007436A CN101242362B CN 101242362 B CN101242362 B CN 101242362B CN 2008100074368 A CN2008100074368 A CN 2008100074368A CN 200810007436 A CN200810007436 A CN 200810007436A CN 101242362 B CN101242362 B CN 101242362B
- Authority
- CN
- China
- Prior art keywords
- key value
- data block
- generation
- finds
- front stage
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例涉及一种查找键值生成装置及方法,采用多个可编程控制查找键值产生的查找键值产生单元并行处理的方法,同时产生多个查找键值,从而解决了高速的报文转发对报文分类查找键值生成装置的性能要求的问题比用软件来产生查找键值的装置性能要高;设计了比较专用的微码控制指令集,通过微码程序分3个粒度对输入的报文数据及前级电路的处理结果进行了处理,实现了对查找键值产生单元的灵活性的需求,满足了不同网络部署策略或者不同客户对报文分类的差异化需求。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种查找键值生成装置及方法。
背景技术
在通信网络设备中,特别是交换机和路由器中,为了实现对不同的流进行不同的处理,需要对接收到的报文,进行报文分类处理,简称流分类。将报文进行分类之后,才能决定网络设备将要对其进行的具体操作,如:决定转发策略或者丢弃。具体的应用如访问控制列表,区别服务中需要的流分类,都需要从报文和客户设置的网络参数中提取关键的域值来进行报文分类,从而提供不同的转发策略和服务质量。但是,对于不同的客户、网络部署或者网络介质,进行报文分类时,所关心的域值是不相同的,因此,进行报文分类的灵活性和可扩展性是非常重要的。
目前,在网络设备上进行报文分类的方法主要有两类:一类是,应用高速的专用集成电路(Application Specific Integrated Circuits,以下简称:ASIC)提取报文头或报文数据中的相关域值,例如,标准的IP报文分类用的报文五元组,包括:源IP、目的IP、源端口、目的端口、协议类型号,以及服务质量的相关参数,作为查询内容寻址内存(Content Addressable Memory,以下简称:CAM)或三重内容寻址内存(Ternary Content Addressable Memory,以下简称:TCAM)用的查找键值;查询CAM或TCAM得到相应的索引值,再去查找线性表得到相关的动作表项;网络设备再根据动作表项对报文进行相关的操作,例如:决定转发策略或丢弃。
这种基于ASIC电路提取报文头或报文数据中的相关域值的报文分类方法,能保证高速转发报文的要求,但是灵活性很差,对于不同用户或者不同网络部署的报文转发策略,这种固定的报文分类方法不能满足差异化的需求。
另一类是,一般在低速网络设备上,有应用软件编程的方法来对报文进行分类的方法,可以根据需要,通过编写软件代码,确定提取报文头或报文数据中的哪些信息作为报文分类所需的关键域值,从而满足对不同协议或者不同网路部署引入的报文分类的不同的需求。
软件编程对报文进行分类的优点是灵活性高,能够满足差异化的需求。然而,目前应用的软件编程方法的最大瓶颈是:通用的CPU架构以及程序代码的运算效率,制约了软件编程进行报文分类的方法在高速网络设备上的应用。
发明内容
本发明实施例提供一种查找键值生成装置及方法,对于不同协议、不同网络部署或不同用户的报文转发策略,能够实现报文的灵活分类,还能够满足报文高速转发的要求。
本发明实施例提供了一种查找键值生成装置,包括:提取单元、处理方式配置单元、控制单元以及多个查找键值产生单元,
所述提取单元,用于提取报文数据及前级电路的处理结果;所述前级电路的处理结果包括程序指针,用于指示对应的微码指令;
处理方式配置单元存储查找键值处理方式;所述处理方式配置单元具体为微码指令存储器,用于存储控制查找键值产生单元的微码指令;
控制单元根据提取的前级电路的处理结果,按照所述相应的查找键值处理方式,控制查找键值的生成;所述控制单元具体为微码指令控制器,用于更新所述程序指针指示所述微码指令在所述微码指令存储器的位置,与所述微码指令存储器相连接,并控制所述查找键值产生单元生成所述查找键值;
多个查找键值产生单元在所述控制单元的控制下,并行处理多个所述报文数据和/或前级电路的处理结果,生成多个查找键值;所述多个查找键值产生单元是一组功能相同的通过可编程的微码控制的查找键值产生单元。
由以上技术方案可知,本发明实施例的查找键值生成装置及方法,通过基于可编程的查找键值产生单元来生成查找键值,设计了比较专用的微码控制指令集,比用软件来产生查找键值的装置性能要高,实现了对查找键值产生单元的灵活性的需求,满足了不同网络部署策略或者不同客户对报文分类的差异化需求;采用并行处理的方法同时产生多个查找键值,从而解决了高速的报文转发对报文分类查找键值生成装置的性能要求的问题。
下面通过具体实施例并结合附图对本发明做进一步的详细描述。
附图说明
图1为本发明查找键值生成装置实施例一的结构示意图;
图2为本发明查找键值生成装置实施例二的结构示意图;
图3为包括本发明实施例查找键值生成装置的报文分类操作装置的结构示意图;
图4为本发明查找键值生成方法实施例一的流程示意图;
图5为本发明查找键值生成方法实施例中使用的互联网协议第四版(IPV4)报文内容的示意图。
具体实施方式
本发明实施例的方案是根据输入的报文数据及前级电路的处理结果,由可编程的查找键值产生单元生成需要的查找键值;然后再利用该查找键值查找CAM或TCAM,或其他相关算法查找引擎,匹配得到一个索引值,将输入的报文进行分类;再用得到的索引值去查找相关的线性表,得到该分类后的报文对应的动作表项,决定报文的转发策略或丢弃报文。
如图1所示,为本发明查找键值生成装置实施例一的结构示意图,包括:提取单元1,用于提取报文数据及前级电路的处理结果;处理方式配置单元2,用于存储查找键值处理方式;控制单元3,用于根据提取单元1提取的前级电路的处理结果,按处理方式配置单元2中存储的相应的查找键值处理方式控制查找键值的生成;多个查找键值产生单元4,用于在控制单元3的控制下,并行处理提取单元1提取的多个报文数据和/或前级电路的处理结果,生成多个查找键值。进一步还可以包括存储单元5,用于存储多个查找键值产生单元4生成的多个查找键值。
提取单元1提取多个报文数据及前级电路的处理结果作为输入。其中,报文数据主要是从报文头及报文内部提取的部分内容,例如,可为现有技术中所述的报文五元组中的任意一个或多个数据;前级电路的处理结果主要包括初始程序指针及一些人为定义的和报文内容无关的属性,前级电路的处理结果中至少要包括初始程序指针,本发明实施例中的查找键值生成是靠可编程的该查找键值生成装置产生的,该初始程序指针用于指示输入报文对应的处理该报文的微码程序的初始位置,在该前级电路的处理结果中还可以包括有其他和输入的报文内容无关的信息,例如:报文进入路由器的端口号、用户对这个端口设置的一些人为定义属性,例如:这个端口报文的优先级,或者对于这个端口的报文是要做2层流分类还是3层流分类等指示信息。处理方式配置单元2存储了多种查找键值的处理方式,控制单元3根据提取单元1提取的前级电路的处理结果,主要是前级电路处理结果中的初始程序指针,找到处理方式配置单元2中存储的相应的查找键值的处理方式控制查找键值的生成;即按照初始程序指针的指示,将各个提取出来的报文数据及前级电路的处理结果分配给不同的查找键值产生单元4,来生成不同的查找键值。然后再根据微码程序指示,存储单元5把各个查找键值产生单元4的处理结果,收集在该存储单元5中;再从该存储单元5中取出查找键值,按照顺序发送给CAM或TCAM,或者其他的算法查找引擎。
其中多个查找键值产生单元4是一组功能相同的通过可编程的微码控制的查找键值产生单元4,根据输入的报文数据和/或前级电路的处理结果的不同,其生成的查找键值的类型和长度也都可以不相同。在具体实现方案中,需要根据报文转发的处理性能要求和报文转发电路的工作频率,以及微码的处理效率来决定需要几个查找键值产生单元来同时生成查找键值。查找键值产生单元4的个数可以用下述基本公式推算得到:假设该报文转发的处理性能是xMPPS(每秒钟处理x兆个报文),报文转发电路的时钟频率是cMHz,即要求每c/x个周期处理一个报文,假设单个查找键值产生单元4生成某种类型的查找键值要y个周期(微码程序执行所需要的时延加上电路流水线的固定时延),可以推算得到所需要的查找键值产生单元4的个数N为y/(c/x)个,即可以达到系统处理性能的要求。由此可见,通过合理的选择,该多个查找键值产生单元4并行处理报文的流量吞吐率可以达到ASIC电路处理相同报文的流量吞吐率,因此,并行的处理架构能够满足高速网络设备性能的要求、可扩展性好。
本实施例采用的方法是通过基于可编程的查找键值产生单元来生成查找键值,设计了比较专用的微码控制指令集,比用软件来产生查找键值的装置性能要高;但是比起ASIC电路,这种灵活性还是存在对该查找键值生成装置的性能的牺牲,单靠提高单个可编程的查找键值产生单元的工作频率来提高其处理性能,始终受到工艺的限制,不能满足更高性能的要求。因此,本实施例采用并行处理的方法同时产生多个查找键值,从而解决了高速的报文转发对报文分类查找键值生成装置的性能要求的问题。
如图2所示,为本发明查找键值生成装置实施例二的结构示意图,本实施例主要用以说明一个查找键值产生单元4的内部结构。查找键值产生单元4可包括:块选择电路41用于从报文数据和/或前级电路的处理结果提取出数据块;键值提取模块42用于在所述控制单元的控制下,根据块选择电路41提取的数据块生成查找键值。
为了实现可以更加灵活的生成查找键值,该查找键值产生单元4还可以包括字节间重排序电路43。此时,块选择电路41用于从报文数据和/或前级电路的处理结果中提取第一数据块;字节间重排序电路43用于将第一数据块进行字节间重排序,生成第二数据块;并且键值提取模块42用于在所述控制单元的控制下,根据第一数据块或第二数据块生成查找键值。
该查找键值产生单元4还可以包括字节内重排序电路44,实现比上述两种装置都灵活,并且基于比特粒度的查找键值生成装置。块选择电路41用于从报文数据和/或前级电路的处理结果中提取第一数据块;字节间重排序电路43用于将第一数据块进行字节间重排序,生成第二数据块;字节内重排序电路44用于将第二数据块,进行字节内重排序,生成第三数据块;键值提取模块42用于在所述控制单元的控制下,根据第一数据块或第二数据块或第三数据块生成查找键值。
在本实施例中的查找键值产生单元中还包括有键值寄存器45,用于存储块选择电路41或字节间重排序电路43或字节内重排序电路44生成的数据块中提取的查找键值。
进一步的,本实施例中的处理方式配置单元2具体可以为微码指令存储器21,用于存储控制查找键值产生单元4中块选择电路41、字节间重排序电路43、以及字节内重排序电路44的微码指令集,即查找键值的处理方式;控制单元3具体可以为微码指令控制器31,用于更新程序指针指示微码指令在微码指令存储器21的位置;并控制查找键值产生单元4中的块选择电路41、字节间重排序电路43、以及字节内重排序电路44生成查找键值。
该查找键值产生单元4的工作过程如下:
查找键值产生单元4接收到提取单元1提取的报文数据及前级电路的处理结果后,微码指令控制器31用于根据前级电路的处理结果给出对应的微码指令存储器21中的微码程序的初始程序指针更新程序指针,并从微码指令存储器21中读出第一微码指令201;查找键值产生单元4中的块选择电路41用于根据微码指令控制器31解析出来的第一微码指令201,从报文数据中或者报文数据和前级电路的处理结果中提取出第一数据块A;字节间重排序电路43根据第二微码指令202,即从初始程序指针所指示的微码指令存储器21的程序顺序向下执行得到的微码指令,将提取出的第一数据块A以字节为单位重新排序生成第二数据块B;字节内重排序电路44根据第三微码指令203,将第二数据块B以比特为单位在字节内进行重新排序生成第三数据块C;键值提取模块42再根据块选择电路41提取的第一数据块A,或者字节间重排序电路43提取的第二数据块B,或者字节内重排序电路44提取的第三数据块C生成查找键值;键值寄存器45根据第四微码指令204发送的掩码指令,把数据块C中经字节间重排序电路43或字节内重排序电路44排序好的,需要的某几位bit值写入键值寄存器45对应的位置,完成查找键值的生成。微码指令控制器31根据微码指令的执行情况一直控制更新程序指针,直到对应的处理程序执行完毕。
其中,块选择电路41、字节间重排序电路43、字节内重排序电路44,依次分3个粒度对输入的报文数据或前级电路的处理结果进行了提取或者移位,这样的分级结构,比较直接的以比特为粒度进行提取或移位,可减少实现电路的面积。块选择电路41,可以实现以任意字节为起始位置的,固定字节数,整块数据的提取;字节间重排序电路43,可以实现字节间的任意排序,不受初始位置的限制;字节内重排序电路44,可以以比特数据为单位实现字节内部的循环移位。上述三个功能电路相结合,就可以实现以比特为粒度的对于任意数据块的任意位置的重排序。
本实施例提供的查找键值产生单元的内部具体结构,通过块选择电路41、字节间重排序电路43、字节内重排序电路44,依次分3个粒度对输入的报文数据或前级电路的处理结果进行了处理;并且还可以通过微码程序对上述三个电路进行控制,实现了对查找键值产生单元的灵活性的需求,满足了不同网络部署策略或者不同客户对报文分类的差异化需求。
如图3所示,为本发明实施例报文分类操作装置的结构示意图。基于上述两个实施例的查找键值生成装置结构,结合报文分类及操作装置,即可组成整个报文分类的装置。具体包括:查找键值产生单元组101,是一组并行处理的多个单元,用于同时生成多个查找键值;其产生的查找键值送入一个或多个CAM,或者一个或多个TCAM,或者其他相关的算法查找引擎102中,匹配CAM或TCAM或其他相关的算法查找引擎102中的对应值,得到一个索引值;再根据这个索引值去查找相关的动作线性表103,得到对应的动作表项,网络设备再按照这个动作表项定义的内容去操作报文,决定转发策略或丢弃。
如图4所示,为本发明查找键值生成方法实施例一的流程示意图,具体步骤如下:
步骤401、提取报文数据及前级电路的处理结果;
报文数据为要进行报文分类的报文内部的数据,例如,可为现有技术中所述的报文五元组中的任意一个或多个数据;前级电路的处理结果中至少要包括初始程序指针,本发明实施例中的查找键值生成是靠可编程的查找键值生成装置产生的,该初始程序指针用于指示输入报文对应的处理该报文的微码程序的初始位置,在该前级电路的处理结果中还可以包括有其他和输入的报文内容无关的信息,例如:报文进入路由器的端口号、用户对这个端口设置的一些人为定义属性,例如:这个端口报文的优先级,或者对于这个端口的报文是要做2层流分类还是3层流分类等指示信息;
步骤402、根据提取的前级电路的处理结果,确定相应的查找键值处理方式;
步骤403、按照相应的查找键值处理方式,并行处理提取的多个报文数据和/或前级电路的处理结果,同时生成多个查找键值;
由于利用可编程的查找键值生成装置不如ASIC电路对报文处理的速度快,所以采用了并行的多个电路同时对多个报文数据进行处理,这样可以在处理一个报文的时间内生成多个查找键值,加快了报文的处理速度;
进一步的,还包括:步骤404、存储同时生成的多个查找键值。
收集的多个查找键值,再被按照一定的顺序取出,发送给CAM之类的查找引擎,对报文进行分类。
本实施例采用的方法是通过基于可编程的查找键值产生单元来生成查找键值,设计了比较专用的微码控制器结构和指令集,比用软件来产生查找键值的方法性能要高;但是比起ASIC电路产生查找键值的方法,该方法还是存在对电路性能的牺牲,单靠提高单个可编程的查找键值产生单元的工作频率来提高处理性能,始终受到工艺的限制,不能满足更高处理性能的要求,因此,本实施例采用并行处理的方法同时产生多个查找键值,从而解决了高速的报文转发对报文分类查找键值生成装置的性能要求的问题。
本发明查找键值生成方法实施例二的具体步骤如下:
步骤501、提取报文数据及前级电路的处理结果;
步骤502、根据提取的前级电路的处理结果,确定相应的查找键值处理方式;
步骤503、按照相应的查找键值处理方式,并行处理提取的多个报文数据和/或前级电路的处理结果,同时生成多个查找键值;
该并行处理生成查找键值的过程中对每个报文数据及前级电路的处理结果的处理分别如下:
步骤5031、从报文数据和/或前级电路的处理结果中提取第一数据块;
步骤5032、将第一数据块进行字节间重排序,生成第二数据块;
步骤5033、将第二数据块进行字节内重排序,生成第三数据块;
步骤5034、根据第一数据块或第二数据块或第三数据块,生成查找键值。
上述第一数据块或第二数据块或第三数据块均可以生成所需的查找键值,具体处理如下例所述:
以IPV4网络的报文分类为例,如图5所示,为IPV4报文的内容,第一行0~3为十位数字,第二行0~9为个位数字,每行都有32bit数据,每两个“+”间表示1bit,每个格子中为该报文中的某一种域值数据。假设报文分类所关心的域值有:{Source Address[31:8],Destination Address[31:8],Protocol[7:0],Type of Service[2:0],Ingress Port[4:0]},其中,Destination Address和Source Address分别占用了报文内容中的一行32bit数据,但实际只需要高24位地址作为最后需要的查找键值,Type of Service有8bit,该例子中报文分类只需要前3bit。除了需要从进行分类的报文内容中提取查找键值,还需要从前级电路的处理结果中找到需要的数据,本实施例中为Ingress Port,即进入路由器的端口号,只有5bit,即支持32个入端口。
输入的源数据为以上提到的报文数据和Ingress Port,生成的查找键值有80个bit位。数据块提取一次只能提取40bit数据,字节间和字节内排序都是按照40bit来操作的,因此要提取出上述的数据作为查找键值,过程如下:
1)从IPV4报文数据里提取40bit数据块,Source Address[31:0]和Destination Address[31:24],进行字节间重排序,把Destination Address[31:24]移到Source Address[31:8]后,不需要进行字节内重排序,通过微码指令的控制,将40bit数据块中的[39:8]写入键值寄存器的前32bit,即key[79:48];
2)从IPV4报文数据里再提取40bit数据块,Destination Address[31:0]和Options[31:24],先进行1次字节间重排序,把Destination Address[23:16]移到输出40bit数据块的[7:0],不需要进行字节内重排序,通过微控指令的控制,将输出40bit数据块的[7:0]写入键值寄存器的前40bit中未被写入数据的低8bit,即key[47:40];对提取的40bit数据块,Destination Address[31:0]和Options[31:24],再进行1次字节间重排序,把Destination Address[15:8]移到输出40bit数据块的[39:32],不需要进行字节内重排序,通过微控指令的控制,将输出40bit数据块的[7:0]写入键值寄存器的后40bit中的高8bit,即key[39:32];
3)从IPV4报文数据里再提取40bit数据块,IPV4报文头数据的第3行(包含Protocol域值)和Source Address[31:24],进行字节间重排序,把Protocol[7:0]移到输出40bit数据块的[31:24],不需要进行字节内重排序,通过微控指令的控制,将输出40bit数据块的[31:24]写入键值寄存器的后40bit中的[31:24],即key[31:24];
4)从IPV4报文数据里再提取40bit数据块,IPV4报文头数据的第1行(包含Type of Service域值)和Identification[7:0],进行字节间重排序,把Typeof Service[7:0]移到输出40bit数据块的[23:16],进行字节内重排序,把type ofservice[2:0]移到输出40bit数据块的[23:21],通过微控指令的控制,将输出40bit数据块的[23:21]写入键值寄存器的后40bit中的[23:21],即key[23:21];
5)从前级电路的处理结果中提取数据块(包含Ingress Port域值),进行字节间重排序,把包含Ingress Port[4:0]的8bit字节,移到输出40bit数据块的[23:16],进行字节内重排序,把Ingress Port[4:0]移到输出40bit数据块的[20:16],通过微控指令的控制,将输出40bit数据块的[20:16]写入键值寄存器的后40bit中的[20:16],即key[20:16];
经过上述的微码操作就可以生成一个需要的查找键值。
步骤504、存储同时生成的多个查找键值。
将并行处理的多个报文数据及前级电路的处理结果都进行上述的生成键值操作,将得到的多个键值都存储起来,按照一定的顺序送入一个或多个CAM或TCAM,或者其他的相关算法查找引擎,匹配后得到对应各个查找键值,即各个报文的索引值,再去查找相关的动作线性表,得到对应的动作表项,网络设备再按照这个动作表项的定义去操作报文。
进行数据块提取,可以实现以任意字节为起始位置的,固定字节数,整块数据的提取;字节间重排序可以实现字节的任意排序,不受初始位置的限制;字节内重排序可以实现字节内部的循环移位;三者相结合,就可以实现以比特为粒度的任意位置的数据调整及重排序。而这些任意位置,以任意排序进行的数据调整可以依靠可编程的微码程序来实现。
本发明实施例通过依靠可编程的微码程序来实现提取报文数据及前级电路的处理结果生成不同的查找键值的方法,体现了查找键值生成的灵活性,满足了对不同网络部署策略或者不同客户对报文分类的差异化需求。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种查找键值生成装置,其特征在于,包括:提取单元、处理方式配置单元、控制单元以及多个查找键值产生单元,
所述提取单元,用于提取报文数据及前级电路的处理结果;所述前级电路的处理结果包括程序指针,用于指示对应的微码指令;
所述处理方式配置单元,用于存储查找键值处理方式;所述处理方式配置单元具体为微码指令存储器,用于存储控制所述查找键值产生单元的微码指令;
所述控制单元,用于根据所述提取单元提取的所述前级电路的处理结果,按所述处理方式配置单元中存储的相应的查找键值处理方式控制查找键值的生成;所述控制单元具体为微码指令控制器,用于更新所述程序指针指示所述微码指令在所述微码指令存储器的位置,与所述微码指令存储器相连接,并控制所述查找键值产生单元生成所述查找键值;
所述多个查找键值产生单元,用于在所述控制单元的控制下,并行处理多个所述报文数据和/或前级电路的处理结果,生成多个查找键值;所述多个查找键值产生单元是一组功能相同的通过可编程的微码控制的查找键值产生单元。
2.根据权利要求1所述的查找键值生成装置,其特征在于,所述查找键值产生单元包括:
块选择电路,用于从所述报文数据和/或前级电路的处理结果中提取数据块;
键值提取模块,用于在所述控制单元的控制下,根据所述数据块生成查找键值。
3.根据权利要求1所述的查找键值生成装置,其特征在于,所述查找键值产生单元包括:
块选择电路,用于从所述报文数据和/或前级电路的处理结果中提取第一数据块;
字节间重排序电路,用于将所述第一数据块进行字节间重排序,生成第二数据块;
键值提取模块,用于在所述控制单元的控制下,根据所述第一数据块或所述第二数据块生成查找键值。
4.根据权利要求1所述的查找键值生成装置,其特征在于,所述查找键值产生单元包括:
块选择电路,用于从所述报文数据和/或前级电路的处理结果中提取第一数据块;
字节间重排序电路,用于将所述第一数据块进行字节间重排序,生成第二数据块;
字节内重排序电路,用于将所述第二数据块,进行字节内重排序,生成第三数据块;
键值提取模块,用于在所述控制单元的控制下,根据所述第一数据块或所述第二数据块或所述第三数据块生成查找键值。
5.根据权利要求2-4所述的任一查找键值生成装置,其特征在于,所述查找键值产生单元还包括:键值寄存器,用于存储所述键值提取模块提取的所述查找键值。
6.根据权利要求1-4所述的任一查找键值生成装置,其特征在于,还包括:存储单元,用于存储所述多个查找键值。
7.一种查找键值生成方法,其特征在于,包括:
提取单元提取报文数据及前级电路的处理结果;所述前级电路的处理结果包括程序指针,用于指示对应的微码指令;
处理方式配置单元存储查找键值处理方式;所述处理方式配置单元具体为微码指令存储器,用于存储控制查找键值产生单元的微码指令;
控制单元根据提取的前级电路的处理结果,按照所述相应的查找键值处理方式,控制查找键值的生成;所述控制单元具体为微码指令控制器,用于更新所述程序指针指示所述微码指令在所述微码指令存储器的位置,与所述微码指令存储器相连接,并控制所述查找键值产生单元生成所述查找键值;
多个查找键值产生单元在所述控制单元的控制下,并行处理多个所述报文数据和/或前级电路的处理结果,生成多个查找键值;所述多个查找键值产生单元是一组功能相同的通过可编程的微码控制的查找键值产生单元。
8.根据权利要求7所述的查找键值生成方法,其特征在于,所述并行处理多个所述报文数据和/或前级电路的处理结果,生成多个查找键值具体为:
从所述报文数据和/或前级电路的处理结果中提取数据块;
按照所述相应的查找键值处理方式,根据所述数据块生成查找键值。
9.根据权利要求7所述的查找键值生成方法,其特征在于,所述并行处理多个所述报文数据和/或前级电路的处理结果,生成多个查找键值具体为:
从所述报文数据和/或前级电路的处理结果中提取第一数据块;
将所述第一数据块进行字节间重排序,生成第二数据块;
按照所述相应的查找键值处理方式,根据所述第一数据块或所述第二数据块,生成查找键值。
10.根据权利要求7所述的查找键值生成方法,其特征在于,所述并行处理多个所述报文数据和/或前级电路的处理结果,生成多个查找键值具体为:
从所述报文数据和/或前级电路的处理结果中提取第一数据块;
将所述第一数据块进行字节间重排序,生成第二数据块;
将所述第二数据块进行字节内重排序,生成第三数据块;
按照所述相应的查找键值处理方式,根据所述第一数据块或所述第二数据块或所述第三数据块,生成查找键值。
11.根据权利要求8、9或10所述的查找键值生成方法,其特征在于,在所述生成查找键值之后还包括:存储生成的所述查找键值。
12.根据权利要求11所述的查找键值生成方法,其特征在于在所述存储生成的所述查找键值之后还包括:
将存储的所述查找键值送入一个或多个算法查找引擎,匹配所述算法查找引擎中的对应值,得到一个索引值;
根据所述索引值去查找动作线性表,得到对应的动作表项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100074368A CN101242362B (zh) | 2008-03-07 | 2008-03-07 | 查找键值生成装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100074368A CN101242362B (zh) | 2008-03-07 | 2008-03-07 | 查找键值生成装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101242362A CN101242362A (zh) | 2008-08-13 |
CN101242362B true CN101242362B (zh) | 2010-11-10 |
Family
ID=39933578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100074368A Expired - Fee Related CN101242362B (zh) | 2008-03-07 | 2008-03-07 | 查找键值生成装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101242362B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8599859B2 (en) * | 2009-11-16 | 2013-12-03 | Marvell World Trade Ltd. | Iterative parsing and classification |
US9098601B2 (en) * | 2012-06-27 | 2015-08-04 | Futurewei Technologies, Inc. | Ternary content-addressable memory assisted packet classification |
CN103400485A (zh) * | 2013-07-15 | 2013-11-20 | 深圳博科智能科技有限公司 | 智能无线转发方法及系统 |
CN103560957A (zh) * | 2013-10-15 | 2014-02-05 | 华为技术有限公司 | 查表键值构造方法、微码下发方法、装置及系统 |
EP3761575A1 (en) * | 2014-04-30 | 2021-01-06 | Huawei Technologies Co., Ltd. | Search apparatus and method |
CN104331497A (zh) * | 2014-11-19 | 2015-02-04 | 中国科学院自动化研究所 | 一种利用向量指令并行处理文件索引的方法及装置 |
CN104778097B (zh) * | 2015-03-27 | 2019-01-01 | 新浪网技术(中国)有限公司 | 一种数据恢复方法及装置 |
CN107517161B (zh) * | 2016-06-15 | 2021-11-12 | 中兴通讯股份有限公司 | 一种网络处理器查表方法、网络处理器和查表系统 |
CN109194665B (zh) * | 2018-09-17 | 2020-10-20 | 盛科网络(苏州)有限公司 | 一种报文查找键值的生成方法及装置 |
CN109905322B (zh) * | 2019-04-01 | 2021-05-07 | 盛科网络(苏州)有限公司 | 一种报文匹配信息预处理的方法及装置 |
CN112632147B (zh) * | 2020-12-11 | 2023-10-24 | 邦彦技术股份有限公司 | 数据差异化比较方法、系统和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1708029A (zh) * | 2004-06-08 | 2005-12-14 | 华为技术有限公司 | 建立转发流表的方法 |
CN1758625A (zh) * | 2004-10-09 | 2006-04-12 | 华为技术有限公司 | 一种对报文进行分类处理的方法 |
CN101079817A (zh) * | 2007-07-04 | 2007-11-28 | 中兴通讯股份有限公司 | 一种路由查找方法及系统 |
-
2008
- 2008-03-07 CN CN2008100074368A patent/CN101242362B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1708029A (zh) * | 2004-06-08 | 2005-12-14 | 华为技术有限公司 | 建立转发流表的方法 |
CN1758625A (zh) * | 2004-10-09 | 2006-04-12 | 华为技术有限公司 | 一种对报文进行分类处理的方法 |
CN101079817A (zh) * | 2007-07-04 | 2007-11-28 | 中兴通讯股份有限公司 | 一种路由查找方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101242362A (zh) | 2008-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101242362B (zh) | 查找键值生成装置及方法 | |
CN107819695B (zh) | 一种基于sdn的分布式控制负载均衡系统与方法 | |
Huang et al. | Green datapath for TCAM-based software-defined networks | |
JP3790217B2 (ja) | 高速インターネットプロトコルルートルックアップ遂行及びルーティング/フォワーディングテーブル管理のための装置及び方法 | |
US10230639B1 (en) | Enhanced prefix matching | |
CN108833299B (zh) | 一种基于可重构交换芯片架构的大规模网络数据处理方法 | |
CN108768866B (zh) | 组播报文跨卡转发方法、装置、网络设备及可读存储介质 | |
Bando et al. | FlashTrie: beyond 100-Gb/s IP route lookup using hash-based prefix-compressed trie | |
JP2013055642A (ja) | データセンター向けの拡張可能なマルチキャスト転送方法および装置 | |
WO2013019981A1 (en) | Lookup cluster complex | |
CN103957157B (zh) | 一种网络接口可定义转发规则的路由方法 | |
CN111600796B (zh) | 一种基于可配置解析字段的流识别装置及方法 | |
JP3881663B2 (ja) | フィールドレベルツリーを用いたパケット分類装置及び方法 | |
US11652744B1 (en) | Multi-stage prefix matching enhancements | |
CN111277612B (zh) | 一种网络报文处理策略生成方法、系统及介质 | |
CN1216473C (zh) | 支持多个下一跳的三态内容可寻址存储器查找方法及系统 | |
US7068652B2 (en) | Pointer based binary search engine and method for use in network devices | |
US7023859B2 (en) | Method for configuring a trie memory for the processing of data packets, and packet-processing device implementing such a method | |
CN103457855B (zh) | 无类域间路由表建立、以及报文转发的方法和装置 | |
CN100488173C (zh) | 对流分类算法进行自动选择的方法 | |
CN106789671B (zh) | 一种业务报文转发方法及设备 | |
Kalyaev et al. | FPGA-based approach for organization of SDN switch | |
US9590897B1 (en) | Methods and systems for network devices and associated network transmissions | |
RU2233473C2 (ru) | Устройство и способ выполнения высокоскоростного поиска маршрутов протокола интернет и управления таблицами маршрутизации/пересылки | |
CN104486240B (zh) | 一种数据包分类方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101110 Termination date: 20180307 |
|
CF01 | Termination of patent right due to non-payment of annual fee |