报文接收方法及网络设备技术

技术编号:16001146 阅读:98 留言:0更新日期:2017-08-15 15:25
本发明专利技术实施例涉及报文处理技术,尤其涉及一种报文接收方法及装置,其中,该方法应用于多核CPU中,多核CPU包括主核及多个从核,主核用于确定多个从核中每个从核的运行状态,并通过位图映射每个从核的运行状态,所述方法包括:多个从核中运行在内核态的第一从核确定来自中断控制器的中断信号是否为收包中断信号;若是,则第一从核在中断进程中将报文的内存地址写入到用户态和内核态共享的共享内存中,以使报文地址对于处于内核态及用户态的从核均可见,且第一从核执行的步骤基于预设的专用寄存器执行,预设的专用寄存器为仅供处于内核态的从核使用的寄存器。本发明专利技术实施例的报文接收方法及装置,能够提高报文的接收效率。

Message receiving method and network device

The embodiment of the invention relates to a message processing technology, and particularly relates to a device, message receiving method, this method is applied to multi-core CPU multi-core CPU, including the main nucleus and three from the nuclear core, for defining a plurality of each from the nucleus from the running state of nuclear, and by mapping each bitmap from the running state of the nucleus, the method comprises: a plurality of from the nucleus in the kernel to run the state first determine whether the interrupt signal from the nuclear charge packet interrupt signal from the interrupt controller; if the first share from nuclear to user mode and kernel address in the memory will interrupt the process of message sharing memory in order to address in the message, the kernel and user mode from the nucleus are visible, and the first special register preset execution based on from the nuclear steps, for the special register preset in the kernel state from Nuclear register. The message receiving method and the device of the embodiment of the invention can improve the receiving efficiency of the message.

