CN110933001B - 一种可扩展的可重构交换机包解析器基本处理单元结构 - Google Patents
一种可扩展的可重构交换机包解析器基本处理单元结构 Download PDFInfo
- Publication number
- CN110933001B CN110933001B CN201911126256.6A CN201911126256A CN110933001B CN 110933001 B CN110933001 B CN 110933001B CN 201911126256 A CN201911126256 A CN 201911126256A CN 110933001 B CN110933001 B CN 110933001B
- Authority
- CN
- China
- Prior art keywords
- unit
- basic processing
- processing unit
- cell
- data
- 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.)
- Active
Links
- 238000004458 analytical method Methods 0.000 claims abstract description 23
- 238000000034 method Methods 0.000 claims abstract description 13
- 230000008569 process Effects 0.000 claims abstract description 11
- 230000005540 biological transmission Effects 0.000 claims abstract description 3
- 210000004027 cell Anatomy 0.000 claims description 79
- 230000009471 action Effects 0.000 claims description 39
- 230000000875 corresponding effect Effects 0.000 claims description 21
- 238000000605 extraction Methods 0.000 claims description 8
- 239000000284 extract Substances 0.000 claims description 7
- 230000001276 controlling effect Effects 0.000 claims description 4
- 238000005538 encapsulation Methods 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 210000003719 b-lymphocyte Anatomy 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 239000000306 component Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种可扩展的可重构交换机包解析器基本处理单元结构,其包括PE_config、Cell单元、PE_bypass单元、Offset单元、frame数据通路和IRF数据通路;PE_config为基本处理单元配置单元;所述Cell单元用来实现对协议报文的解析;所述frame数据通路是向所述Cell单元提供数据;所述IRF数据通路是用来暂存解析过程中所产生的结果和需要跨层传递的临时中间数据;所述PE_config单元是完成所述Cell单元中PB、PC的查找表的表项内容的配置;所述PE_bypass单元主要实现跨层协议的处理;所述Offset单元用来实现每层基本处理单元的frame数据通路的起始数据访问位置的偏移工作。本发明具有很高的灵活性,并支持用户自定义网络协议的解析,对SDN实现了很好的支持。
Description
技术领域
本发明涉及一种以太网交换机芯片设计技术领域,特别是关于一种可扩展的可重构交换机包解析器基本处理单元结构。
背景技术
交换机转发引擎是交换机中的核心部件,它完成对接收的报文进行关键字段提取,然后形成路由表的查表请求,发给搜索引擎,再将搜索引擎返回的查表结果进行处理形成新的描述符,再根据新的描述符(经过描述符交换)对原始报文进行报文修改(替换、添加和删除等),最终将封装好的新的报文进行转发。而决定这些修改处理操作的是协议报文首部的关键字段和交换机设置的转发和分类规则,因此需要对协议的数据报文首部进行解析和提取。交换机转发引擎的数据包解析器就是针对网络协议报文首部进行解析,它把来自转发引擎的数据帧首部和对应的端口信息、存储地址等描述信息(描述符)作为输入数据,并对这些数据中的关键字段进行解析、识别和提取操作,用来输出给转发引擎中后续的搜索引擎。在实际的数据包解析器模块中除了对报文头部的解析和字段提取,还会携带原始输入的描述符,跟随报文沿着流水线向后级传递,但不参与提取过程。
软件定义网络(SDN)是一种新型网络创造架构,网络虚拟化的一种实现方式。对于网络协议数据报文头的解析技术而言,SDN的需求体现在支持用户自定义的协议,即通过软件编程使得芯片能够识别并解析不同的数据帧格式,这就要求数据包解析器的硬件设计具有一定的灵活性,即通过软件配置能够使得同一硬件支持用户自定义的协议的报文解析。
在高性能以太网交换机芯片中,目前数据包解析器普遍采用流水线结构,所有输入的数据包都按照相同的流水线逐级传递,中间不能停顿以确保数据在交换机芯片内部不会出现拥塞。包解析的各步操作按照协议封装层次顺序依次排列在流水线中,大多数网络数据包解析过程都可以看成是多叉树结构,在每一层针对本层树节点的对应域进行提取、匹配,从而实现本层协议的解析。因此每层协议的解析硬件也具有相似性,因此,每级流水线可以采用相同的可重构基本处理单元(Process Element,PE)来构成,每级基本处理单元对应一层包头(一层协议)的解析,这样可以简化硬件设计和配置文件的生成。
在先申请的“一种可破坏硬件木马的可重构交换机转发引擎解析器”(申请号201910003982.2)中提出了采用可重构的硬件实现解析器的方式——协议定义的帧格式的字段的数量、位置、关键字内容与协议类型、帧格式之间的对应关系都可以通过配置芯片内的配置寄存器、查找表(存储器)来实现配置。其基本单元的数据通路采用了PA、PB、PC的3级结构,分别完成关键字提取、关键字匹配、下级与本级封装帧头字段偏移量和字段标识查找的功能。但是它不能对关键字段进行进一步解析,无法完成包的分类和属性标注、合法性检查等操作。
发明内容
针对上述问题,本发明的目的是提供一种可扩展的可重构交换机包解析器基本处理单元结构,其具有高度的灵活性,资源占用率较少。
为实现上述目的,本发明采取以下技术方案:一种可扩展的可重构交换机包解析器基本处理单元结构,其特征在于:所述基本处理单元包括PE_config、Cell单元、PE_bypass单元、Offset单元、frame数据通路和IRF数据通路;PE_config为基本处理单元配置单元;所述Cell单元用来实现对协议报文的解析,所述Cell单元中包含PA、PB、PC和Action;所述frame数据通路是向所述Cell单元提供数据,所述Cell单元能在所述frame数据通路中提取出任意指定的数据匹配域;所述IRF数据通路是用来暂存解析过程中所产生的结果和需要跨层传递的临时中间数据,其在第一层输入的是由前端的报文预解析模块产生的初始数据,然后每经过一层基本处理单元,寄存器的数量增加相应量,为每层所述基本处理单元处理过程中所新产生的数据包描述信息;所述PE_config单元是完成所述Cell单元中PB、PC的查找表的表项内容的配置;所述PE_bypass单元主要实现跨层协议的处理:在本级基本处理单元的查找表中没有该协议类型的信息,则需要跳过本级基本处理单元,输出给下一级基本处理单元处理;所述Offset单元用来实现每层基本处理单元的frame数据通路的起始数据访问位置的偏移工作。
进一步,所述Cell单元有两种不同的形式:Cell_A单元和Cell_B单元。
进一步,所述Cell_A单元包含PA、PB、PC_cur、PC_nxt和Action;所述Cell_B单元包含PA、PB、PC_cur和Action;所述PA是用来实现特定数据域的提取,所述PA的输入为前一级基本处理单元输出的关键字段偏移量、本级frame寄存器的待提取的数据帧,输出为提取出来的关键字段;所述PB的输入为本级各所述PA输出的关键字段,其核心是一个匹配查找表,把关键字段组合和其中存储的匹配模板一一比较,输出匹配的模板所对应的协议类型信息,如果关键字段和任何特征模板都不匹配,则发送非法标识到所述PC,所述PB每个匹配模板还有一个对应的掩码字,用来忽略不关心的比特;所述PC为查找表结构,所述PC中有PC_cur和PC_nxt两种表项,其中所述PC_cur表用来根据所述PB表的匹配结果索引出要执行的动作,所述PC_nxt表项用来根据所述PB表的匹配结果索引出下一层基本处理单元要提取的关键字的偏移量;所述Action用来执行所述PC表索引出的对应的动作,执行结果被写入所述IRF。
进一步,所述Action接收来自所述PC的超长指令字,解析指令,取源操作数并执行,所述Action执行的指令的源操作数来自frame、IRF或立即数寄存器。
进一步,所述Action内部有3种指令单元:ALU单元、MOV单元和SET单元,每种指令单元各8个,共24个;一个超长指令字包含24个子指令分别控制这24个指令单元。
进一步,所述ALU单元用来执行大于、等于比较操作;所述MOV单元用来执行复制操作,其将frame或IRF中的数据赋值到IRF寄存器中;所述SET单元用来执行置数操作,其将数值域的值赋值到对应的IRF寄存器中。
进一步,由结构相同的所述基本处理单元级联构成解析器,级联数N等于所要解析的最大封装层次数量;每一层次的封装协议对应一个所述基本处理单元。
进一步,所述基本处理单元级数N,各个处理单元中的所述PA的数量、PB和PC中查找表的输入输出位宽与容量、Offset的大小都根据系统所支持的协议情况的需求来确定。
本发明由于采取以上技术方案,其具有以下优点:1、本发明在可破坏硬件木马的可重构交换机转发引擎解析器的基础上,增加了action单元,支持了基于关键字段值的简单计算、条件检查,从而能够在包解析时完成对报文的初步分类、生成简单描述符、执行检查,丰富了解析器的功能,节省了后端处理的压力。2、本发明提出了可扩展的PE结构,通过模块化扩展能够使得PE单元适应不同协议层次的不同解析需求,具有先进性。3、为了支持SDN需求,交换机转发引擎的数据包解析器必须具有高度的灵活性,因此本发明提出了一种通过静态配置可以实现不同解析逻辑(包括用户自定义的未知协议)的以太网交换机数据包解析器基本处理单元(PE),这种基本处理单元可以被用于任何一层协议的解析,配置文件由编译器根据协议帧格式生成,通过流水线式级联能够搭建可以支持各种协议(包括自定义的未知协议)集合的可重构数据包解析器。与已有方案比较,其具有更少的资源占用率、更高的性能和更高的灵活性。
附图说明
图1是本发明的解析器(Parser)整体结构框图;
图2是本发明的基本处理单元(PE)结构框图;
图3是本发明的Cell单元结构框图;
图4是本发明的Action单元结构框图。
具体实施方式
下面结合附图和实施例对本发明进行详细的描述。
如图2所示,本发明提供一种可扩展的可重构交换机包解析器基本处理单元结构,用于构成支持软件定义网络的以太网交换机转发引擎的数据包解析器(parser)电路,基本处理单元通过配置可以实现不同的硬件解析逻辑,从而支持SDN网络中不同协议报文的解析。基本处理单元(PE)包括六个功能单元:基本处理单元配置单元(PE_config)、Cell单元、PE_bypass单元、Offset单元、frame数据通路和IRF数据通路。其中:
Cell单元用来实现对协议报文的解析,其硬件实现逻辑可以根据协议帧格式进行配置,从而实现支持不同的协议帧的解析;Cell单元中包含PA、PB、PC和Action几个部分(如图3所示)。Cell单元的输入为一个当前层报文头部数据frame_lyr-i、一个当前层协议IDHDR_ID和若干个当前层协议关键字偏移量值PA_offset_cur,输出为一个下一层协议NXT_ID和若干个下一层协议关键字偏移量值PA_offset_nxt。
frame数据通路中传输的是1024bit的数据包报头信息(典型情况下),主要是向Cell单元提供数据,Cell单元可以在frame数据通路中提取出任意指定的数据匹配域(即关键字段)。frame数据通路的输入为原始数据帧数据帧frame_i,输出为经过移位操作的数据帧frame_o。
IRF数据通路是用来暂存解析过程中所产生的结果(描述符)和需要跨层传递的临时中间数据,其在第一层输入的是由前端的报文预解析模块产生的初始数据,如端口号、是否为环回报文等,然后每经过一层基本处理单元,寄存器的数量增加相应量,为每层基本处理单元处理过程中所新产生的数据包描述信息。IRF数据的输入为上一级输出的描述符IRF_i,输出为增加本级描述符之后的描述符信息IRF_o。
PE_config单元是完成Cell单元中PB、PC的查找表的表项内容的配置。PE_config单元的输入是CPU对解析器配置的数据,输出则连接着Cell单元。
PE_bypass单元主要实现跨层协议的处理,即在本级基本处理单元的查找表中没有该协议类型的信息,则需要跳过本级基本处理单元,输出给下一级基本处理单元处理。如Ethernet+IPv4+···的数据包,在PE_L2层完成了Ethernet的解析,而IPv4是在PE_L3层解析的,则需要跳过L2子层,此时PE_L2s内的PE_bypass单元就完成这一工作,其根据上一层传来的bypass_cur信号执行跳过本层的动作,同时为了匹配各层的延时,需要将数据通路的数据信号进行相应的延时操作。PE_bypass单元的输入是当前层bypass信息bypass_cur,输出是下一层bypass信息bypass_nxt。
Offset单元用来实现每层基本处理单元的frame数据通路的起始数据访问位置的偏移工作:对于一个数据包,上一层解析过的数据,在下一层不需要再次访问,因此下一层的起始访问数据将要越过上层已解析的数据,该单元就完成对应操作,这种做法可以减少偏移量的存储位宽,同时缩小访问范围,降低硬件设计复杂度和硬件开销。Offset单元的输入连接着Cell单元,输出是下一层报文头部数据frame_lyr_o。
上述实施例中,如图3所示,Cell单元有两种不同的形式:Cell_A单元和Cell_B单元。Cell_A单元包含PA、PB、PC_cur、PC_nxt、Action几个部分;Cell_B单元包含PA、PB、PC_cur、Action几个部分。在数据包头的解析过程中,存在同时检查多个关键字段的情况,特别是如果他们彼此独立的时候要考察它们的各种组合,则需要对应很多表项,而各层协议的匹配任务数量差异较大,业务类型越丰富的层、匹配任务越多,如果只使用一种固定的Cell单元,同时满足所有层次的需求,会引入很大冗余开销,而如果采用较小的Cell单元,某些层可能仅靠一个Cell单元无法完全解析,如果串行多个Cell单元解析,则时钟周期将大大增加,降低解析速度。因此,采用多个小单元任意组合的解决方案——在不同层次上根据需要并行放置不同数量的Cell单元来解决上述问题。又因为每层协议解析仅需一张存储下一层协议类型的表(即PC_nxt表),如果直接使用相同的Cell单元并行解析一层协议,则PC_nxt表资源会存在浪费,因此采用Cell_A单元和Cell_B单元两种形式的Cell单元。每个基本处理单元中固定包含一个Cell_A单元和若干个Cell_B单元,在配置时要根据实际解析的数据包在各层解析所占用的硬件资源来确定调用Cell单元的个数。
上述各实施例中,如图3所示,PA是用来实现特定数据域的提取,每一个Cell单元中设置了若干个PA,PA的输入为前一级基本处理单元输出的关键字段偏移量、本级frame寄存器的待提取的数据帧,输出为提取出来的关键字段;
PB的输入为本级各PA输出的关键字段,其核心是一个匹配查找表,把关键字段组合和其中存储的匹配模板一一比较,输出匹配的模板所对应的协议类型信息,如果关键字段和任何特征模板都不匹配,则发送非法标识到PC,PB每个匹配模板还有一个对应的掩码字,用来忽略不关心的比特,其表项结构如表1所示;
表1 PB表项结构
PC为查找表结构,PC中有PC_cur和PC_nxt两种表项,其中PC_cur表用来根据PB表的匹配结果索引出要执行的动作,PC_nxt表项用来根据PB表的匹配结果索引出下一层基本处理单元要提取的关键字的偏移量,其表项结构如表2所示;
表2 PC表项结构
Action用来执行PC表索引出的对应的动作,这些动作的定义以超长指令字的形式表示,Action执行的指令的源操作数来自frame(即数据包头字段)、IRF或立即数寄存器,执行结果被写入IRF。
如图4所示,Action用来执行PC表索引出的对应的动作,其接收来自PC的超长指令字(VLIW),解析指令,取源操作数并执行,Action执行的指令的源操作数来自frame(即数据包头字段)、IRF或立即数寄存器,执行结果被写入IRF。Action内部有3种指令单元,分别是ALU单元、MOV单元和SET单元,每种指令单元各8个,共24个。一个超长指令字包含24个子指令分别控制这24个指令单元。指令单元执行后会将结果搬运到指定的IRF寄存器中以完成所有操作。ALU单元用来执行大于(Greater than)、等于(Equal)等比较操作;MOV单元用来执行复制(Move)操作,其将frame或IRF中的数据赋值到IRF寄存器中;SET单元用来执行置数(Set)操作,其将数值域的值赋值到对应的IRF寄存器中。三种指令单元的指令格式如表3所示。
表3 Action单元的子指令格式
如图1所示,由结构相同的基本处理单元(PE)级联构成解析器(Parser),级联数N等于所要解析的最大封装层次数量,在硬件设计时需要根据需要对基本处理单元级联的数目进行固化;每一层次的封装协议对应一个基本处理单元。
其中,基本处理单元级数N,各个处理单元中的PA的数量、PB和PC中查找表的输入输出位宽与容量、Offset的大小都根据系统所支持的协议情况的需求来确定,在设计阶段选取后,固定下来。
基本处理单元之间的数据交换通过数据帧寄存器(frame)和中间值寄存器堆IRF实现。交换机接收到的数据包包头(PKT_header)会随着frame数据通路进行传输,首先由前面的预处理逻辑匹配出首层的协议所要提取的关键字段的位置及下一层协议的类型,并对关键字段进行提取存放到IRF中,然后由基本处理单元对数据包剩下协议进行逐层解析,提取出的关键字段及处理结果均存放于IRF寄存器中。
实施例:
EthernetⅡ-Vlan-IPV4-MPLS-TCP数据帧是网络常见的数据帧结构之一,根据协议分层与OSI参考模型的规则,EthernetⅡ协议、Vlan协议、IPV4协议、MPLS协议、TCP协议分别对应数据链路层(L2)、数据链路层子层(L2s)、网络层(L3)、MPLS层(L3s)、传输层(L4)。因此如图1所示,可重构的数据包解析器整体结构如下:处理级数为五级,输入数据通过由五个结构相同的基本处理单元级联,分别处理EthernetⅡ协议、Vlan协议、IPV4协议、MPLS协议、TCP协议的报文首部,从而完成数据包解析器的解析功能。
输入的EthernetⅡ-Vlan-IPV4-MPLS-TCP数据帧的首部1024bit进入解析器首先经过一个固定逻辑进行预处理,然后传输给第一级基本处理单元进行以太网协议解析处理,再依次传给后续处理单元,依次进行解析,最终输出原始数据帧的首部数据和解析出来的描述符数据。在本实施例中,为了简单说明,每级处理单元均采用同一结构,在实际应用中可根据实际需要对该结构进行裁剪。
本实施例中,每级基本处理单元均包含PE_config单元、Cell_A单元、Cell_B0单元、Cell_B1单元、PE_bypass单元、Offset单元、frame数据通路、IRF数据通路八个部分。数据帧的首部1024bit数据在frame数据通路进行传输,以供本级基本处理单元的各个单元调用数据帧内容,其输出连接下一级基本处理单元内的frame数据通路。每个Cell单元中均包含24个PA、一个PB、一个PC、一个Action,Cell_A单元的PC中包含一个PC_cur表、一个PC_nxt表,Cell_B单元的PC中只包含PC_cur表,每级基本处理单元内的Cell_A单元、Cell_B0单元、Cell_B1单元并行处理数据。
基本处理单元接收到本层需要处理的报文头部数据、前级输出的描述符信息及本级协议解析所需要提取的关键字的位置偏移信息并行传输到Cell_A单元、Cell_B0单元、Cell_B1单元的PA,由PA根据关键字的位置偏移信息从报文头部数据和描述符信息中提取出所在Cell单元需要处理的关键字段并传送给PB,每个PA一次可以提取8bit数据,因此每个Cell单元中PA输送给PB的数据位宽是24*8bit。
PB是查找表结构,其表项结构如表1所示,Cell_A单元的PB可以根据本Cell单元中PA传来的关键字先与表内的Mask值进行掩码操作,然后再与表内的Value值进行匹配,找出本层协议所执行的动作索引(SUB_ID)和下一层协议类型(NXT_ID)及Bypass信息,PB的输出SUB_ID传输给PC中的PC_cur表作为输入,NXT_ID传输给PC中的PC_nxt表作为输入,Bypass信息输出给本级基本处理单元的PE_bypass单元,因此Cell_A单元中PB表的大小为407*32bit;Cell_B单元的PB可以根据本Cell单元中PA传来的关键字先与表内的Mask值进行掩码操作,然后再与表内的Value值进行匹配,找出本层协议所执行的动作索引SUB_ID,PB的输出SUB_ID传输给PC中的PC_cur表作为输入,因此Cell_A单元中PB表的大小为398*32bit。
PC是查找表结构,其表项结构如表2所示,Cell_A单元的PC分为PC_cur、PC_nxt两张表,PC_cur表根据PB表的匹配结果SUB_ID索引出要执行的动作的超长指令字(VLIW)信息,并输出给本Cell单元的Action,以及数据帧首部数据偏移量信息(Lyr_offset),并输出给本级基本处理单元的Offset单元,PC_cur表大小为328*32bit;PC_nxt表根据PB表的匹配结果NXT_ID索引出下一层基本处理单元的每个PA所要提取关键字的位置偏移信息(PA_offset),其大小为583*32bit。Cell_B单元的PC只包含PC_cur表,PC_cur表根据PB表的匹配结果SUB_ID索引出要执行的动作的超长指令字(VLIW)信息,并输出给本Cell单元的Action,其大小为320*32bit。
Action根据当前Cell单元中PC_cur表输出的超长指令字(VLIW),解析指令,取源操作数并执行。Action内部有3种指令单元,分别是ALU单元、MOV单元、SET单元,每种指令单元各8个,共24个。一个超长指令字包含24个子指令分别控制这24个指令单元。指令单元执行后会将结果搬运到指定的IRF寄存器中以完成所有操作。三种指令单元的指令格式如表3所示。ALU单元用来执行大于(Greater than)、等于(Equal)等比较操作,其指令共24bit,分为6个域,分别为指令名称域(Ist)、掩码域(Mask)、操作数1源选择域(Source 1)、操作数1偏移量域(Offset 1)、操作数2源选择域(Source 2)、操作数2偏移量域(Offset 2),Ist域用来指定操作类型;Mask域对操作数做掩码操作,去除操作数中无用信息,其做掩码时以字节为单位,最高支持64bit;操作数源选择域指示操作数来源于frame还是IRF;操作数偏移量域指示从数据源中取的具体数据位置偏移量。MOV单元用来执行复制(Move)操作,其将frame或IRF中的数据赋值到IRF寄存器中,其指令共8bit,分为3个域,分别为使能域(En)、操作数源选择域(Source)、操作数偏移量域(Offset),En域指示是否执行Mov操作;Source域指示操作数来源于frame或IRF;Offset域指示从数据源中取的具体数据位置偏移量。SET单元用来执行置数(Set)操作,其将数值域的值赋值到对应的IRF寄存器中,其指令共8bit,全部为数据域。
PE_config单元是配置本级基本处理单元中的各个表项的单元,其接收到CUP传来的配置数据先缓存起来,然后一次以32bit的位宽再分配到基本处理单元的各个配置表中;PE_bypass单元根据本级基本处理单元中的Cell_A单元的PB输出的Bypass信息判断是否跳过本层解析操作,如果跳过,则对数据进行延迟操作,并越过本层后续单元直接输出给下一级基本处理单元;Offset单元根据本级基本处理单元中的Cell_A单元的PC_cur表输出的Lyr_offset信息,将frame寄存器中的数据帧首部作相应地移位操作,使其对齐位置是下一层协议的起始位置。
上述各实施例仅用于说明本发明,各部件的结构、尺寸、设置位置及形状都是可以有所变化的,在本发明技术方案的基础上,凡根据本发明原理对个别部件进行的改进和等同变换,均不应排除在本发明的保护范围之外。
Claims (6)
1.一种可扩展的可重构交换机包解析器基本处理单元结构,其特征在于:所述基本处理单元包括PE_config、Cell单元、PE_bypass单元、Offset单元、frame数据通路和IRF数据通路;PE_config为基本处理单元配置单元;
所述Cell单元用来实现对协议报文的解析,所述Cell单元中包含PA、PB、PC和Action;
所述frame数据通路是向所述Cell单元提供数据,所述Cell单元能在所述frame数据通路中提取出任意指定的数据匹配域;
所述IRF数据通路是用来暂存解析过程中所产生的结果和需要跨层传递的临时中间数据,其在第一层输入的是由前端的报文预解析模块产生的初始数据,然后每经过一层基本处理单元,寄存器的数量增加相应量,用于存储每层所述基本处理单元处理过程中新产生的数据包描述信息;
所述PE_config单元是完成所述Cell单元中PB、PC的查找表的表项内容的配置;
所述PE_bypass单元主要实现跨层协议的处理:在本级基本处理单元的查找表中没有该协议类型的信息,则需要跳过本级基本处理单元,输出给下一级基本处理单元处理;
所述Offset单元用来实现每层基本处理单元的frame数据通路的起始数据访问位置的偏移工作;
所述Cell单元有两种不同的形式:Cell_A单元和Cell_B单元;
所述Cell_A单元包含PA、PB、PC_cur、PC_nxt和Action;所述Cell_B单元包含PA、PB、PC_cur和Action;
所述PA是用来实现特定数据域的提取,所述PA的输入为前一级基本处理单元输出的关键字段偏移量和本级frame寄存器的待提取的数据帧,输出为提取出来的关键字段;
所述PB的输入为本级各所述PA输出的关键字段,其核心是一个匹配查找表,把关键字段组合和其中存储的匹配模板一一比较,输出匹配的模板所对应的协议类型信息,如果关键字段和任何特征模板都不匹配,则发送非法标识到所述PC,所述PB每个匹配模板还有一个对应的掩码字,用来忽略不关心的比特;
所述PC为查找表结构,所述PC中有PC_cur和PC_nxt两种表项,其中所述PC_cur表用来根据所述PB表的匹配结果索引出要执行的动作,所述PC_nxt表项用来根据所述PB表的匹配结果索引出下一层基本处理单元要提取的关键字的偏移量;
所述Action用来执行所述PC表索引出的对应的动作,执行结果被写入所述IRF。
2.如权利要求1所述基本处理单元结构,其特征在于:所述Action接收来自所述PC的超长指令字,解析指令,取源操作数并执行,所述Action执行的指令的源操作数来自frame、IRF或立即数寄存器。
3.如权利要求2所述基本处理单元结构,其特征在于:所述Action内部有3种指令单元:ALU单元、MOV单元和SET单元,每种指令单元各8个,共24个;一个超长指令字包含24个子指令分别控制这24个指令单元。
4.如权利要求3所述基本处理单元结构,其特征在于:所述ALU单元用来执行大于、等于比较操作;所述MOV单元用来执行复制操作,其将frame或IRF中的数据赋值到IRF寄存器中;所述SET单元用来执行置数操作,其将数值域的值赋值到对应的IRF寄存器中。
5.如权利要求1至4任一项所述基本处理单元结构,其特征在于:由结构相同的所述基本处理单元级联构成解析器,级联数N等于所要解析的最大封装层次数量;每一层次的封装协议对应一个所述基本处理单元。
6.如权利要求5所述基本处理单元结构,其特征在于:所述基本处理单元级数N,各个处理单元中的所述PA的数量、PB和PC中查找表的输入输出位宽与容量、Offset的大小都根据系统所支持的协议情况的需求来确定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911126256.6A CN110933001B (zh) | 2019-11-18 | 2019-11-18 | 一种可扩展的可重构交换机包解析器基本处理单元结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911126256.6A CN110933001B (zh) | 2019-11-18 | 2019-11-18 | 一种可扩展的可重构交换机包解析器基本处理单元结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110933001A CN110933001A (zh) | 2020-03-27 |
CN110933001B true CN110933001B (zh) | 2020-11-27 |
Family
ID=69854106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911126256.6A Active CN110933001B (zh) | 2019-11-18 | 2019-11-18 | 一种可扩展的可重构交换机包解析器基本处理单元结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110933001B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115842792B (zh) * | 2023-02-20 | 2023-05-12 | 之江实验室 | 一种数据处理方法、装置、存储介质及电子设备 |
CN117579721A (zh) * | 2023-10-31 | 2024-02-20 | 中科驭数(北京)科技有限公司 | 基于分层协议的可编程报文解析基本处理单元及解析装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN203522776U (zh) * | 2013-02-01 | 2014-04-02 | 山东大学 | 一种可配置式工业以太网数据解析系统 |
CN108494800A (zh) * | 2018-04-27 | 2018-09-04 | 广州西麦科技股份有限公司 | 一种数据包安全检测及处理方法、装置、p4交换机及介质 |
CN108781185A (zh) * | 2016-12-13 | 2018-11-09 | 甲骨文国际公司 | 提供用于网络设备的可编程包分类框架的系统和方法 |
CN109644159A (zh) * | 2016-08-26 | 2019-04-16 | 华为技术有限公司 | 数据传输网中的数据包转发单元 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7165257B2 (en) * | 2000-02-08 | 2007-01-16 | Mips Technologies, Inc. | Context selection and activation mechanism for activating one of a group of inactive contexts in a processor core for servicing interrupts |
US8457007B2 (en) * | 2006-02-24 | 2013-06-04 | Marvell World Trade Ltd. | Global switch resource manager |
US8848715B2 (en) * | 2010-03-16 | 2014-09-30 | Marvell Israel (M.I.S.L) Ltd. | Combined hardware/software forwarding mechanism and method |
US10003675B2 (en) * | 2013-12-02 | 2018-06-19 | Micron Technology, Inc. | Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data |
US9648148B2 (en) * | 2013-12-24 | 2017-05-09 | Intel Corporation | Method, apparatus, and system for QoS within high performance fabrics |
CN107797816A (zh) * | 2017-09-15 | 2018-03-13 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | Fpga程序在线更新电路 |
-
2019
- 2019-11-18 CN CN201911126256.6A patent/CN110933001B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN203522776U (zh) * | 2013-02-01 | 2014-04-02 | 山东大学 | 一种可配置式工业以太网数据解析系统 |
CN109644159A (zh) * | 2016-08-26 | 2019-04-16 | 华为技术有限公司 | 数据传输网中的数据包转发单元 |
CN108781185A (zh) * | 2016-12-13 | 2018-11-09 | 甲骨文国际公司 | 提供用于网络设备的可编程包分类框架的系统和方法 |
CN108494800A (zh) * | 2018-04-27 | 2018-09-04 | 广州西麦科技股份有限公司 | 一种数据包安全检测及处理方法、装置、p4交换机及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110933001A (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11677664B2 (en) | Apparatus and method of generating lookups and making decisions for packet modifying and forwarding in a software-defined network engine | |
CN101095310B (zh) | 分组解析处理器及在处理器中解析分组的方法 | |
US8867395B2 (en) | Accelerating data packet parsing | |
US9762544B2 (en) | Reverse NFA generation and processing | |
Brebner et al. | High-speed packet processing using reconfigurable computing | |
US6944670B2 (en) | Method and apparatus for multiple processing of a plurality of communication protocols on a single processing machine | |
CN109474641B (zh) | 一种可破坏硬件木马的可重构交换机转发引擎解析器 | |
US11218574B2 (en) | Directed graph traversal using content-addressable memory | |
CN113824706B (zh) | 报文解析方法及网络设备 | |
CN110933001B (zh) | 一种可扩展的可重构交换机包解析器基本处理单元结构 | |
Atasu et al. | Hardware-accelerated regular expression matching for high-throughput text analytics | |
US20050010690A1 (en) | System and method for modifying data transferred from a source to a destination | |
CN114327833A (zh) | 一种基于软件定义复杂规则的高效流量处理方法 | |
Zazo et al. | Automated synthesis of FPGA-based packet filters for 100 Gbps network monitoring applications | |
US11960772B2 (en) | Pipeline using match-action blocks | |
Lixin et al. | Software-Defined Protocol Independent Parser based on FPGA | |
CN115633103B (zh) | 数据包的混合解析方法及系统 | |
US20230336643A1 (en) | Packet modification method and apparatus, computer device, and storage medium | |
US20240037429A1 (en) | Common parser-deparser for libraries of packet-processing programs | |
CN116033044A (zh) | 报文的分段解析方法、装置、设备和存储介质 | |
Ibrahim | HP4 High-Performance Programmable Packet Parser | |
Leogrande | High Speed and Flexible Network Processing. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231122 Address after: Room 201, 1st and 2nd floors, Building 3, No. 16 Yongchang Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing, 100176 Patentee after: Beijing Xinli Technology Innovation Center Co.,Ltd. Address before: 100084, Haidian District, 100084 mailbox, 82 boxes, Tsinghua University patent office, Beijing Patentee before: TSINGHUA University |
|
TR01 | Transfer of patent right |