报文处理方法及装置制造方法

文档序号:7811160阅读:143来源:国知局
报文处理方法及装置制造方法
【专利摘要】本发明提供一种报文处理方法及装置,该方法应用于多核网络设备上,该方法包括:在接收到用户报文后,从所述用户报文中提取用户标识,根据预先配置的用户标识与硬件队列的对应关系,将所述用户报文存储到对应的硬件队列中;根据预先配置的用户标识与CPU核的对应关系,将所述用户标识对应的硬件队列中的用户报文发送给对应的CPU核进行处理。本发明为每一个用户配置了对应的硬件资源,避免由于某个用户报文过多,独占所有硬件资源,而使得其他用户无法正常接收报文进行处理。
【专利说明】报文处理方法及装置

【技术领域】
[0001] 本发明涉及通信【技术领域】,尤其涉及一种报文处理方法及装置。

【背景技术】
[0002] 虚拟化通常是指计算机软件在虚拟的物理环境上而不是真实的物理环境上运行。 业界现有的虚拟化技术方案大多采用内核虚拟化技术,例如,LXC(Linux container)技术, 可以在操作系统层次上为用户进程提供虚拟的执行环境。LXC虚拟化技术可以依据不同用 户来进行线程隔离,为每个用户线程分配特定比例的CPU(Central Processing Unit,中央 处理器)使用时间、硬件资源使用时间,限制可以使用的内存大小,提供设备访问控制,让 每个用户认为自己独占整个系统。
[0003] 为了实现多核系统处理器的分配和隔离,操作系统需要规定每一个用户线程可以 占用哪些CPU。但是现有方案只能在用户报文上送到操作系统层面时,才能根据不同用户上 送到为该用户配置的CPU处理。在上送CPU之前,所有用户共享其它硬件资源。若存在某 个用户报文过多,占用了所有的硬件资源,则即使其他用户对应的CPU空闲,也无法接收报 文进行处理。


【发明内容】

[0004] 有鉴于此,本发明提供了一种报文处理方法,该方法应用于多核网络设备上,该方 法包括:
[0005] 在接收到用户报文后,从所述用户报文中提取用户标识,根据预先配置的用户标 识与硬件队列的对应关系,将所述用户报文存储到对应的硬件队列中;
[0006] 根据预先配置的用户标识与CPU核的对应关系,将所述用户标识对应的硬件队列 中的用户报文发送给对应的CPU核进行处理。
[0007] 本发明还提供了一种报文处理装置,该装置应用于多核网络设备上,该装置包 括:
[0008] 报文存储单元,用于在接收到用户报文后,从所述用户报文中提取用户标识,根据 预先配置的用户标识与硬件队列的对应关系,将所述用户报文存储到对应的硬件队列中;
[0009] 报文处理单元,用于根据预先配置的用户标识与CPU核的对应关系,将所述用户 标识对应的硬件队列中的用户报文发送给对应的CPU核进行处理。
[0010] 本发明为每一个用户配置了对应的硬件资源,在接收到用户报文后,根据报文中 携带的用户标识,选择对应的硬件资源进行处理,避免由于某个用户报文过多,独占所有硬 件资源,而使得其他用户无法正常接收报文进行处理。

【专利附图】

【附图说明】
[0011] 图1是本发明一种实施方式中报文处理装置的逻辑结构及其基础硬件环境的示 意图。
[0012] 图2是本发明一种实施方式中报文处理方法的流程图。
[0013] 图3是本发明一种实施方式中网络业务引擎芯片的基础结构示意图。
[0014] 图4是本发明一种实施方式中某一网络业务引擎芯片的硬件结构示意图。