【技术实现步骤摘要】
报文接收方法及网络设备
本专利技术实施例涉及报文处理技术,尤其涉及一种报文接收方法及网络设备。
技术介绍
随着网络技术的飞速发展,使得网络应用越来越多,流量规模也越来越大,传统的万兆路由器或防火墙逐步被TB(TrillionByte,兆字节)级设备代替。如何对大流量数据进行快速收取保存,用于后续业务的处理,成为现今的一个重要的研究方向。现有技术中,常规的报文接收方法多是基于中断收包,具体过程包括:网络接口接收到报文后,中断控制器向CPU(CentralProcessingUnit,中央处理器)发送中断请求信号,CPU接收到中断请求信号后暂停当前主处理进程,并依次执行关闭中断、保护断点、中断源识别及保护现场等操作后,执行报文接收程序。其中在保护现场操作中,CPU需要保存当前主处理进程所使用的标志寄存器(Eflags),CS(CodeSegment,代码段)寄存器,指令指针寄存器(Eip)等,CPU在中断进程中接收完报文后退出中断,并恢复主处理进程现场,返回继续执行主处理进程。从上述报文接收方法中可以看出,为了在报文接收完毕后从中断处继续执行主处理进程,每次中断时CPU都需要保存主处理进程的现场,并在出中断时恢复主处理进程现场,保存现场和恢复现场的过程不仅占用CPU资源,而且影响报文接收效率。
技术实现思路
本专利技术实施例提供了一种报文接收方法及网络设备,以提高报文的接收效率。第一方面,本专利技术实施例提供了一种报文接收方法,所述方法应用于多核中央处理器CPU中,所述多核CPU包括主核及多个从核,所述主核用于确定所述多个从核中每个从核的的运行状态,并通过位图映射每个从核的运行状态,其中,所述运行状态包括用户态和内核态,所述位图中的每个比特位分别对应一个从核,如果一个比特位的值为第一值,则指示该比特位所对应的从核运行在内核态,如果一个比特位的值为第二值,则指示该比特位所对应的从核运行在用户态;所述方法包括:所述多个从核中运行在内核态的第一从核确定来自中断控制器的中断信号是否为收包中断信号;若是,则所述第一从核在中断进程中将报文的内存地址写入到用户态和内核态共享的共享内存中,以使所述报文地址对于处于内核态及用户态的从核均可见,且所述第一从核执行的步骤基于预设的专用寄存器执行,所述预设的专用寄存器为仅供处于内核态的从核使用的寄存器。上述方案中,第一内核在中断进程中基于预设的专用寄存器执行报文接收步骤,该预设的专用寄存器为仅供处于内核态的从核使用的寄存器,不会对主处理进程所使用的寄存器产生影响,因此,本专利技术实施例的报文接收方法在进入中断进程时无需保存主处理进程现场,出中断时也无需恢复主处理进程的现场,因此本方案在报文接收过程中可以节约占用的CPU资源,提高报文的接收效率。可选的,所述第一从核在中断进程中将报文的内存地址写入到用户态和内核态共享的共享内存中,包括:所述第一从核从所述共享内存中申请至少一片处于空闲状态的报文描述符,其中,所述报文描述符中包含用于指示所述报文描述符处于空闲状态或使用状态的状态标识位以及一段内存空间的地址,所述第一从核申请的所述至少一片报文描述符中的状态标识位指示所述报文描述符处于空闲状态;所述第一从核将获取的所述至少一片报文描述符中包含的所述内存空间的地址发送给直接内存访问DMA,用于所述DMA将网络接口寄存器中的报文移动到所述至少一片报文描述符中包含的内存空间地址所对应的内存空间中;所述第一从核将获取的所述至少一片报文描述的状态标识位更改为指示所述报文描述符处于使用状态。本方案中,第一内核通过报文描述符映射报文在内存空间中的存储地址,一方面可以提高内核态从核的报文接收效率,另一方面便于用户态从核对内存空间中存储的报文访问。可选的,所述第一从核将获取的所述至少一片报文描述的状态标识位更改为指示所述报文描述符处于使用状态之后,所述方法还包括:所述第一从核确定所述网络接口寄存器中是否还有未接收的报文;若有,则所述第一从核返回执行所述获取至少一片处于空闲状态的报文描述符的步骤;若没有未接收的报文,则所述第一从核退出所述中断进程。可选的,所述第一从核退出所述中断进程后还包括:所述多个从核中运行在用户态的第二从核根据处于使用状态的报文描述符中的内存空间的地址,获取已移动到内存空间的报文;所述第二从核对已移动到所述内存空间的报文进行业务处理。本方案中,第二内核可以通过处于使用状态的报文描述符中的内存空间地址,访问内存空间中已接收到的报文,实现了用户态从核对内存空间中已接收报文的业务处理,进而可以提高已接收报文的业务处理效率。可选的,所述共享内存为所述多核CPU初始化时预留的部分内存,且所述共享内存为环形内存。本方案中,共享内存为多核CPU初始化时预留的部分内存,便于处于内核态和用户态的从核对共享内存的访问,进一步,共享内存为环形内存,有利于共享内存存储空间的循环使用,提高共享内存的利用效率。可选的,所述方法还包括:所述主核按照预设的时间间隔,获取所述位图中的第一值所对应的至少一个从核的执行状态信息以及所述位图中的第二值所对应的至少一个从核的执行状态信息;所述主核根据所述第一值所对应的至少一个从核的执行状态信息以及所述位图中的第二值所对应的至少一个从核的执行状态信息,对所述多个从核的运行状态进行调整。本方案中,主核按照预设的时间间隔采集处于内核态从核以及处于用户态从核的运行状态信息,从而可以根据采集到的从核的运行状态信息,调整从核的运行状态,实现内核态从核及用户态从核个数的合理分配,提高报文接收及报文业务处理的效率。可选的,所述主核根据所述第一值所对应的至少一个从核的执行状态信息以及所述位图中的第二值所对应的至少一个从核的执行状态信息,对所述多个从核的运行空间进行调整,包括:所述主核根据所述第一值所对应的至少一个从核的执行状态信息以及所述位图中的第二值所对应的至少一个从核的执行状态信息,确定控制因子,其中,所述控制因子包括以下至少一种:所述共享内存的长度、所述共享内存中的报文数量、内核态运行时间与用户态运行时间的比值;所述主核根据所述控制因子,确定运行于内核态的从核的个数以及运行于用户态的从核的个数;所述主核根据确定出的运行于内核空间的从核的个数以及运行于用户空间的从核的个数,对所述多个从核的运行状态进行调整。可选的,所述对所述多个从核的运行状态进行调整,包括:所述主核将至少一个运行在内核态的从核的运行状态更改为运行在用户态;和/或,所述主核将至少一个运行在用户态的从核的运行状态更改为运行在内核态。可选的,所述对所述多个从核的运行状态进行调整之后,所述方法还包括:所述主核根据所述调整的结果,将运行状态由内核态更改为用户态的从核在所述位图上所对应的比特位的值更改为第二值,将运行状态由用户态更改为内核态的从核在所述位图上所对应的比特位的值更改为第一值;所述主核将所述更改后的位图发送给中断控制器,用于所述网络接口接收到报文后所述中断控制器根据所述位图向运行于内核态的从核发送收包中断信号。第二方面,本专利技术实施例提供了一种网络设备,所述设备包括:多核中央处理器CPU、通信接口及存储器,所述多核CPU、所述通信接口及所述存储器通过通信总线相连;所述多核CPU包括主核及多个从核,所述本文档来自技高网...
报文接收方法及网络设备

【技术保护点】
一种报文接收方法,其特征在于,所述方法应用于多核中央处理器CPU中,所述多核CPU包括主核及多个从核,所述主核用于确定所述多个从核中每个从核的运行状态,并通过位图映射每个从核的运行状态,其中,所述运行状态包括用户态和内核态,所述位图中的每个比特位分别对应一个从核,如果一个比特位的值为第一值,则指示该比特位所对应的从核运行在内核态,如果一个比特位的值为第二值,则指示该比特位所对应的从核运行在用户态;所述方法包括:所述多个从核中运行在内核态的第一从核确定来自中断控制器的中断信号是否为收包中断信号;若是,则所述第一从核在中断进程中将报文的内存地址写入到用户态和内核态共享的共享内存中,以使所述报文地址对于处于内核态及用户态的从核均可见,且所述第一从核执行的步骤基于预设的专用寄存器执行,所述预设的专用寄存器为仅供处于内核态的从核使用的寄存器。

