CN105591989A - 一种协议报文上送cpu的芯片实现方法 - Google Patents
一种协议报文上送cpu的芯片实现方法 Download PDFInfo
- Publication number
- CN105591989A CN105591989A CN201610048133.5A CN201610048133A CN105591989A CN 105591989 A CN105591989 A CN 105591989A CN 201610048133 A CN201610048133 A CN 201610048133A CN 105591989 A CN105591989 A CN 105591989A
- Authority
- CN
- China
- Prior art keywords
- message
- bitmap
- cpu
- tactful
- exceptionid
- 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.)
- Granted
Links
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
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
Abstract
本发明揭示了一种协议报文上送CPU的芯片实现方法,属于网络通信技术领域。该方法包括:在芯片中设置一匹配表,所述匹配表中配置有Exception?ID和报文处理策略;在端口、VLAN或隧道协议的配置中设置一Bitmap,用于控制所述策略是否执行;报文进入芯片后进行匹配查找得到报文的Exception?ID和与其相对应的处理策略;由Bitmap控制策略是否执行,即报文上CPU的同时转发或者丢弃。本申请提出了一种有效的芯片识别机制,能精确控制各种格式的协议报文是否上CPU。
Description
技术领域
本发明涉及一种协议报文的芯片处理技术,尤其涉及一种协议报文上送CPU的芯片实现方法。
背景技术
报文是网络中交换与传输的数据单元,其中包含了将要发送的完整的数据信息,同时,报文也是网络传输的单位,传输过程中会不断的封装成分组、包或帧来传输。互联网业务的多样化和差异化要求网络设备能够根据网络中报文的相关信息对报文进行差异化处理,针对不同类别的报文采取不同的操作。
在现有的系统中,CPU资源是有限的,大量异常报文上送CPU处理,占用CPU资源,导致CPU负荷过重。在以太网交换机中,大部分的数据报文是通过专用芯片转发的,不需要CPU进行处理,而网络中的各种协议报文则是需要经过专用芯片传输到系统内存中,使CPU能够访问并对协议报文进行处理。
因此,现有网络芯片识别上层协议,往往使用解析模块,然后基于解析出来的协议种类,置上CPU的动作。
上层协议的识别,一般利用每个协议层中的协议域中包含的协议ID来表示更高一层的报文类型。例如,IP头中的协议域为17,表示高层协议为UDP(UserDatagramProtocol,用户数据协议);IP头中的协议域为6,表示高层协议为TCP(TransmissionControlProtocol,传输控制协议);IP头中的协议域为1,表示ICMP(InternetControlMessageProtocol,Internet控制报文协议)。TCP和UDP包内的应用程协议的类型依靠的是TCP和UDP包首部的端口号来进行区分。
但是当遇到特殊报文时,标准解析模块无法识别报文,于是对于一些广播格式的协议,是否上CPU的控制往往不够精确。
发明内容
本发明提出了一种协议报文上送CPU的芯片实现方法,通过一种有效的芯片识别机制,以实现精确控制各种格式的协议报文是否上CPU。
本发明提供了一种协议报文上送CPU的芯片实现方法,该方法包括:
在芯片中设置一匹配表,所述匹配表中配置有ExceptionID和策略C1;在端口、VLAN或隧道协议的配置中设置一Bitmap,用于控制所述策略C1是否执行;
协议报文进入芯片,首先进行匹配查找,根据报文中的关键字段查找所述匹配表,得到对应的所述ExceptionID和策略C1,再根据所述Bitmap决定将所述协议报文在上CPU的同时转发或者丢弃。
优选地,所述匹配查找的关键字段包含源MAC地址,目的MAC地址和IP五元组,所述IP五元组为报文源IP地址,源端口,目的IP地址,目的端口和传输层协议。
优选地,所述ExceptionID设置在匹配查找结果的属性中,其取值范围为0-N,其中,N为大于等于零的整数。
优选地,所述策略C1设置在匹配查找结果的属性中。
优选地,所述策略C1为报文在上CPU的同时丢弃该报文,或者为报文在上CPU的同时转发该报文。
优选地,所述Bitmap宽度与所述ExceptionID的最大值相同。
优选地,所述Bitmap用二进制表示。
优选地,所述匹配查找,当查找有结果时所述才ExceptionID生效,此时所述ExceptionID取值不为0。
优选地,若所述二进制表示的Bitmap从低位开始的第E1个比特位为0,则策略C1不生效;若所述二进制表示的Bitmap从低位开始的第E1个比特位不为0,则策略C1生效,所述E1表示ExceptionID的值。
优选地,若所述二进制表示的Bitmap从低位开始的第E1个比特位为1,则策略C1生效,所述E1表示ExceptionID的值。
本发明能精确控制各种格式的协议报文是否上CPU,并且在上CPU的同时,在端口、VLAN或隧道协议上灵活控制是否丢弃或转发该报文。
附图说明
图1是本发明协议报文上送CPU的芯片实现方法的流程示意图。
具体实施方式
下面将对本发明实施例的技术方案进行清楚、完整的描述。
本发明揭示了一种协议报文上送CPU的芯片实现方法,通过在芯片中设置一个CAM,用来对报文进行匹配查找,在查找结果的属性中设置ExceptionID和策略C1,在端口、VLAN或隧道协议的配置中设置Bitmap控制策略C1的执行,从而对各种协议报文上送CPU的行为进行精确控制。
本发明所揭示的一种协议报文上送CPU的芯片实现方法,如图1所示:
首先,在协议报文进入芯片之前,在芯片中设置一匹配表,所述匹配表中配置有ExceptionID和策略C1;在端口、VLAN或隧道协议的配置中设置一Bitmap,用于控制所述策略C1是否执行。
具体地,在芯片的入方向处理引擎(IPE)中,设置一个CAM,CAM中配置有查找的关键字段,用于进行匹配查找,查找的关键字段包含源MAC地址,目的MAC地址和IP五元组,协议报文进入芯片后,根据报文中的源MAC地址,目的MAC地址和IP五元组与CAM中配置的关键字段进行匹配。
CAM查找结果的属性中,为每一种协议报文设置一个ExceptionID,记为E1,取值范围为0-N,N为大于等于0的整数,即一个ExceptionID代表一种协议报文。E1取值范围为0-N,即表示支持N种协议报文。在CAM进行匹配查找时,只有查到结果,EceptionID才有效。
报文进入芯片,在与CAM中设置好的特征字段相匹配后,在其属性中得到此报文的ExceptionID。对于某些报文来说,需要在上CPU的同时转发该报文到下一台需要此报文的设备上;而某些报文则只需要上送给CPU,不需要转发,就直接丢弃。因此,本发明在CAM查找结果的属性中,还设置了报文的处理策略,为下面描述方便,记为策略C1。策略C1为报文在上CPU的同时丢弃该报文或者报文在上CPU的同时转发该报文。
对于策略C1的执行与否,本发明通过在端口、VLAN或隧道协议的配置中设置一个Bitmap,用来控制策略C1是否执行。具体地,设置Bitmap的宽度与CAM中ExceptionID的最大值相同,均为N,即有N个有效ExceptionID(N不为0时ExceptionID有效)时,Bitmap的宽度也为N。本实施例中,Bitmap用二进制表示,如设置的ExceptionIDE1的取值范围为0-3,那么Bitmap的宽度对应为3,默认值即为二进制的‘000’;若设置的ExceptionIDE1的取值范围为0-4,那么所述Bitmap宽度也为4,默认值即为二进制的‘0000’。
本实施例中,策略C1生效(即执行的)需满足的条件设置为:若ExceptionIDE1不为0,用二进制表示的Bitmap从低位开始的的第E1个比特位也不为0,则ExceptionIDE1生效,报文上CPU,且策略C1生效。若设置的策略C1为丢弃,那么执行策略C1即报文上CPU的同时丢弃该报文,若设置的策略C1为转发,那么执行策略C1即报文上CPU的同时转发该报文。
为了表述方便,将二进制表示的Bitmap从低位开始的的第E1个比特位表示为Bitmap[E1]。
若Bitmap从低位开始的的第E1个比特位为0,则不执行策略C1,若Bitmap从低位开始的的第E1个比特位为1,则执行策略C1,由此来控制策略C1是否执行。此方法可灵活控制每一个端口、VLAN或隧道协议中的报文在上CPU的同时丢弃还是转发该报文。本发明对策略C1是否执行的控制方式不仅限于上述所限定的,如也可设定为Bitmap从低位开始的的第E1个比特位为1,则Bitmap不执行策略C1,若Bitmap从低位开始的的第E1个比特位为0,则执行策略C1。
以上述ExceptionIDE1的取值范围为0-3为例,端口上配置了该Bitmap值为二进制的‘010’,若CAM查到报文匹配,得到ExceptionIDE1=2,策略C1为丢弃,那么即Bitmap[E1]=Bitmap[2],也就是Bitmap中从低位开始的第2比特,值为二进制的‘1’,如此一来,E1不为0,Bitmap[E1]=‘1’也不为0,报文会上CPU,并在芯片中执行策略C1,丢弃报文。若策略C1为转发,则在E1不为0且Bitmap[E1]=1也不为0的情况下,报文会上CPU,并在芯片中执行策略C1,转发报文。
另外,Bitmap值的读取在端口、VLAN或隧道协议上有三种情况,如果通过端口传输,那么读取端口表中的属性,读取其中的Bitmap值;如果通过端口上的VLAN传输,那么读取相应VLAN的属性表,读取其中的Bitmap值;如果通过隧道协议传输,那么根据隧道头查找隧道表,确定为某种隧道,从该隧道的属性中读取Bitmap值。
本本发明尤其适用于当芯片解析模块接收到一种特殊协议报文时,一般的解析模块无法识别该报文,使用此方法能够自己定义一个特殊协议报文,然后精确地控制各种协议报文是否上CPU,并且在端口、VLAN或隧道协议上灵活地控制上CPU报文的转发或丢弃。
本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
Claims (10)
1.一种协议报文上送CPU的芯片实现方法,其特征在于,所述方法包括:
在芯片中设置一匹配表,所述匹配表中配置有ExceptionID和策略C1;在端口、VLAN或隧道协议的配置中设置一Bitmap,用于控制所述策略C1是否执行;
协议报文进入芯片,首先进行匹配查找,根据报文中的关键字段查找所述匹配表,得到对应的所述ExceptionID和策略C1,再根据所述Bitmap决定将所述协议报文在上CPU的同时转发或者丢弃。
2.根据权利要求1所述的方法,其特征在于,所述匹配查找的关键字段包含报文的源MAC地址,目的MAC地址和IP五元组。
3.根据权利要求1所述的方法,其特征在于,所述ExceptionID设置在匹配查找结果的属性中,其取值范围为0-N,其中,N为大于等于0的整数。
4.根据权利要求1所述的方法,其特征在于,所述策略C1设置在匹配查找结果的属性中。
5.根据权利要求1所述的方法,其特征在于,所述策略C1为报文在上CPU的同时丢弃,或者为报文在上CPU的同时转发。
6.根据权利要求1所述的方法,其特征在于,所述Bitmap宽度与所述ExceptionID的最大值相同。
7.根据权利要求1或6所述的方法,其特征在于,所述Bitmap用二进制表示。
8.根据权利要求7所述的方法,其特征在于,当报文查找到匹配结果时,所述ExceptionID生效,此时ExceptionID的值不为0。
9.根据权利要求8所述的方法,其特征在于,若所述二进制表示的Bitmap从低位开始的第E1个比特位为0,则策略C1不生效;若所述二进制表示的Bitmap从低位开始的第E1个比特位不为0,则策略C1生效,所述E1表示ExceptionID的值。
10.根据权利要求9所述的方法,其特征在于,若所述二进制表示的Bitmap从低位开始的第E1个比特位为1,则策略C1生效,所述E1表示ExceptionID的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610048133.5A CN105591989B (zh) | 2016-01-25 | 2016-01-25 | 一种协议报文上送cpu的芯片实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610048133.5A CN105591989B (zh) | 2016-01-25 | 2016-01-25 | 一种协议报文上送cpu的芯片实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105591989A true CN105591989A (zh) | 2016-05-18 |
CN105591989B CN105591989B (zh) | 2019-12-20 |
Family
ID=55931217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610048133.5A Active CN105591989B (zh) | 2016-01-25 | 2016-01-25 | 一种协议报文上送cpu的芯片实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105591989B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106254269A (zh) * | 2016-08-18 | 2016-12-21 | 杭州迪普科技有限公司 | 一种报文转发方法及装置 |
CN107508836A (zh) * | 2017-09-27 | 2017-12-22 | 杭州迪普科技股份有限公司 | 一种acl规则下发的方法及装置 |
CN109802872A (zh) * | 2019-03-19 | 2019-05-24 | 北京信而泰科技股份有限公司 | 一种报文捕获方法、装置及设备 |
CN109951425A (zh) * | 2017-12-21 | 2019-06-28 | 张家界航空工业职业技术学院 | 基于fpga的tcp流状态完整性检测方法 |
CN109995678A (zh) * | 2017-12-29 | 2019-07-09 | 迈普通信技术股份有限公司 | 报文传输方法及装置 |
CN110677385A (zh) * | 2019-08-27 | 2020-01-10 | 浪潮思科网络科技有限公司 | 一种基于vlan的arp分类及转发方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050213570A1 (en) * | 2004-03-26 | 2005-09-29 | Stacy John K | Hardware filtering support for denial-of-service attacks |
CN1972240A (zh) * | 2005-11-24 | 2007-05-30 | 武汉烽火网络有限责任公司 | 快速包过滤处理方法及其装置 |
CN101030947A (zh) * | 2007-04-29 | 2007-09-05 | 华为技术有限公司 | 一种报文发送的方法和装置 |
CN101141390A (zh) * | 2007-07-17 | 2008-03-12 | 武汉烽火网络有限责任公司 | 一种新型自定义以太网带外数据包过滤的方法及装置 |
CN102710524A (zh) * | 2012-06-15 | 2012-10-03 | 大连梯耐德网络技术有限公司 | 一种多协议网络报文传输保序系统的实现方法 |
-
2016
- 2016-01-25 CN CN201610048133.5A patent/CN105591989B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050213570A1 (en) * | 2004-03-26 | 2005-09-29 | Stacy John K | Hardware filtering support for denial-of-service attacks |
CN1972240A (zh) * | 2005-11-24 | 2007-05-30 | 武汉烽火网络有限责任公司 | 快速包过滤处理方法及其装置 |
CN101030947A (zh) * | 2007-04-29 | 2007-09-05 | 华为技术有限公司 | 一种报文发送的方法和装置 |
CN101141390A (zh) * | 2007-07-17 | 2008-03-12 | 武汉烽火网络有限责任公司 | 一种新型自定义以太网带外数据包过滤的方法及装置 |
CN102710524A (zh) * | 2012-06-15 | 2012-10-03 | 大连梯耐德网络技术有限公司 | 一种多协议网络报文传输保序系统的实现方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106254269A (zh) * | 2016-08-18 | 2016-12-21 | 杭州迪普科技有限公司 | 一种报文转发方法及装置 |
CN106254269B (zh) * | 2016-08-18 | 2019-08-06 | 杭州迪普科技股份有限公司 | 一种报文转发方法及装置 |
CN107508836A (zh) * | 2017-09-27 | 2017-12-22 | 杭州迪普科技股份有限公司 | 一种acl规则下发的方法及装置 |
CN107508836B (zh) * | 2017-09-27 | 2019-11-12 | 杭州迪普科技股份有限公司 | 一种acl规则下发的方法及装置 |
CN109951425A (zh) * | 2017-12-21 | 2019-06-28 | 张家界航空工业职业技术学院 | 基于fpga的tcp流状态完整性检测方法 |
CN109951425B (zh) * | 2017-12-21 | 2021-03-23 | 张家界航空工业职业技术学院 | 基于fpga的tcp流状态完整性检测方法 |
CN109995678A (zh) * | 2017-12-29 | 2019-07-09 | 迈普通信技术股份有限公司 | 报文传输方法及装置 |
CN109995678B (zh) * | 2017-12-29 | 2022-06-10 | 迈普通信技术股份有限公司 | 报文传输方法及装置 |
CN109802872A (zh) * | 2019-03-19 | 2019-05-24 | 北京信而泰科技股份有限公司 | 一种报文捕获方法、装置及设备 |
CN110677385A (zh) * | 2019-08-27 | 2020-01-10 | 浪潮思科网络科技有限公司 | 一种基于vlan的arp分类及转发方法 |
CN110677385B (zh) * | 2019-08-27 | 2022-07-19 | 浪潮思科网络科技有限公司 | 一种基于vlan的arp分类及转发方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105591989B (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105591989A (zh) | 一种协议报文上送cpu的芯片实现方法 | |
EP3282649B1 (en) | Data packet forwarding | |
US10742777B2 (en) | UDP protocol acceleration method and system | |
WO2015074324A1 (zh) | 一种数据包快速转发方法及装置 | |
CN102316121B (zh) | 支持动态扩展帧头的过滤匹配预处理方法及装置 | |
EP2604006B1 (en) | Method and apparatus for packet processing and a preprocessor | |
RU2005120697A (ru) | Модульный формат документов | |
RU2005136879A (ru) | Идентификатор источника для нахождения мас-адреса | |
US20230042747A1 (en) | Message Processing Method and Device, Storage Medium, and Electronic Device | |
CN102123082A (zh) | 数据包转发方法和设备 | |
US20180167319A1 (en) | Application identification cache | |
US20140101751A1 (en) | Hardware engine for high-capacity packet processing of network based data loss prevention appliance | |
CN110035074A (zh) | 一种acl匹配udf报文的芯片实现方法及装置 | |
CN106034089A (zh) | 基于调度流标识的报文调度方法和装置 | |
CN103095665A (zh) | 一种提升防火墙处理性能的方法和装置 | |
CN104113880A (zh) | 数据流控制方法和系统 | |
JP2007067515A (ja) | Lanスイッチ及びmacアドレス学習方法並びにプログラム | |
CN103200084A (zh) | 基于网络处理器的报文预处理方法、装置及网络处理器 | |
CN106878308A (zh) | 一种icmp报文匹配系统及方法 | |
CN106656656A (zh) | 一种网络设备抓包方法及装置 | |
CN108574637B (zh) | 一种地址自学习的方法、装置及交换机 | |
US20100238930A1 (en) | Router and method of forwarding ipv6 packets | |
CN108449445A (zh) | 一种范围型报文匹配电路及方法 | |
CN107707485A (zh) | 一种范围型ip报文策略匹配电路及方法 | |
CN109462497B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 215101 unit 13 / 16, 4th floor, building B, No. 5, Xinghan street, Suzhou Industrial Park, Jiangsu Province Patentee after: Suzhou Shengke Communication Co.,Ltd. Address before: 215021 unit 13 / 16, floor 4, building B, No. 5, Xinghan street, industrial park, Suzhou, Jiangsu Province Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd. |