CN105591989B - 一种协议报文上送cpu的芯片实现方法 - Google Patents
一种协议报文上送cpu的芯片实现方法 Download PDFInfo
- Publication number
- CN105591989B CN105591989B CN201610048133.5A CN201610048133A CN105591989B CN 105591989 B CN105591989 B CN 105591989B CN 201610048133 A CN201610048133 A CN 201610048133A CN 105591989 B CN105591989 B CN 105591989B
- Authority
- CN
- China
- Prior art keywords
- message
- exception
- cpu
- policy
- bitmap
- 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
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(User DatagramProtocol,用户数据协议);IP头中的协议域为6,表示高层协议为TCP(TransmissionControl Protocol,传输控制协议);IP头中的协议域为1,表示ICMP(Internet ControlMessage Protocol,Internet控制报文协议)。TCP和UDP包内的应用程协议的类型依靠的是TCP和UDP包首部的端口号来进行区分。
但是当遇到特殊报文时,标准解析模块无法识别报文,于是对于一些广播格式的协议,是否上CPU的控制往往不够精确。
发明内容
本发明提出了一种协议报文上送CPU的芯片实现方法,通过一种有效的芯片识别机制,以实现精确控制各种格式的协议报文是否上CPU。
本发明提供了一种协议报文上送CPU的芯片实现方法,该方法包括:
在芯片中设置一匹配表,所述匹配表中配置有Exception ID和策略C1;在端口、VLAN或隧道协议的配置中设置一Bitmap,用于控制所述策略C1是否执行;
协议报文进入芯片,首先进行匹配查找,根据报文中的关键字段查找所述匹配表,得到对应的所述Exception ID和策略C1,再根据所述Bitmap决定将所述协议报文在上CPU的同时转发或者丢弃。
优选地,所述匹配查找的关键字段包含源MAC地址,目的MAC地址和IP五元组,所述IP五元组为报文源IP地址,源端口,目的IP地址,目的端口和传输层协议。
优选地,所述Exception ID设置在匹配查找结果的属性中,其取值范围为0-N,其中,N为大于等于零的整数。
优选地,所述策略C1设置在匹配查找结果的属性中。
优选地,所述策略C1为报文在上CPU的同时丢弃该报文,或者为报文在上CPU的同时转发该报文。
优选地,所述Bitmap宽度与所述Exception ID的最大值相同。
优选地,所述Bitmap用二进制表示。
优选地,所述匹配查找,当查找有结果时所述才Exception ID生效,此时所述Exception ID取值不为0。
优选地,若所述二进制表示的Bitmap从低位开始的第E1个比特位为0,则策略C1不生效;若所述二进制表示的Bitmap从低位开始的第E1个比特位不为0,则策略C1生效,所述E1表示Exception ID的值。
优选地,若所述二进制表示的Bitmap从低位开始的第E1个比特位为1,则策略C1生效,所述E1表示Exception ID的值。
本发明能精确控制各种格式的协议报文是否上CPU,并且在上CPU的同时,在端口、VLAN或隧道协议上灵活控制是否丢弃或转发该报文。
附图说明
图1是本发明协议报文上送CPU的芯片实现方法的流程示意图。
具体实施方式
下面将对本发明实施例的技术方案进行清楚、完整的描述。
本发明揭示了一种协议报文上送CPU的芯片实现方法,通过在芯片中设置一个CAM,用来对报文进行匹配查找,在查找结果的属性中设置Exception ID和策略C1,在端口、VLAN或隧道协议的配置中设置Bitmap控制策略C1的执行,从而对各种协议报文上送CPU的行为进行精确控制。
本发明所揭示的一种协议报文上送CPU的芯片实现方法,如图1所示:
首先,在协议报文进入芯片之前,在芯片中设置一匹配表,所述匹配表中配置有Exception ID和策略C1;在端口、VLAN或隧道协议的配置中设置一Bitmap,用于控制所述策略C1是否执行。
具体地,在芯片的入方向处理引擎(IPE)中,设置一个CAM,CAM中配置有查找的关键字段,用于进行匹配查找,查找的关键字段包含源MAC地址,目的MAC地址和IP五元组,协议报文进入芯片后,根据报文中的源MAC地址,目的MAC地址和IP五元组与CAM中配置的关键字段进行匹配。
CAM查找结果的属性中,为每一种协议报文设置一个Exception ID,记为E1,取值范围为0-N,N为大于等于0的整数,即一个Exception ID代表一种协议报文。E1取值范围为0-N,即表示支持N种协议报文。在CAM进行匹配查找时,只有查到结果,Eception ID才有效。
报文进入芯片,在与CAM中设置好的特征字段相匹配后,在其属性中得到此报文的Exception ID。对于某些报文来说,需要在上CPU的同时转发该报文到下一台需要此报文的设备上;而某些报文则只需要上送给CPU,不需要转发,就直接丢弃。因此,本发明在CAM查找结果的属性中,还设置了报文的处理策略,为下面描述方便,记为策略C1。策略C1为报文在上CPU的同时丢弃该报文或者报文在上CPU的同时转发该报文。
对于策略C1的执行与否,本发明通过在端口、VLAN或隧道协议的配置中设置一个Bitmap,用来控制策略C1是否执行。具体地,设置Bitmap的宽度与CAM中Exception ID的最大值相同,均为N,即有N个有效Exception ID(N不为0时Exception ID有效)时,Bitmap的宽度也为N。本实施例中,Bitmap用二进制表示,如设置的Exception ID E1的取值范围为0-3,那么Bitmap的宽度对应为3,默认值即为二进制的‘000’;若设置的Exception ID E1的取值范围为0-4,那么所述Bitmap宽度也为4,默认值即为二进制的‘0000’。
本实施例中,策略C1生效(即执行的)需满足的条件设置为:若Exception ID E1不为0,用二进制表示的Bitmap从低位开始的的第E1个比特位也不为0,则Exception ID E1生效,报文上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。
以上述Exception ID E1的取值范围为0-3为例,端口上配置了该Bitmap值为二进制的‘010’,若CAM查到报文匹配,得到Exception ID E1=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 (9)
1.一种协议报文上送CPU的芯片实现方法,其特征在于,所述方法包括:
在芯片中设置一匹配表,所述匹配表中配置有Exception ID和策略C1;在端口、VLAN或隧道协议的配置中设置一Bitmap,用于控制所述策略C1是否执行,其中,一个Exception ID代表一种协议报文;
协议报文进入芯片,首先进行匹配查找,根据报文中的关键字段查找所述匹配表,得到对应的所述Exception ID和策略C1,若Exception ID E1不为0,用二进制表示的Bitmap从低位开始的第E1个比特位也不为0,则Exception ID E1生效,报文上CPU,且策略C1生效;若设置的策略C1为丢弃,那么执行策略C1即报文上CPU的同时丢弃该报文,若设置的策略C1为转发,那么执行策略C1即报文上CPU的同时转发该报文,Exception ID E1为每一种协议报文设置的一个Exception ID,E1表示Exception ID的值,取值范围为0-N,N为大于等于0的整数,策略C1为报文在上CPU的同时丢弃,或者为报文在上CPU的同时转发。
2.根据权利要求1所述的方法,其特征在于,所述匹配查找的关键字段包含报文的源MAC地址,目的MAC地址和IP五元组。
3.根据权利要求1所述的方法,其特征在于,所述Exception ID设置在匹配查找结果的属性中,其取值范围为0-N,其中,N为大于等于0的整数。
4.根据权利要求1所述的方法,其特征在于,所述策略C1设置在匹配查找结果的属性中。
5.根据权利要求1所述的方法,其特征在于,所述Bitmap宽度与所述Exception ID的最大值相同。
6.根据权利要求1或5所述的方法,其特征在于,所述Bitmap用二进制表示。
7.根据权利要求6所述的方法,其特征在于,当报文查找到匹配结果时,所述ExceptionID生效,此时Exception ID的值不为0。
8.根据权利要求7所述的方法,其特征在于,若所述二进制表示的Bitmap从低位开始的第E1个比特位为0,则策略C1不生效。
9.根据权利要求8所述的方法,其特征在于,若所述二进制表示的Bitmap从低位开始的第E1个比特位为1,则策略C1生效,所述E1表示Exception ID的值。
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 CN105591989A (zh) | 2016-05-18 |
CN105591989B true 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) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106254269B (zh) * | 2016-08-18 | 2019-08-06 | 杭州迪普科技股份有限公司 | 一种报文转发方法及装置 |
CN107508836B (zh) * | 2017-09-27 | 2019-11-12 | 杭州迪普科技股份有限公司 | 一种acl规则下发的方法及装置 |
CN109951425B (zh) * | 2017-12-21 | 2021-03-23 | 张家界航空工业职业技术学院 | 基于fpga的tcp流状态完整性检测方法 |
CN109995678B (zh) * | 2017-12-29 | 2022-06-10 | 迈普通信技术股份有限公司 | 报文传输方法及装置 |
CN109802872B (zh) * | 2019-03-19 | 2021-07-30 | 北京信而泰科技股份有限公司 | 一种报文捕获方法、装置及设备 |
CN110677385B (zh) * | 2019-08-27 | 2022-07-19 | 浪潮思科网络科技有限公司 | 一种基于vlan的arp分类及转发方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 | 大连梯耐德网络技术有限公司 | 一种多协议网络报文传输保序系统的实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7411957B2 (en) * | 2004-03-26 | 2008-08-12 | Cisco Technology, Inc. | Hardware filtering support for denial-of-service attacks |
-
2016
- 2016-01-25 CN CN201610048133.5A patent/CN105591989B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 | 大连梯耐德网络技术有限公司 | 一种多协议网络报文传输保序系统的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105591989A (zh) | 2016-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105591989B (zh) | 一种协议报文上送cpu的芯片实现方法 | |
US10735221B2 (en) | Flexible processor of a port extender device | |
US8520672B2 (en) | Packet switching device using results determined by an application node | |
EP3958521A1 (en) | Method and apparatus for providing service for service flow | |
US9419889B2 (en) | Method and system for discovering a path of network traffic | |
US9154418B1 (en) | Efficient packet classification in a network device | |
US7869411B2 (en) | Compact packet operation device and method | |
US10701190B2 (en) | Efficient parsing of optional header fields | |
US9590922B2 (en) | Programmable and high performance switch for data center networks | |
US20180167319A1 (en) | Application identification cache | |
US20140101751A1 (en) | Hardware engine for high-capacity packet processing of network based data loss prevention appliance | |
WO2016131422A1 (en) | Flow entry generating and packet processing based on flow entry | |
US20220393908A1 (en) | Message Encapsulation Method and Apparatus, and Message Decapsulation Method and Apparatus | |
US20220294712A1 (en) | Using fields in an encapsulation header to track a sampled packet as it traverses a network | |
KR20150146449A (ko) | 패킷 컨텐츠로부터 해시 입력을 형성하는 방법 및 장치 | |
US10951523B2 (en) | Port extender with local switching | |
CN108777654B (zh) | 报文转发方法及路由设备 | |
US20130329739A1 (en) | Obtaining information from data items | |
CN115484193A (zh) | 网络丢包流量的监控和解析方法、系统、存储介质及设备 | |
CN111770049B (zh) | 全局缓存变量及报文信息存储方法及装置 | |
WO2006085374A1 (ja) | 通信装置 | |
US10917502B2 (en) | Method for using metadata in internet protocol packets | |
WO2014007247A1 (ja) | ネットワーク装置、パケット処理方法及びプログラム、並びにネットワークシステム | |
JP4597102B2 (ja) | パケット交換装置 | |
US10063487B2 (en) | Pattern matching values of a packet which may result in false-positive matches |
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 |
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. |
|
CP03 | Change of name, title or address |