CN101335737A - 一种网络处理器及其数据处理方法 - Google Patents
一种网络处理器及其数据处理方法 Download PDFInfo
- Publication number
- CN101335737A CN101335737A CNA2008101422452A CN200810142245A CN101335737A CN 101335737 A CN101335737 A CN 101335737A CN A2008101422452 A CNA2008101422452 A CN A2008101422452A CN 200810142245 A CN200810142245 A CN 200810142245A CN 101335737 A CN101335737 A CN 101335737A
- Authority
- CN
- China
- Prior art keywords
- vlan
- configuration information
- port
- statistical module
- module
- 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
Images
Landscapes
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种网络处理器及其数据处理方法,所述网络处理器包括驱动模块、统计模块和微码模块,所述数据处理包括对数据包进行分析的分析阶段,所述数据处理方法包含如下步骤:A.驱动模块将网络处理器的端口和VLAN中至少一者的配置信息写入统计模块;B.在所述分析阶段,微码模块访问统计模块得到所述配置信息,根据所述配置信息构造查找键值。本发明通过将端口和/或VLAN配置信息写入到统计模块,微码模块利用统计模块中的这些配置信息来构造查找键值,从而可以避免在Parse阶段为没有配置的业务和功能构造多余的查找键值,因而节省了指令,提高了网络处理器的数据转发效率。
Description
技术领域
本发明涉及数据传输领域,具体的说涉及一种网络处理器及其数据处理方法。
背景技术
网络处理器可以用来实现数据的转发等处理,以NP-2rev B型网络处理器为例,NP-2rev B是一款网络处理器芯片,可以提供10G双向的数据处理能力,拥有灵活的编程能力,开发人员可以通过编写微码来实现对数据传输中各种业务的处理。它对数据包进行处理时一般分为4个阶段:Parse(分析),Search(查找),Resolve(解决)和Modify(修改)。Parse主要是对数据包进行分析,然后根据分析的结果构造各种业务流程所需的查找键值,最后将这些查找键值传到Search进行查找,Parse阶段不提供表的查找功能。Search主要完成各种表的查找功能,并把最后的查找结果送到Resolve。Resolve主要对查找结果进行分析和处理,并把最后的处理信息发送到Modify。Modify接收Resolve的信息,并按照此信息对数据包进行相应的处理。
网络处理器如果要实现一些业务和功能,就会将这些业务和功能的相关信息配置在端口上或VLAN(Virtual Local Area Network,虚拟局域网)上,然后网络处理器就可以根据这些配置信息对数据包进行相应的处理。但是,Parse阶段只能对数据包本身进行分析,并不能够得到端口或VLAN上的配置信息,也就无法知道要实现哪些业务和功能,因此在Parse阶段需要构造所有业务和功能所需的查找键值,即使有些查找键值在Search阶段是无用的,这就浪费了Parse阶段的有效指令,也使网络处理器的处理性能下降。
发明内容
有鉴于此,本发明提供了一种网络处理器及其数据处理方法,解决了在Parse阶段因构造无用查找键值而浪费有效指令的问题,从而可以提高整个网络处理器的数据转发效率。
为了解决上述技术问题,本发明采用了如下技术方案:
一种网络处理器中的数据处理方法,所述网络处理器包括驱动模块、统计模块和微码模块,所述数据处理包括对数据包进行分析的分析阶段,所述数据处理方法包含如下步骤:
A、驱动模块将网络处理器的端口和VLAN中至少一者的配置信息写入统计模块;
B、在所述分析阶段,微码模块访问统计模块得到所述配置信息,根据所述配置信息构造查找键值。
所述统计模块包括至少一个计数器,所述计数器的类型至少包括36bits、54bits和72bits三种类型之一。
在所述步骤A中,端口配置信息包括至少一条端口配置表项,每一条端口配置表项对应于一个端口的配置,驱动模块将端口配置信息写入统计模块按如下方式进行:
A11、分配端口配置信息在统计模块中存储的起始地址;
A12、将某一端口的端口号与端口配置信息的存储起始地址相加得到所述端口在统计模块中的存储地址;
A13、将所述端口对应的端口配置表项写入到统计模块中地址为步骤A12中确定的端口存储地址的计数器中;
A14、重复步骤A12、A13直至端口配置信息中所有端口对应的端口配置表项都写入到统计模块中。
在所述步骤A中,VLAN配置信息包括至少一条VLAN配置表项,每一条VLAN配置表项对应于一个VLAN的配置,驱动模块将VLAN配置信息写入统计模块按如下方式进行:
A21、分配VLAN配置信息在统计模块中存储的起始地址;
A22、将某一VLAN的ID与VLAN配置信息的存储起始地址相加得到所述VLAN在统计模块中的存储地址;
A23、将所述VLAN对应的VLAN配置表项写入到统计模块中地址为步骤A22中确定的VLAN存储地址的计数器中;
A24、重复步骤A22、A23直至VLAN配置信息中所有VLAN对应的VLAN配置表项都写入到统计模块中。
本发明的数据处理方法,还包括在所述端口和VLAN中至少一者的配置信息发生变化时,将所述配置信息中发生变化的部分更新到统计模块中。
本发明还公开了一种可进行数据处理的网络处理器,所述网络处理器包括驱动模块、统计模块和微码模块,所述数据处理包括对数据包进行分析的分析阶段,其中:
驱动模块用于将网络处理器的端口和VLAN中至少一者的配置信息写入统计模块;
微码模块用于在所述分析阶段,访问统计模块得到所述配置信息,并根据所述配置信息构造查找键值。
所述的网络处理器的统计模块包括至少一个计数器,所述计数器的类型至少包括36bits、54bits和72bits三种类型之一。
对于端口配置信息,其包括至少一条端口配置表项,每一条端口配置表项对应于一个端口的配置。
对于VLAN配置信息,其包括至少一条VLAN配置表项,每一条VLAN配置表项对应于一个VLAN的配置。
本发明的网络处理器,驱动模块还用于在所述端口和VLAN中至少一者的配置信息发生变化时,将所述配置信息中发生变化的部分更新到统计模块中。
本发明通过将端口和/或VLAN配置信息写入到统计模块,微码模块利用统计模块中的这些配置信息来构造查找键值,从而可以避免在Parse阶段为没有配置的业务和功能构造多余的查找键值,因而节省了指令,提高了网络处理器的数据转发效率。
附图说明
图1是本发明具体实施方式的数据处理方法的流程图;
图2是本发明具体实施方式的网络处理器的结构示意图。
具体实施方式
下面对照附图并结合具体实施方式对本发明作详细说明。
参见图1和图2,仍以NP-2rev B网络处理器为例,图2显示了本发明具体实施方式的网络处理器进行数据处理时的主要模块,应当了解,图2并不限制网络处理器包括其他模块的可能性。如图2所示,网络处理器包括驱动模块、统计模块和微码模块,在本发明中,驱动模块主要用于将端口和/或VLAN的配置信息写入到统计模块。统计模块主要用来实现计数功能,它最多可以提供16兆个36bits的计数器,计数器可以有三种类型:36bits,54bits和72bits。且计数器的地址与计数器中的内容是一一对应的关系,利用计数器,可以存储驱动模块写入的端口或VLAN配置信息。微码模块主要实现读取统计模块中的端口或VLAN配置信息,利用配置信息进行查找键值的构造。
对于端口或VLAN配置信息,其以表的形式存在,端口表或者VLAN表都可以包括多条表项,例如对于端口表,称其表项为端口配置表项,每一条端口配置表项对应于一个端口的配置。同样的,VLAN表的表项称为VLAN配置表项,每一条VLAN配置表项对应于一个VLAN的配置。对于表项在统计模块中的存储,可以根据表项的大小来选择合适的计数器类型。
例如对于端口表的构造,如果表项大小为32bits,那么就可以选择36bits这种类型的计数器来存储。对于VLAN表的构造,如果表项大小为64bits,那么就可以选择72bits这种类型的计数器来存储。为了避免存储冲突,可以为端口表和VLAN表划分独立的存储空间,只需将它们在统计模块中的存储位置设置不同即可。在此可以将端口表在统计模块中的起始地址分配为X,将VLAN表在统计模块中的起始地址分配为M,当然X和M都不能超出统计模块的范围,端口表和VLAN表在统计模块中不能有重叠部分,并且端口表和VLAN表的最后一个表项的地址也不能超出统计模块的范围。
在划分好端口表和VLAN表的存储空间后,可以得到两个参数:各个表的起始地址和各个表中表项的数目。其中表的起始地址就是该表的第一个表项需要写在统计模块中的地址,表项的数目就是这个表中所有表项的总数。此后,网络处理器的驱动模块会将端口和VLAN上的配置信息写到统计模块中。
在写端口表的时候,首先得到端口表在统计模块中的起始地址X,假定某一端口的端口号为Y1,将该端口的端口号Y1与端口表的起始地址X相加得到地址Z1,然后将该端口的配置信息写到统计模块中地址为Z1的计数器中。按照上面的方法可以将所有端口的配置信息都写到统计模块中。
在写VLAN表的时候,首先得到VLAN表在统计模块中的起始地址M,将某一VLAN的ID(Identity)与VLAN表的起始地址M相加得到地址N1,然后将该VLAN的配置信息写到统计模块中地址为N1的计数器中。按照上面的方法可以将所有VLAN的配置信息都写到统计模块中。当端口或VLAN上的配置有变化时,网络处理器的驱动模块会监测到,并会把相应的更改按照上面的方法更新到统计模块中。
本发明具体实施方式的数据处理方法的流程如图1所示,包括如下步骤:
步骤S0,对端口和VLAN进行配置;
步骤S1,在统计模块中为端口表和VLAN表划分各自的存储空间;
步骤S2,将端口表的所有表项写到统计模块中;
步骤S3,将VLAN表的所有表项写到统计模块中;如果端口或VLAN上的配置有所变化就执行步骤S4,如果配置没有变化就执行步骤S5;
步骤S4,将有变化的表项更新到统计模块中;
步骤S5,分析数据包,访问统计模块并得到端口和VLAN上的配置信息;
步骤S6,根据端口和VLAN上的配置信息构造相应的查找键值。
在本发明中,首先根据功能和业务的需求对端口和VLAN进行配置,例如可以在端口上配置VPLS(Virtual Private LAN Service)业务,在VLAN上配置VLAN翻译功能等。为了能够提高Parse阶段的数据处理效率,则需要将这些端口和VLAN的配置信息写入到统计模块中,首先为端口表和VLAN表在统计模块中分配存储空间,然后将配置信息按照确定的存储地址写入到统计模块中。
此后,微码模块对进入网络处理器的数据包进行解析,解析后可以获得该包的入端口号以及VLANID等信息,对于端口配置信息,通过将端口表在统计模块中的起始地址X与端口号相加,得到统计模块的访问地址,通过读取该地址所对应计数器中的内容,就可以得到了该端口上所配置的信息了。
对于VLAN配置信息,使用VLAN表在统计模块中的起始地址M加上VLANID,得到统计模块的访问地址,通过读取该地址所对应计数器中的内容,也就得到了该VLAN上所配置的信息了。
得到端口和VLAN上的配置信息后,微码模块就可以根据这些配置信息构造各种业务和功能所需的查找键值了。
本发明通过在NP-2rev B的Parse阶段,利用访问统计模块来实现端口表和VLAN表的查找,然后根据查表得到的配置信息再去构造相应的查找键值,解决了因构造无用查找键值而浪费有效指令的问题,从而提高了网络处理器的数据处理能力。
应当理解的是,上述具体实施例的描述较为详细,不能因此而理解为对本发明专利保护范围的限制,本发明专利保护范围应以所附权利要求为准。
Claims (10)
1.一种网络处理器中的数据处理方法,其特征在于,所述网络处理器包括驱动模块、统计模块和微码模块,所述数据处理包括对数据包进行分析的分析阶段,所述数据处理方法包含如下步骤:
A、驱动模块将网络处理器的端口和VLAN中至少一者的配置信息写入统计模块;
B、在所述分析阶段,微码模块访问统计模块得到所述配置信息,根据所述配置信息构造查找键值。
2.如权利要求1所述的数据处理方法,其特征在于,所述统计模块包括至少一个计数器,所述计数器的类型至少包括36bits、54bits和72bits三种类型之一。
3.如权利要求2所述的数据处理方法,其特征在于,在所述步骤A中,端口配置信息包括至少一条端口配置表项,每一条端口配置表项对应于一个端口的配置,驱动模块将端口配置信息写入统计模块按如下方式进行:
A11、分配端口配置信息在统计模块中存储的起始地址;
A12、将某一端口的端口号与端口配置信息的存储起始地址相加得到所述端口在统计模块中的存储地址;
A13、将所述端口对应的端口配置表项写入到统计模块中地址为步骤A12中确定的端口存储地址的计数器中;
A14、重复步骤A12、A13直至端口配置信息中所有端口对应的端口配置表项都写入到统计模块中。
4.如权利要求2所述的数据处理方法,其特征在于,在所述步骤A中,VLAN配置信息包括至少一条VLAN配置表项,每一条VLAN配置表项对应于一个VLAN的配置,驱动模块将VLAN配置信息写入统计模块按如下方式进行:
A21、分配VLAN配置信息在统计模块中存储的起始地址;
A22、将某一VLAN的ID与VLAN配置信息的存储起始地址相加得到所述VLAN在统计模块中的存储地址;
A23、将所述VLAN对应的VLAN配置表项写入到统计模块中地址为步骤A22中确定的VLAN存储地址的计数器中;
A24、重复步骤A22、A23直至VLAN配置信息中所有VLAN对应的VLAN配置表项都写入到统计模块中。
5.如权利要求1至4任一所述的数据处理方法,其特征在于,还包括在所述端口和VLAN中至少一者的配置信息发生变化时,将所述配置信息中发生变化的部分更新到统计模块中。
6.一种可进行数据处理的网络处理器,其特征在于,所述网络处理器包括驱动模块、统计模块和微码模块,所述数据处理包括对数据包进行分析的分析阶段,其中:
驱动模块用于将网络处理器的端口和VLAN中至少一者的配置信息写入统计模块;
微码模块用于在所述分析阶段,访问统计模块得到所述配置信息,并根据所述配置信息构造查找键值。
7.如权利要求6所述的网络处理器,其特征在于,所述统计模块包括至少一个计数器,所述计数器的类型至少包括36bits、54bits和72bits三种类型之一。
8.如权利要求7所述的网络处理器,其特征在于,所述端口配置信息包括至少一条端口配置表项,每一条端口配置表项对应于一个端口的配置。
9.如权利要求7所述的网络处理器,其特征在于,所述VLAN配置信息包括至少一条VLAN配置表项,每一条VLAN配置表项对应于一个VLAN的配置。
10.如权利要求6至9任一所述的网络处理器,其特征在于,所述驱动模块还用于在所述端口和VLAN中至少一者的配置信息发生变化时,将所述配置信息中发生变化的部分更新到统计模块中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101422452A CN101335737B (zh) | 2008-08-05 | 2008-08-05 | 一种网络处理器及其数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101422452A CN101335737B (zh) | 2008-08-05 | 2008-08-05 | 一种网络处理器及其数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101335737A true CN101335737A (zh) | 2008-12-31 |
CN101335737B CN101335737B (zh) | 2011-09-21 |
Family
ID=40198045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101422452A Active CN101335737B (zh) | 2008-08-05 | 2008-08-05 | 一种网络处理器及其数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101335737B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103580893A (zh) * | 2012-07-31 | 2014-02-12 | 中兴通讯股份有限公司 | 基于分组传送网设备的网络处理器配置写入方法及装置 |
CN105656665A (zh) * | 2015-12-24 | 2016-06-08 | 浪潮集团有限公司 | 一种交换机端口配置的方法和交换机 |
CN106445968A (zh) * | 2015-08-11 | 2017-02-22 | 阿里巴巴集团控股有限公司 | 一种数据合并方法及装置 |
CN109597813A (zh) * | 2018-11-28 | 2019-04-09 | 深圳市轱辘汽车维修技术有限公司 | 一种车辆数据处理方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100418331C (zh) * | 2006-03-03 | 2008-09-10 | 清华大学 | 基于网络处理器的路由查找结果缓存方法 |
CN100589447C (zh) * | 2007-07-10 | 2010-02-10 | 中兴通讯股份有限公司 | 实现交换芯片与网络处理器混合转发的方法 |
-
2008
- 2008-08-05 CN CN2008101422452A patent/CN101335737B/zh active Active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103580893A (zh) * | 2012-07-31 | 2014-02-12 | 中兴通讯股份有限公司 | 基于分组传送网设备的网络处理器配置写入方法及装置 |
CN106445968A (zh) * | 2015-08-11 | 2017-02-22 | 阿里巴巴集团控股有限公司 | 一种数据合并方法及装置 |
CN105656665A (zh) * | 2015-12-24 | 2016-06-08 | 浪潮集团有限公司 | 一种交换机端口配置的方法和交换机 |
CN109597813A (zh) * | 2018-11-28 | 2019-04-09 | 深圳市轱辘汽车维修技术有限公司 | 一种车辆数据处理方法及装置 |
CN109597813B (zh) * | 2018-11-28 | 2022-01-04 | 深圳市轱辘车联数据技术有限公司 | 一种车辆数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101335737B (zh) | 2011-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102549988B (zh) | 路由器和由路由器执行的方法 | |
US6397232B1 (en) | Method and system for translating the format of the content of document file | |
JP5594171B2 (ja) | 通信処理装置、アドレス学習プログラムおよびアドレス学習方法 | |
CN110601922B (zh) | 一种对照实验的实现方法、装置、电子设备和存储介质 | |
CN102867071A (zh) | 一种网管海量历史数据管理方法 | |
US20140204943A1 (en) | Systems and methods for packet routing | |
EP3020167A1 (en) | Member device of stacked switches system | |
CN107040393B (zh) | 一种路由管理方法和设备 | |
CN106341338B (zh) | 一种报文的转发方法及装置 | |
CN101335737B (zh) | 一种网络处理器及其数据处理方法 | |
CN103023827A (zh) | 一种虚拟化数据中心的数据转发方法及其实现设备 | |
CN101753362A (zh) | 分布式网络设备中堆叠虚拟局域网的配置方法及装置 | |
CN100531097C (zh) | 一种桥接的方法及装置 | |
CN108737278A (zh) | 一种查表方法及装置 | |
CN101052011B (zh) | Mpls标签分配方法、系统和设备 | |
CN102325077B (zh) | 分支机构间的通信方法及分支机构的出口路由器 | |
CN106416151A (zh) | 用于分组处理的基于多表哈希查找 | |
CN109981464A (zh) | 一种在fpga中实现的tcam电路结构及其匹配方法 | |
CN106453091B (zh) | 路由器转发平面的等价路由管理方法和装置 | |
CN107995116A (zh) | 报文发送方法及通信设备 | |
CN104009918A (zh) | 一种业务报文处理方法、装置及系统 | |
CN104363177A (zh) | 一种用于报文处理的规则表项的优化方法及装置 | |
CN102868775B (zh) | 地址解析协议表容量的扩展方法、报文转发方法和装置 | |
US11652666B2 (en) | Methods for identifying a source location in a service chaining topology | |
CN105122744B (zh) | 通过按需路径更新的msdc扩展 |
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 |