一种网络处理器及其数据处理方法

文档序号:7918052阅读:121来源:国知局
专利名称:一种网络处理器及其数据处理方法
技术领域
本发明涉及数据传输领域,具体的说涉及一种网络处理器及其数据处 理方法。
背景技术
网络处理器可以用来实现数据的转发等处理,以NP-2 rev B型网络处 理器为例,NP-2 rev 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中,端口配置信息包括至少一条端口配置表项,每一条 端口配置表项对应于一个端口的配置,驱动模块将端口配置信息写入统计 模块按如下方式进行All、分配端口配置信息在统计模块中存储的起始地址;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-2 rev B网络处理器为例,图2显示了本发 明具体实施方式
的网络处理器进行数据处理时的主要模块,应当了解,图 2并不限制网络处理器包括其他模块的可能性。如图2所示,网络处理器 包括驱动模块、统计模块和微码模块,在本发明中,驱动模块主要用于将 端口和/或VLAN的配置信息写入到统计模块。统计模块主要用来实现计数 功能,它最多可以提供16兆个36bits的计数器,计数器可以有三种类型 36bits, 54bits和72bits。且计数器的地址与计数器中的内容是一一对应 的关系,利用计数器,可以存储驱动模块写入的端口或VLAN配置信息。微 码模块主要实现读取统计模块中的端口或VLAN配置信息,利用配置信息进 行査找键值的构造。对于端口或VLAN配置信息,其以表的形式存在,端口表或者VLAN表 都可以包括多条表项,例如对于端口表,称其表项为端口配置表项,每一 条端口配置表项对应于一个端口的配置。同样的,VLAN表的表项称为VL認 配置表项,每一条VLAN配置表项对应于一个VLAN的配置。对于表项在统 计模块中的存储,可以根据表项的大小来选择合适的计数器类型。例如对于端口表的构造,如果表项大小为32bits,那么就可以选择 36bits这种类型的计数器来存储。对于VLAN表的构造,如果表项大小为 64bits,那么就可以选择72bits这种类型的计数器来存储。为了避免存储 冲突,可以为端口表和VLAN表划分独立的存储空间,只需将它们在统计模 块中的存储位置设置不同即可。在此可以将端口表在统计模块中的起始地 址分配为X,将VLAN表在统计模块中的起始地址分配为M,当然X和M都 不能超出统计模块的范围,端口表和VLAN表在统计模块中不能有重叠部 分,并且端口表和VLAN表的最后一个表项的地址也不能超出统计模块的范 围。在划分好端口表和VLAN表的存储空间后,可以得到两个参数各个表 的起始地址和各个表中表项的数目。其中表的起始地址就是该表的第一个 表项需要写在统计模块中的地址,表项的数目就是这个表中所有表项的总 数。此后,网络处理器的驱动模块会将端口和VLAN上的配置信息写到统计 模块中。在写端口表的时候,首先得到端口表在统计模块中的起始地址x,假定某一端口的端口号为Yl,将该端口的端口号Yl与端口表的起始地址X 相加得到地址Z1,然后将该端口的配置信息写到统计模块中地址为Zl的 计数器中。按照上面的方法可以将所有端口的配置信息都写到统计模块中。在写VLAN表的时候,首先得到VLAN表在统计模块中的起始地址M, 将某一VLAN的ID (Identity)与VLAN表的起始地址M相加得到地址Nl, 然后将该VLAN的配置信息写到统计模块中地址为N1的计数器中。按照上 面的方法可以将所有VLAN的配置信息都写到统计模块中。当端口或VLAN 上的配置有变化时,网络处理器的驱动模块会监测到,并会把相应的更改 按照上面的方法更新到统计模块中。本发明具体实施方式
的数据处理方法的流程如图l所示,包括如下步骤步骤SO ,对端口和VLAN进行配置;步骤SI ,在统计模块中为端口表和VLAN表划分各自的存储空间; 步骤S2,将端口表的所有表项写到统计模块中; 步骤S3,将VLAN表的所有表项写到统计模块中;如果端口或VLAN上 的配置有所变化就执行步骤S4,如果配置没有变化就执行步骤S5; 步骤S4,将有变化的表项更新到统计模块中;步骤S5,分析数据包,访问统计模块并得到端口和VLAN上的配置信息;步骤S6,根据端口和VLAN上的配置信息构造相应的査找键值。在本发明中,首先根据功能和业务的需求对端口和VLAN进行配置,例 如可以在端口上配置VPLS (Virtual Private LAN Service)业务,在VLAN 上配置VLAN翻译功能等。为了能够提高Parse阶段的数据处理效率,则需 要将这些端口和VLAN的配置信息写入到统计模块中,首先为端口表和VLAN 表在统计模块中分配存储空间,然后将配置信息按照确定的存储地址写入 到统计模块中。此后,微码模块对进入网络处理器的数据包进行解析,解析后可以获 得该包的入端口号以及VLAN ID等信息,对于端口配置信息,通过将端口 表在统计模块中的起始地址X与端口号相加,得到统计模块的访问地址,通过读取该地址所对应计数器中的内容,就可以得到了该端口上所配置的 信息了。
对于VLAN配置信息,使用VLAN表在统计模块中的起始地址M加上VL認 ID,得到统计模块的访问地址,通过读取该地址所对应计数器中的内容, 也就得到了该VL認上所配置的信息了 。
得到端口和VLAN上的配置信息后,微码模块就可以根据这些配置信息 构造各种业务和功能所需的査找键值了 。
本发明通过在NP-2 rev B的Parse阶段,利用访问统计模块来实现端 口表和VLAN表的査找,然后根据查表得到的配置信息再去构造相应的查找 键值,解决了因构造无用査找键值而浪费有效指令的问题,从而提高了网 络处理器的数据处理能力。
应当理解的是,上述具体实施例的描述较为详细,不能因此而理解为 对本发明专利保护范围的限制,本发明专利保护范围应以所附权利要求为 准。
权利要求
1.一种网络处理器中的数据处理方法,其特征在于,所述网络处理器包括驱动模块、统计模块和微码模块,所述数据处理包括对数据包进行分析的分析阶段,所述数据处理方法包含如下步骤A、驱动模块将网络处理器的端口和VLAN中至少一者的配置信息写入统计模块;B、在所述分析阶段,微码模块访问统计模块得到所述配置信息,根据所述配置信息构造查找键值。
2. 如权利要求1所述的数据处理方法,其特征在于,所述统计模块包 括至少一个计数器,所述计数器的类型至少包括36bits、 54bits和72bits三种类型之一。
3. 如权利要求2所述的数据处理方法,其特征在于,在所述步骤A中, 端口配置信息包括至少一条端口配置表项,每一条端口配置表项对应于一 个端口的配置,驱动模块将端口配置信息写入统计模块按如下方式进行All、分配端口配置信息在统计模块中存储的起始地址;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中至少一者的配置信息发生变化时,将 所述配置信息中发生变化的部分更新到统计模块中。
全文摘要
本发明公开了一种网络处理器及其数据处理方法,所述网络处理器包括驱动模块、统计模块和微码模块,所述数据处理包括对数据包进行分析的分析阶段,所述数据处理方法包含如下步骤A.驱动模块将网络处理器的端口和VLAN中至少一者的配置信息写入统计模块;B.在所述分析阶段,微码模块访问统计模块得到所述配置信息,根据所述配置信息构造查找键值。本发明通过将端口和/或VLAN配置信息写入到统计模块,微码模块利用统计模块中的这些配置信息来构造查找键值,从而可以避免在Parse阶段为没有配置的业务和功能构造多余的查找键值,因而节省了指令,提高了网络处理器的数据转发效率。
文档编号H04L12/46GK101335737SQ20081014224
公开日2008年12月31日 申请日期2008年8月5日 优先权日2008年8月5日
发明者陈世猛 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1