能使报文高效地从内核态提交到用户态的方法及系统技术方案

技术编号:10596688 阅读:180 留言:0更新日期:2014-10-30 09:27
本发明专利技术提供一种能使报文高效地从内核态提交到用户态的方法及系统。根据本发明专利技术的方法,在处理系统中添加使能信息,使所述处理系统在内核态模式通过文件系统注册设备驱动,以提供操控文件系统的接口,从而所述处理系统在用户态模式能通过所提供的接口来访问所述文件系统,并在所述处理系统的用户态线程中添加维护信息,以维护协议模块向用户态线程注册的回调函数;由此,当文件系统创建后,由于文件系统所映射到内存区对于用户态程序是可见的,因此,用户态程序可以直接进行读取,不需要进行拷贝,如此不依赖硬件即可实现一种高效的内核态到用户态的通信机制,与现有技术相比较,本发明专利技术的报文提交效率高,而且内核安全。

【技术实现步骤摘要】
【专利摘要】本专利技术提供一种能使报文高效地从内核态提交到用户态的方法及系统。根据本专利技术的方法,在处理系统中添加使能信息,使所述处理系统在内核态模式通过文件系统注册设备驱动,以提供操控文件系统的接口,从而所述处理系统在用户态模式能通过所提供的接口来访问所述文件系统,并在所述处理系统的用户态线程中添加维护信息,以维护协议模块向用户态线程注册的回调函数;由此,当文件系统创建后,由于文件系统所映射到内存区对于用户态程序是可见的,因此,用户态程序可以直接进行读取,不需要进行拷贝,如此不依赖硬件即可实现一种高效的内核态到用户态的通信机制,与现有技术相比较,本专利技术的报文提交效率高,而且内核安全。【专利说明】能使报文高效地从内核态提交到用户态的方法及系统
本专利技术涉及报文处理领域,特别是涉及一种能使报文高效地从内核态提交到用户 态的方法及系统。
技术介绍
现代通信设备中,尤其是大型机架、机框式的通信设备,往往是采用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 步骤 【具体实施方式】 以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书 所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实 施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离 本专利技术的精神下进行各种修饰或改变。 请参阅图1至图2。需要说明的是,本实施例中所提供的图示仅以示意方式说明 本专利技术的基本构想,遂图式中仅显示与本专利技术中有关的组件而非按照实际实施时的组件数 目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其 组件布局型态也可能更为复杂。 如图1所示,本专利技术提供一种能使报文高效地从内核态提交到用户态的方法。其 中,根据本专利技术的方法主要通过使能系统来完成,该使能系统包括但不限于安装在计算机 设备中且能够实现本专利技术方案的诸如应用模块、操作系统、处理控制器等。其中,该计算机 设备设置有能运行在用户态模式及内核态模式的处理系统。 其中,本专利技术的方法至少包括步骤S1及S2。 在步骤S1中,所述使能系统在处理系统中添加使能信息,使所述处理系统在内核 态模式通过文件系统注册设备驱动,以提供操控文件系统的接口,从而所述处理系统在用 户态模式能通过所提供的接口来访问所述文件系统。 其中,所述接口包括任何能用于操控文件系统的接口,优选地,包括但不限于:打 开(open)接口、关闭(close)接口、控制(ioctl)接口、及内存映射(mmap)接口等。 具体地,所述使能系统在处理系统中添加如下使能信息: static ?module i ?module = ! mum、: MODULE-NAME, major: MODULE-MAJOR, inil: Jnil, cleanup: -cleanup, pprim; NULL, open: jnmap open, ioctl: __mmap_iocil, close: jnniap-dose, mmsp: _mmap_mmaps }; 上述模块结构中,_init和_cleanup进行模块的注册和卸载,_mmap_open、_mmap_ ioctl、__ap_close和__ap__ap分别进行文件系统的打开、控制、关闭和映射操作。 其中,文件系统结构定义如下: struct (11c___opcralions ___gniodulc__fops = { ioctl; -gm本文档来自技高网
...

【技术保护点】
一种能使报文高效地从内核态提交到用户态的方法,其特征在于,所述能使报文高效地从内核态提交到用户态的方法至少包括:在处理系统中添加使能信息,使所述处理系统在内核态模式通过文件系统注册设备驱动,以提供操控文件系统的接口,从而所述处理系统在用户态模式能通过所提供的接口来访问所述文件系统;在所述处理系统的用户态线程中添加维护信息,以维护协议模块向用户态线程注册的回调函数。

【技术特征摘要】

【专利技术属性】
技术研发人员:乐义华
申请(专利权)人:上海斐讯数据通信技术有限公司
类型:发明
国别省市:上海;31

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

1