【具体实施方式】
[0015] 以下结合附图对本发明进行详细说明。
[0016] 本发明提供一种报文处理装置,以下以软件实现为例进行说明,但是本发明并不 排除诸如硬件或者逻辑器件等其他实现方式。如图1所示,该装置运行的硬件环境包括 CPU、内存、非易失性存储器以及其他硬件。该装置作为一个逻辑层面的虚拟装置,其通过 (PU来运行。该装置包括报文存储单元和报文处理单元。请参考图2,该装置的使用和运行 过程包括以下步骤:
[0017] 步骤101,报文存储单元在接收到用户报文后,从所述用户报文中提取用户标识, 根据预先配置的用户标识与硬件队列的对应关系,将所述用户报文存储到对应的硬件队列 中;
[0018] 步骤102,报文处理单元根据预先配置的用户标识与CPU核的对应关系,将所述用 户标识对应的硬件队列中的用户报文发送给对应的CPU核进行处理。
[0019] 为了满足大流量、高速的网络通讯要求,普遍采用多核网络设备进行报文处理。对 于不同用户的访问需求,现有技术已经实现了在操作系统层面上的隔离,即为不同的用户 分配其对应的CPU核,只处理本用户的报文,避免了由于某一个用户报文过多,而占用大量 (PU核,影响其他用户对CPU核的使用。但现有技术中并未解决其他硬件资源的占用问题。 在将用户报文送往CPU核处理之前,不同用户的报文仍然共享其他硬件资源。若某一用户 报文过多,占用了整个硬件资源,则即使其他用户的CPU核空闲,也无法接收报文进行处 理。
[0020] 本发明通过对硬件资源进行配置,提高用户报文的处理效率。在多核网络设备中 通常包括网络业务引擎芯片,图3所示为网络业务引擎芯片的基本结构,该类型芯片为多 核处理器芯片,包括多核CPU、硬件阵列以及网络接口。本发明根据从网络接口上送的用户 报文中携带的不同用户标识,选择对应的硬件阵列和CPU核进行报文处理。下面结合一种 具体的芯片架构,对本发明的报文处理过程进行详细说明。
[0021] 如图4所示,某一网络业务引擎芯片包括如图3所示的多核CPU、硬件阵列以及网 络接口,其中,硬件阵列包括报文接收模块、硬件调度模块以及CPU调度模块。报文接收模 块主要用于对从网络接口上送的用户报文进行字段提取和解析分类,并根据解析结果向硬 件调度模块申请内存指针,将硬件调度模块返回的内存指针发送给(PU调度模块,由CPU调 度模块将内存指针发送给指定的CPU核,CPU核根据该内存指针,从内存中读取用户报文进 行处理。
[0022] 本发明通过上述模块之间的配合,实现不同用户报文利用各自的硬件通道进行处 理。首先,不同的用户报文在通过物理网口上送时,由以太网驱动为用户报文添加对应的用 户标识。本发明采用私有串行总线互联协议HIGIG报文作为用户报文,以太网驱动在HIGIG 报文的模块标识或端口标识字段添加用户标识。例如,某网络设备有3个物理网口,且3个 物理网口分别分配给3个用户,每一个网口在接收到用户报文后,将用户标识添加到用户 报文的端口标识字段。
[0023] interfacel: dest port = 1
[0024] interface〗:dest port = 2
[0025] interface3: dest port = 3
[0026] 上述为3个网口对用户报文的处理过程,以网口 1 (interfacel:dest port = 1) 为例,"interfacel"表示网络接口 1 ;"dest port"表示用户报文的端口标识字段,"1"表 示用户1的用户标识。
[0027] 当添加了用户标识的报文上送到硬件阵列的报文接收模块时,报文接收模块对用 户报文头进行逐层解析。报文接收模块不仅可以解析TCP/IP协议栈的标准七层报文头,还 可以解析 HIGIG、VLAN (Virtual Local Area Network,
[0028] 虚拟局域网)以及根据需求在报文起始位置添加的任意长度的自定义报文头。本 发明中报文接收模块接收到HIGIG报文后,对该协议报文的报文头进行逐层解析,从报文 头中提取字段与报文接收模块内部的存储匹配子模块中的表项进行匹配。每一个表项表 示一个用户标识与报文分类结果的对应关系。该对应关系需要预先配置,具体配置过程如 下:
[0029] PCAM Entryl :term = higig, value = destport = 1, style = 1
[0030] PCAM Entry2 :term = higig, value = destport = 2, style = 2
[0031] PCAM Entry3 :term = higig, value = destport = 3, style = 3
[0032] 上述提供3个用户标识与报文分类结果对应关系的配置示例,以第一个表项 "PCAM Entryl :term = higig, value = destport = 1,style = 1
[0033] "为例阐述该表项含义。"PCAM Entryl"表示存储匹配子模块1的表项;"term = higig"表示可以处理的报文格式为HIGIG ;"value = destport = 1"表示对HIGIG报文头 的destport字段为1的用户报文进行处理,即对用户1的报文进行处理;"style"表示报 文的类型标记。本发明基于用户进行报文分类,因此,对3个用户的报文分类style分别标 记为 1、2、3,以下简称 stylel、style2 以及 style3。
[0034] 当报文接收模块提取到HIGIG报文的端口标识字段时,若该字段与某一个存储匹 配子模块中的预设表项匹配,则按照预先配置的用户标识与硬件队列的对应关系,将用户 报文存储到对应的硬件阵列中。其中,用户标识与硬件队列的对应关系主要是指报文接收 模块根据分类结果style为每一个用户预先分配的硬件调度模块的指针队列和CPU调度模 块的缓存队列,具体配置过程如下。
[0035] stylel :AURA = 1, Group = 1
[0036] style2:AURA = 2, Group = 2
[0037] style3:AURA = 3, Group = 3
[0038] 上述指令是报文接收模块为3个用户配置的硬件队列,其中,AURA是硬件调度模 块的指针队列标识,3个用户的AURA分别标记为1、2、3,以下简称AURAUAURA2以及AURA3 ; Group是CPU调度模块的缓存队列标识,3个用户的Group分别标记为1、2、3,以下简称 Group 1、Group2 以及 Group3。
[0039] 报文接收模块接收到用户报文后,根据用户标识向其对应的指针队列申请指针, 例如,若接收到的报文为用户1的报文,则向硬件调度模块中的AURA1指针队列申请指针。 若申请成功,则硬件调度模块将内存指针返回给报文接收模块,报文接收模块将用户报文 保存到该指针指向的内存中,每一个内存指针对应一个用户报文。同时,报文接收模块将该 指针发送给CPU调度模块,CPU调度模块根据报文接收模块的配置将内存指针保存到对应 的Group中,例如,用户1的报文的内存指针送入CPU调度模块的Groupl中进行缓存,以便 在后续处理中将内存指针上送指定的CPU核进行处理。
[0040] 接收到的用户报文具体由哪几个CPU核处理,是由预先配置的用户标识与CPU核 的对应关系决定的,为每一个用户指定处理其报文的专用CPU核。对CPU核的具体配置过 程如下。
[0041] Groupl :cpuK cpu2
[0042] Group2 :cpu3、cpu4
[0043] Group3 :cpu5、cpu6
[0044] 上述指令为CPU调度模块为每一个Group配置的CPU核,例如,Groupl为用户1的 缓存队列,用户1的报文上送到cpul和cpu2进行处理。用户报文上送CPU的过程具体为 : CPU调度模块将Groupl中的内存指针上送给cpul或cpu2, cpul或cpu2从内存中读取用 户报文进行处理。
[0045] 由于每一个用户对网络的使用情况不尽相同,为了最大限度提高报文处理效率, 在配置用户标识与硬件队列的对应关系时,根据用户的数据流量设置对应硬件队列的长 度。假设用户1的数据流量〉用户2的数据流量〉用户3的数据流量,则可以按照各个用 户数据流量比例(假设为4:2:1)分配指针队列长度。
[0046] AURA 1 :4096
[0047] AURA2 :2048
[0048] AURA3 :1024
[0049] 设置的指针队列长度越大,则为对应用户分配的存储空间越多,可以处理的数据 量越多。通过合理配置,可最大程度发挥网络设备的报文处理能力。
[0050] 本发明通过为每一个用户配置了专用的报文处理通道,避免由于某个用户报文过 多,独占所有硬件资源,而使得其他用户无法正常接收报文进行处理。
[0051] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1. 一种报文处理方法,该方法应用于多核网络设备上,其特征在于,该方法包括: 在接收到用户报文后,从所述用户报文中提取用户标识,根据预先配置的用户标识与 硬件队列的对应关系,将所述用户报文存储到对应的硬件队列中; 根据预先配置的用户标识与CPU核的对应关系,将所述用户标识对应的硬件队列中的 用户报文发送给对应的CPU核进行处理。
2. 如权利要求1所述的方法,其特征在于: 所述方法具体应用于所述多核网络设备中的网络业务引擎芯片上。
3. 如权利要求1所述的方法,其特征在于: 所述用户报文为私有串行总线互联协议HIGIG报文;所述用户标识携带在所述HIGIG 报文的模块标识字段或者端口标识字段。
4. 如权利要求1所述的方法,其特征在于,所述方法还包括: 在配置用户标识与硬件队列的对应关系时,根据用户的数据流量大小设置所述用户对 应的硬件队列长度。
5. -种报文处理装置,该装置应用于多核网络设备上,其特征在于,该装置包括: 报文存储单元,用于在接收到用户报文后,从所述用户报文中提取用户标识,根据预先 配置的用户标识与硬件队列的对应关系,将所述用户报文存储到对应的硬件队列中; 报文处理单元,用于根据预先配置的用户标识与CPU核的对应关系,将所述用户标识 对应的硬件队列中的用户报文发送给对应的CPU核进行处理。
6. 如权利要求5所述的装置,其特征在于: 所述装置具体应用于所述多核网络设备中的网络业务引擎芯片上。
7. 如权利要求5所述的装置,其特征在于: 所述用户报文为私有串行总线互联协议HIGIG报文;所述用户标识携带在所述HIGIG 报文的模块标识字段或者端口标识字段。
8. 如权利要求5所述的装置,其特征在于,所述装置还包括:队列配置单元,用于在配 置用户标识与硬件队列的对应关系时,根据用户的数据流量大小设置所述用户对应的硬件 队列长度。
【文档编号】H04L12/863GK104158764SQ201410393069
【公开日】2014年11月19日 申请日期:2014年8月12日 优先权日:2014年8月12日
【发明者】吴璠, 范路, 王树蓬 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1