【技术特征摘要】
1.一种报文接收方法,其特征在于,所述方法应用于多核中央处理器CPU中,所述多核CPU包括主核及多个从核,所述主核用于确定所述多个从核中每个从核的运行状态,并通过位图映射每个从核的运行状态,其中,所述运行状态包括用户态和内核态,所述位图中的每个比特位分别对应一个从核,如果一个比特位的值为第一值,则指示该比特位所对应的从核运行在内核态,如果一个比特位的值为第二值,则指示该比特位所对应的从核运行在用户态;所述方法包括:所述多个从核中运行在内核态的第一从核确定来自中断控制器的中断信号是否为收包中断信号;若是,则所述第一从核在中断进程中将报文的内存地址写入到用户态和内核态共享的共享内存中,以使所述报文地址对于处于内核态及用户态的从核均可见,且所述第一从核执行的步骤基于预设的专用寄存器执行,所述预设的专用寄存器为仅供处于内核态的从核使用的寄存器。2.根据权利要求1所述的方法,其特征在于,所述第一从核在中断进程中将报文的内存地址写入到用户态和内核态共享的共享内存中,包括:所述第一从核从所述共享内存中申请至少一片处于空闲状态的报文描述符,其中,所述报文描述符中包含用于指示所述报文描述符处于空闲状态或使用状态的状态标识位以及一段内存空间的地址,所述第一从核申请的所述至少一片报文描述符中的状态标识位指示所述报文描述符处于空闲状态;所述第一从核将获取的所述至少一片报文描述符中包含的所述内存空间的地址发送给直接内存访问DMA,用于所述DMA将网络接口寄存器中的报文移动到所述至少一片报文描述符中包含的内存空间地址所对应的内存空间中;所述第一从核将获取的所述至少一片报文描述的状态标识位更改为指示所述报文描述符处于使用状态。3.根据权利要求2所述的方法,其特征在于,所述第一从核将获取的所述至少一片报文描述的状态标识位更改为指示所述报文描述符处于使用状态之后,所述方法还包括:所述第一从核确定所述网络接口寄存器中是否还有未接收的报文;若有,则所述第一从核返回执行所述获取至少一片处于空闲状态的报文描述符的步骤;若没有未接收的报文,则所述第一从核退出所述中断进程。4.根据权利要求3所述的方法,其特征在于,所述第一从核退出所述中断进程后还包括:所述多个从核中运行在用户态的第二从核根据处于使用状态的报文描述符中的内存空间的地址,获取已移动到内存空间的报文;所述第二从核对已移动到所述内存空间的报文进行业务处理。5.根据权利要求1~4中任一项所述的方法,其特征在于,所述共享内存为所述多核CPU初始化时预留的部分内存,且所述共享内存为环形内存。6.根据权利要求1~5中任一项所述的方法,其特征在于,所述方法还包括:所述主核按照预设的时间间隔,获取所述位图中的第一值所对应的至少一个从核的执行状态信息以及所述位图中的第二值所对应的至少一个从核的执行状态信息;所述主核根据所述第一值所对应的至少一个从核的执行状态信息以及所述位图中的第二值所对应的至少一个从核的执行状态信息,对所述多个从核的运行状态进行调整。7.根据权利要求6所述的方法,其特征在于,所述主核根据所述第一值所对应的至少一个从核的执行状态信息以及所述位图中的第二值所对应的至少一个从核的执行状态信息,对所述多个从核的运行空间进行调整,包括:所述主核根据所述第一值所对应的至少一个从核的执行状态信息以及所述位图中的第二值所对应的至少一个从核的执行状态信息,确定控制因子,其中,所述控制因子包括以下至少一种:所述共享内存的长度、所述共享内存中的报文数量、内核态运行时间与用户态运行时间的比值;所述主核根据所述控制因子,确定运行于内核态的从核的个数以及运行于用户态的从核的个数;所述主核根据确定出的运行于内核空间的从核的个数以及运行于用户空间的从核的个数,对所述多个从核的运行状态进行调整。8.根据权利要求6或7所述的方法,其特征在于,所述对所述多个从核的运行状态进行调整,包括:所述主核将至少一个运行在内核态的从核的运行状态更改为运行在用户态;和/或,所述主核将至少一个运行在用户态的从核的运行状态更改为运行在内核态。9.根据权利要求8所述的方法,其特征在于,所述对所述多个从核的运行状态进行调整之后,所述方法还包括:所述主核根据所述调整的结果,将运行状态由内核态更改为用户态的从核在所述位图上所对应的比特位的值更改为第二值,将运行状态由用户态更改为内核态的从核在所述位图上所对应的比特位的值更改为第一值;所述主核将所述更改后的位图发送给中断控制器,用于网络接口接收到报文后所述中断控制器根据所述位图向运行于内核态的从核发送收包中断信号。10.一种网络设备,其特征在于,所述设备包括:多核中央处理器CPU、通信接口及...

【专利技术属性】
技术研发人员:刘恒樊辉侯承舜
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1