[发明专利]能使报文高效地从内核态提交到用户态的方法及系统在审
申请号: | 201410347391.4 | 申请日: | 2014-07-21 |
公开(公告)号: | CN104123229A | 公开(公告)日: | 2014-10-29 |
发明(设计)人: | 乐义华 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F9/44 |
代理公司: | 上海光华专利事务所 31219 | 代理人: | 余明伟 |
地址: | 201616 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 报文 高效 内核 提交 用户 方法 系统 | ||
技术领域
本发明涉及报文处理领域,特别是涉及一种能使报文高效地从内核态提交到用户态的方法及系统。
背景技术
现代通信设备中,尤其是大型机架、机框式的通信设备,往往是采用CPU+ASIC的硬件设计方案。ASIC通信芯片负责硬件转发(包括switch和route等),而CPU负责协议层面的处理,这个处理过程主要依赖于ASIC芯片传向CPU的报文来完成。
CPU上运行的应用程序或协议模块,需要对ASIC芯片发往CPU的报文进行处理,包括很多复杂的协议报文,例如RSTP、DHCP、IGMP等协议报文,还包括需要送往协议栈处理的IP层报文等等。
在一般LINUX系统的设计中,往往有两种方案:
方案一:直接修改LINUX内核协议栈,加入对RSTP、DHCP以及IGMP等协议报文的处理,这种处理方式的弊端在于:
1、修改LINUX内核,会造成不安全因素:因为Linux内核协议栈有很高的安全处理机制和异常处理机制,修改内核破坏了内核的平衡,也就带来了不安全不稳定的因素。
2、难以维护和调试。调试内核比调试应用程序的难度不是一个级别,较难把握。
方案二:由应用程序处理协议报文,内核和应用程序通过PROXY机制来提交报文,也就是通过在LINUX用户态起一个Proxy服务,内核通过该服务提供的接口将报文提交到用户态,这种方式的弊端在于:报文需要经过多次拷贝,效率较低。因为Proxy机制在提交报文到用户态采用了两个队列来缓存报文,内核向发送队列里写报文,应用程序通过ioctl接口读取报文,至少需要经过4次拷贝才能将报文提交到用户程序,报文量较大时,性能会受到影响,甚至可能会导致中断级别异常。
因此,需要对现有报文由内核态提交到用户态的方式进行改进。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种能使报文高效地从内核态提交到用户态的方法及系统,以实现报文的高效提交。
为实现上述目的及其他相关目的,本发明提供一种能使报文高效地从内核态提交到用户态的方法,其至少包括:在处理系统中添加使能信息,使所述处理系统在内核态模式通过文件系统注册设备驱动,以提供操控文件系统的接口,从而所述处理系统在用户态模式能通过所提供的接口来访问所述文件系统;以及在所述处理系统的用户态线程中添加维护信息,以维护协议模块向用户态线程注册的回调函数。
本发明还提供一种能使报文高效地从内核态提交到用户态的使能系统,其至少包括:第一添加模块,用于在处理系统中添加使能信息,使所述处理系统在内核态模式通过文件系统注册设备驱动,以提供操控文件系统的接口,从而所述处理系统在用户态模式能通过所提供的接口来访问所述文件系统;以及第二添加模块,用于在所述处理系统的用户态线程中添加维护信息,以维护协议模块向用户态线程注册的回调函数。
优选地,在处理系统中添加的使能信息满足如下条件:基于信号量来实现内核态和用户态的数据同步。
优选地,在处理系统中添加的使能信息满足如下条件:基于自旋锁来保护分配给所述文件系统的内存空间中的空闲空间与使用空间。
优选地,所述接口包括:打开接口、关闭接口、控制接口、及内存映射接口。
优选地,所述维护信息包括协议模块注册和解注册接口信息。
如上所述,本发明的能使报文高效地从内核态提交到用户态的方法及系统,具有以下有益效果:长时间大量报文提交,处理器的占用率也较低,而且也没有出现任何异常;实现了一种高效的内核态到用户态的通信机制。
附图说明
图1显示为本发明的能使报文高效地从内核态提交到用户态的方法的流程图。
图2显示为本发明的能使报文高效地从内核态提交到用户态的使能系统示意图。
元件标号说明
1 使能系统
11 第一添加模块
12 第二添加模块
S1~S2 步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410347391.4/2.html,转载请声明来源钻瓜专利网。