Linux系统下用户态网络设备驱动框架与实现方法技术方案

技术编号:43923039 阅读:35 留言:0更新日期:2025-01-03 13:27
本发明专利技术提供一种Linux系统下用户态网络设备驱动框架与实现方法,该系统包括网络设备硬件;网络设备的用户态驱动;内核模块,其包括网络设备内核驱动、内存区域及字符设备内核驱动。字符设备内核驱动在加载时创建虚拟字符串设备,提供接口给用户态驱动使用,并保存网络设备被分配的DMA和寄存器存储区域信息。用户态驱动在被加载时能获取网络设备相关信息,并将网络设备从网络设备内核驱动脱管,停止内网络设备内核驱动的收发功能或者停止内网络设备内核驱动的部分队列的收发功能,同时将网络设备的DMA和寄存器存储区域信息映射到用户态驱动的内存空间,以在用户态驱动对寄存器和DMA区域进行直接操作,使网络设备能够提供高性能网络通信功能。

【技术实现步骤摘要】

本专利技术涉及高速网络传输,具体而言涉及一种linux系统下用户态驱动框架与实现方法。


技术介绍

1、随着高速以太网设备的普及,应用对系统网络通信性能的要求越来越高,linux作为主要的网络应用操作系统,系统中一般的驱动设备都是运行在内核空间,在网络通信处理方面存在与生俱来的弊端,如中断处理的开销、多次的内存拷贝、多次的上下文切换、系统调用开销等。针对这些问题,人们提出了相应的解决方案,比如采用用户态驱动框架的dpdk,通过使用轮询而不是中断来处理数据包,在收到数据包时,经dpdk重载的网卡驱动不会通过中断通知cpu,而是直接将数据包存入内存,交付应用层软件通过dpdk提供的接口来直接处理,这样节省了大量的cpu中断时间和内存拷贝时间,将驱动实现在用户空间,使网络通信性能得到了数量级的提高。

2、但dpdk的用户态驱动在实际应用过程中,还存在一些问题,比如需要重写网络设备驱动,并且集成进dpdk的框架,这势必带来一定的工作量;同时对网络设备dma能力有一定要求,dpdk框架采用用户态的内存区域,然后注册进网络设备,这需要网络设备支持流式内存,动本文档来自技高网...

【技术保护点】

1.一种Linux系统下用户态网络设备驱动框架,其特征在于,包括:

2.根据权利要求1所述的Linux系统下用户态网络设备驱动框架,其特征在于,所述字符设备内核驱动被设置成通过与所述网络设备内核驱动的交互,获取网络设备被分配的DMA和寄存器存储区域信息。

3.根据权利要求1或2所述的Linux系统下用户态网络设备驱动框架,其特征在于,所述网络设备内核驱动配置有与所述字符设备内核驱动相关的API接口。

4.根据权利要求1所述的Linux系统下用户态网络设备驱动框架,其特征在于,所述字符设备内核驱动通过调用网络设备内核驱动API的方式通知网络设备内核驱动,...

【技术特征摘要】

1.一种linux系统下用户态网络设备驱动框架,其特征在于,包括:

2.根据权利要求1所述的linux系统下用户态网络设备驱动框架,其特征在于,所述字符设备内核驱动被设置成通过与所述网络设备内核驱动的交互,获取网络设备被分配的dma和寄存器存储区域信息。

3.根据权利要求1或2所述的linux系统下用户态网络设备驱动框架,其特征在于,所述网络设备内核驱动配置有与所述字符设备内核驱动相关的api接口。

4.根据权利要求1所述的linux系统下用户态网络设备驱动框架,其特征在于,所述字符设备内核驱动通过调用网络设备内核驱动api的方式通知网络设备内核驱动,隔离用户态驱动所使用的内存区域,并隔离内核协议栈与网络设备之间的交互。

5.根据权利要求1所述的linux系统下用户态网络设备驱动框架,其特征在于,网络设备的用户态驱动在被加载、网络设备从网络设备内核驱动脱管后,用户态驱动通过轮询网络设备状态,或者监听字符串设备中断状态,检测到数据报文到达...

【专利技术属性】
技术研发人员:武胜利
申请(专利权)人:南京全信传输科技股份有限公司
类型:发明
国别省市:

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

1