本发明专利技术提供一种报文处理方法及装置,该方法应用于多核网络设备上,该方法包括:在接收到用户报文后,从所述用户报文中提取用户标识,根据预先配置的用户标识与硬件队列的对应关系,将所述用户报文存储到对应的硬件队列中;根据预先配置的用户标识与CPU核的对应关系,将所述用户标识对应的硬件队列中的用户报文发送给对应的CPU核进行处理。本发明专利技术为每一个用户配置了对应的硬件资源,避免由于某个用户报文过多,独占所有硬件资源,而使得其他用户无法正常接收报文进行处理。
【技术实现步骤摘要】
报文处理方法及装置
本专利技术涉及通信
,尤其涉及一种报文处理方法及装置。
技术介绍
虚拟化通常是指计算机软件在虚拟的物理环境上而不是真实的物理环境上运行。业界现有的虚拟化技术方案大多采用内核虚拟化技术,例如,LXC(Linuxcontainer)技术,可以在操作系统层次上为用户进程提供虚拟的执行环境。LXC虚拟化技术可以依据不同用户来进行线程隔离,为每个用户线程分配特定比例的CPU(CentralProcessingUnit,中央处理器)使用时间、硬件资源使用时间,限制可以使用的内存大小,提供设备访问控制,让每个用户认为自己独占整个系统。为了实现多核系统处理器的分配和隔离,操作系统需要规定每一个用户线程可以占用哪些CPU。但是现有方案只能在用户报文上送到操作系统层面时,才能根据不同用户上送到为该用户配置的CPU处理。在上送CPU之前,所有用户共享其它硬件资源。若存在某个用户报文过多,占用了所有的硬件资源,则即使其他用户对应的CPU空闲,也无法接收报文进行处理。
技术实现思路
有鉴于此,本专利技术提供了一种报文处理方法,该方法应用于多核网络设备上,该方法包括:在接收到用户报文后,从所述用户报文中提取用户标识,根据预先配置的用户标识与硬件队列的对应关系,将所述用户报文存储到对应的硬件队列中;根据预先配置的用户标识与CPU核的对应关系,将所述用户标识对应的硬件队列中的用户报文发送给对应的CPU核进行处理。本专利技术还提供了一种报文处理装置,该装置应用于多核网络设备上,该装置包括:报文存储单元,用于在接收到用户报文后,从所述用户报文中提取用户标识,根据预先配置的用户标识与硬件队列的对应关系,将所述用户报文存储到对应的硬件队列中;报文处理单元,用于根据预先配置的用户标识与CPU核的对应关系,将所述用户标识对应的硬件队列中的用户报文发送给对应的CPU核进行处理。本专利技术为每一个用户配置了对应的硬件资源,在接收到用户报文后,根据报文中携带的用户标识,选择对应的硬件资源进行处理,避免由于某个用户报文过多,独占所有硬件资源,而使得其他用户无法正常接收报文进行处理。附图说明图1是本专利技术一种实施方式中报文处理装置的逻辑结构及其基础硬件环境的示意图。图2是本专利技术一种实施方式中报文处理方法的流程图。图3是本专利技术一种实施方式中网络业务引擎芯片的基础结构示意图。图4是本专利技术一种实施方式中某一网络业务引擎芯片的硬件结构示意图。具体实施方式以下结合附图对本专利技术进行详细说明。本专利技术提供一种报文处理装置,以下以软件实现为例进行说明,但是本专利技术并不排除诸如硬件或者逻辑器件等其他实现方式。如图1所示,该装置运行的硬件环境包括CPU、内存、非易失性存储器以及其他硬件。该装置作为一个逻辑层面的虚拟装置,其通过CPU来运行。该装置包括报文存储单元和报文处理单元。请参考图2,该装置的使用和运行过程包括以下步骤:步骤101,报文存储单元在接收到用户报文后,从所述用户报文中提取用户标识,根据预先配置的用户标识与硬件队列的对应关系,将所述用户报文存储到对应的硬件队列中;步骤102,报文处理单元根据预先配置的用户标识与CPU核的对应关系,将所述用户标识对应的硬件队列中的用户报文发送给对应的CPU核进行处理。为了满足大流量、高速的网络通讯要求,普遍采用多核网络设备进行报文处理。对于不同用户的访问需求,现有技术已经实现了在操作系统层面上的隔离,即为不同的用户分配其对应的CPU核,只处理本用户的报文,避免了由于某一个用户报文过多,而占用大量CPU核,影响其他用户对CPU核的使用。但现有技术中并未解决其他硬件资源的占用问题。在将用户报文送往CPU核处理之前,不同用户的报文仍然共享其他硬件资源。若某一用户报文过多,占用了整个硬件资源,则即使其他用户的CPU核空闲,也无法接收报文进行处理。本专利技术通过对硬件资源进行配置,提高用户报文的处理效率。在多核网络设备中通常包括网络业务引擎芯片,图3所示为网络业务引擎芯片的基本结构,该类型芯片为多核处理器芯片,包括多核CPU、硬件阵列以及网络接口。本专利技术根据从网络接口上送的用户报文中携带的不同用户标识,选择对应的硬件阵列和CPU核进行报文处理。下面结合一种具体的芯片架构,对本专利技术的报文处理过程进行详细说明。如图4所示,某一网络业务引擎芯片包括如图3所示的多核CPU、硬件阵列以及网络接口,其中,硬件阵列包括报文接收模块、硬件调度模块以及CPU调度模块。报文接收模块主要用于对从网络接口上送的用户报文进行字段提取和解析分类,并根据解析结果向硬件调度模块申请内存指针,将硬件调度模块返回的内存指针发送给CPU调度模块,由CPU调度模块将内存指针发送给指定的CPU核,CPU核根据该内存指针,从内存中读取用户报文进行处理。本专利技术通过上述模块之间的配合,实现不同用户报文利用各自的硬件通道进行处理。首先,不同的用户报文在通过物理网口上送时,由以太网驱动为用户报文添加对应的用户标识。本专利技术采用私有串行总线互联协议HIGIG报文作为用户报文,以太网驱动在HIGIG报文的模块标识或端口标识字段添加用户标识。例如,某网络设备有3个物理网口,且3个物理网口分别分配给3个用户,每一个网口在接收到用户报文后,将用户标识添加到用户报文的端口标识字段。interface1:destport=1interface2:destport=2interface3:destport=3上述为3个网口对用户报文的处理过程,以网口1(interface1:destport=1)为例,“interface1”表示网络接口1;“destport”表示用户报文的端口标识字段,“1”表示用户1的用户标识。当添加了用户标识的报文上送到硬件阵列的报文接收模块时,报文接收模块对用户报文头进行逐层解析。报文接收模块不仅可以解析TCP/IP协议栈的标准七层报文头,还可以解析HIGIG、VLAN(VirtualLocalAreaNetwork,虚拟局域网)以及根据需求在报文起始位置添加的任意长度的自定义报文头。本专利技术中报文接收模块接收到HIGIG报文后,对该协议报文的报文头进行逐层解析,从报文头中提取字段与报文接收模块内部的存储匹配子模块中的表项进行匹配。每一个表项表示一个用户标识与报文分类结果的对应关系。该对应关系需要预先配置,具体配置过程如下:PCAMEntry1:term=higig,value=destport=1,style=1PCAMEntry2:term=higig,value=destport=2,style=2PCAMEntry3:term=higig,value=destport=3,style=3上述提供3个用户标识与报文分类结果对应关系的配置示例,以第一个表项“PCAMEntry1:term=higig,value=destport=1,style=1”为例阐述该表项含义。“PCAMEntry1”表示存储匹配子模块1的表项;“term=higig”表示可以处理的报文格式为HIGIG;“value=destport=1”表示对HIGIG报文头的destport字段为1的用户报文进行处理,即对用户1的报文进行处理;“style”表示报文的类型标记。本专利技术基于用户进行报文分类,因本文档来自技高网...
【技术保护点】
一种报文处理方法,该方法应用于多核网络设备上,其特征在于,该方法包括:在接收到用户报文后,从所述用户报文中提取用户标识,根据预先配置的用户标识与硬件队列的对应关系,将所述用户报文存储到对应的硬件队列中;根据预先配置的用户标识与CPU核的对应关系,将所述用户标识对应的硬件队列中的用户报文发送给对应的CPU核进行处理。
【技术特征摘要】
1.一种报文处理方法,该方法应用于多核网络设备中的网络业务引擎芯片上,其特征在于,该方法包括:所述网络业务引擎芯片的报文存储单元在接收到用户报文后,从所述用户报文中提取用户标识,根据预先配置的用户标识与硬件队列的对应关系,将所述用户报文存储到对应的硬件队列中;其中,所述用户报文中的用户标识是由所述网络业务引擎芯片的网络接口添加至用户报文中的;所述网络业务引擎芯片的报文处理单元根据预先配置的用户标识与CPU核的对应关系,将所述用户标识对应的硬件队列中的用户报文发送给对应的CPU核进行处理。2.如权利要求1所述的方法,其特征在于:所述用户报文为私有串行总线互联协议HIGIG报文;所述用户标识携带在所述HIGIG报文的模块标识字段或者端口标识字段。3.如权利要求1所述的方法,其特征在于,所述方法还包括:在配置用户标识与硬件队列的对应关系时,根据用户的数据流量大小设置所述用户对应的硬件队...
【专利技术属性】
技术研发人员:吴璠,范路,王树蓬,
申请(专利权)人:杭州华三通信技术有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。