CN102999330A - 基于用户态网卡驱动的网卡配置方法及装置 - Google Patents
基于用户态网卡驱动的网卡配置方法及装置 Download PDFInfo
- Publication number
- CN102999330A CN102999330A CN2012104508606A CN201210450860A CN102999330A CN 102999330 A CN102999330 A CN 102999330A CN 2012104508606 A CN2012104508606 A CN 2012104508606A CN 201210450860 A CN201210450860 A CN 201210450860A CN 102999330 A CN102999330 A CN 102999330A
- Authority
- CN
- China
- Prior art keywords
- network interface
- interface card
- described network
- card
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Telephone Function (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种基于用户态网卡驱动的网卡配置方法及装置,该方法包括:接收用户输入的待配置网卡的名称、参数名称和参数值后,在预设的参数名称与命令ID的对应关系中获取参数名称对应的命令ID;在维护的网卡的名称、类型、地址指针的对应关系中获取待配置网卡的名称对应的地址指针和类型;确定获取的待配置网卡的地址指针指向的所述待配置网卡的用户态内存空间地址,以及根据命令ID和所述待配置网卡的类型在预设的函数库中调用配置所述待配置网卡所需的函数;使用调用的函数和参数值在获取的所述待配置网卡的用户态内存空间地址配置待配置网卡。该方案实现了当网卡驱动移到用户空间后,对网卡进行配置。
Description
技术领域
本发明涉及计算机技术领域,尤指一种基于用户态网卡驱动的网卡配置方法及装置。
背景技术
随着信息化的进步与发展,各种各样的网络设备需要被部署在网络拓扑中,这些网络设备的主要功能是对数据包进行分析、转发、过滤等处理。目前,大多数网络设备厂商通过在操作系统内核空间中更改网卡驱动及协议栈来实现网络设备的功能。然而,内核空间中的逻辑关系比较复杂,资源使用有限,开发难度很大,且更改内核空间中的内容很容易引起内核空间的不稳定。采用用户态驱动实现网络设备的功能使内存更容易管理,逻辑更容易设计,可使用的库函数更多,且不再需要更改内核空间,可以避免更改内核空间带来的风险。
发明人在实现本发明过程中,发现将网卡驱动移到用户空间(即用户态网卡驱动)后,用于对内核态网卡驱动的标准配置工具(如ethtool、ifconfig)都无法对网卡进行配置。
发明内容
本发明实施例提供一种基于用户态网卡驱动的网卡配置方法及装置,用以解决现有技术中存在的将网卡驱动移到用户空间后,无法对网卡进行配置的问题。
一种基于用户态网卡驱动的网卡配置方法,包括:
接收用户输入的待配置网卡的名称、参数名称和参数值后,在预设的参数名称与命令标识ID的对应关系中获取所述参数名称对应的命令ID;
在维护的网卡的名称、类型、地址指针的对应关系中获取所述待配置网卡的名称对应的地址指针和类型;
确定获取的所述待配置网卡的地址指针指向的所述待配置网卡的用户态内存空间地址,以及根据所述命令ID和所述待配置网卡的类型在预设的函数库中调用配置所述待配置网卡所需的函数;
使用调用的函数和所述参数值在获取的所述待配置网卡的用户态内存空间地址配置所述待配置网卡。
一种基于用户态网卡驱动的网卡配置装置,包括:
接收单元,用于接收用户输入的待配置网卡的名称、参数名称和参数值后,在预设的参数名称与命令标识ID的对应关系中获取所述参数名称对应的命令ID;
获取单元,用于在维护的网卡的名称、类型、地址指针的对应关系中获取所述待配置网卡的名称对应的地址指针和类型;
确定单元,用于确定获取的所述待配置网卡的地址指针指向的所述待配置网卡的用户态内存空间地址,以及根据所述命令ID和所述待配置网卡的类型在预设的函数库中调用配置所述待配置网卡所需的函数;
配置单元,用于使用调用的函数和所述参数值在获取的所述待配置网卡的用户态内存空间地址配置所述待配置网卡。
本发明有益效果如下:
本发明实施例提供的基于用户态网卡驱动的网卡配置方法及装置,通过接收用户输入的待配置网卡的名称、参数名称和参数值后,在预设的参数名称与命令标识ID的对应关系中获取所述参数名称对应的命令ID;在维护的网卡的名称、类型、地址指针的对应关系中获取所述待配置网卡的名称对应的地址指针和类型;确定获取的所述待配置网卡的地址指针指向的所述待配置网卡的用户态内存空间地址,以及根据所述命令ID和所述待配置网卡的类型在预设的函数库中调用配置所述待配置网卡所需的函数;使用调用的函数和所述参数值在获取的所述待配置网卡的用户态内存空间地址配置所述待配置网卡。该方案实现了当网卡驱动移到用户空间后,对网卡进行配置。
附图说明
图1为本发明实施例中基于用户态网卡驱动的网卡配置方法的流程图;
图2为本发明实施例中确定待配置网卡的用户态内存空间地址和配置待配置网卡所需的函数的流程图;
图3为本发明实施例中基于用户态网卡驱动的网卡配置装置的结构示意图;
图4为本发明实施例中第一种优选的基于用户态网卡驱动的网卡配置装置的结构示意图;
图5为本发明实施例中第二种优选的基于用户态网卡驱动的网卡配置装置的结构示意图;
图6为本发明实施例中第三种优选的基于用户态网卡驱动的网卡配置装置的结构示意图。
具体实施方式
针对现有技术中存在的将网卡驱动移到用户空间后,无法对网卡进行配置的问题,本发明实施例提供一种基于用户态网卡驱动的网卡配置方法,该方法的流程如图1所示,具体执行步骤如下:
S10:接收用户输入的待配置网卡的名称、参数名称和参数值后,在预设的参数名称与命令标识(Identity,ID)的对应关系中获取参数名称对应的命令ID。
当用户需要配置网卡时,首先会输入待配置的网卡的名称、要配置的参数名称、以及要设定的参数值,例如用户可以输入:网卡1、速率、100。
当接收到用户输入的网卡1、速率、100后,获取参数名称对应的命令ID,也就是获取“速率”对应的命令ID,该命令ID可以是一个数值,例如:1、2、3......,这些数值与参数名称是一一对应的,可以预先设定参数名称与命令ID的对应关系,例如“速率”对应“1”、“统计信息”对应“2”......;当然命令ID也可以采用其他的方式表示。
S11:在维护的网卡的名称、类型、地址指针的对应关系中获取待配置网卡的名称对应的地址指针和类型。
可以预先维护网卡的名称、类型、地址指针的对应关系,当接收到用户输入的待配置网卡的名称后,就可以根据待配置网卡的名称在预先维护的对应关系中获取对应的地址指针和类型。
S12:确定获取的待配置网卡的地址指针指向的待配置网卡的用户态内存空间地址,以及根据命令ID和待配置网卡的类型在预设的函数库中调用配置待配置网卡所需的函数。
S13:使用调用的函数和参数值在获取的待配置网卡的用户态内存空间地址配置待配置网卡。
当确定了配置待配置网卡所需的函数后,就可以根据参数值和调用的函数在获取的待配置网卡的用户态内存空间地址配置待配置网卡了。
该方案在接收到用户输入的待配置网卡的名称、参数名称和参数值后,在预设的参数名称与命令ID的对应关系中获取参数名称对应的命令ID;在维护的网卡的名称、类型、地址指针的对应关系中获取待配置网卡的名称对应的地址指针和类型;确定获取的待配置网卡的地址指针指向的待配置网卡的用户态内存空间地址,以及根据命令ID和待配置网卡的类型在预设的函数库中调用配置待配置网卡所需的函数;使用调用的函数和参数值在获取的待配置网卡的用户态内存空间地址配置待配置网卡。这样即使网卡驱动移到用户空间后,也可以对网卡进行配置,从而就实现了基于用户态网卡驱动的网卡配置。
具体的,上述S10中的在预设的参数名称与命令ID的对应关系中获取参数名称对应的命令ID,具体包括:创建网卡配置工具进程,调用创建的网卡配置工具进程在预设的参数名称与命令ID的对应关系中获取参数名称对应的命令ID。
在接收到用户输入的待配置网卡的名称、参数名称和参数值后,可以创建网卡配置工具进程,然后通过调用创建的网卡配置工具进程获取预设的参数名称对应的命令ID。
具体的,如图2所示,上述S11中的在维护的网卡的名称、类型、地址指针的对应关系中获取待配置网卡的名称对应的地址指针和类型,具体包括:
S110:调用网卡配置工具进程向网卡配置服务进程发送携带待配置网卡的名称、命令ID和参数值的第一网卡配置请求,网卡配置服务进程是在操作系统启动时创建的。
在操作系统启动后,创建网卡配置服务进程和用户态驱动进程,网卡配置服务进程和用户态驱动进程共享网卡映射到用户空间的地址,即用户态内存空间地址,其中网卡配置服务进程与网卡配置工具进程采用客户端(Client,C)/服务器端(Service,S)架构实现,网卡配置服务进程作为服务器端,网卡配置工具进程作为客户端,它们之间通过本地套接字进行通信。
当然还可以采用另外一种方式,就是创建一个驱动及服务进程,在驱动及服务进程中创建网卡配置服务线程和网卡配置工具线程,网卡配置服务线程和网卡配置工具线程共享网卡映射到用户空间的地址,即用户态内存空间地址,网卡配置服务线程和网卡配置工具线程采用C/S架构实现,网卡配置服务线程相当于上述的网卡配置进程作为服务器端,网卡配置工具线程相当于上述的网卡配置工具进程作为客户端。
创建的网卡配置工具进程将用户输入的参数名称转换为命令ID后,调用网卡配置工具进程向网卡配置服务进程发送携带待配置网卡的名称、命令ID和参数值的第一网卡配置请求,该第一网卡配置请求是通过本地套接字发送的。
上述第一网卡配置请求采用的具体格式如下所示,其字段包括命令ID的cmd(如获取设备速率、获取统计信息等)、网卡的名称devname、以及一个可变长度变量data。data的内容根据命令的不同而填充不同的内容,比如,获得速率时,data字段将扩展为一个uint16类型;获得统计信息时,data字段将扩展为一个字符串。假设用户输入的参数值为100时,那么将data字段赋值为“100”。
S111:在网卡配置服务进程接收到第一网卡配置请求后,调用网卡配置服务进程将第一网卡配置请求存储在预设或申请的内存空间中,在网卡信息表中查找包含待配置网卡的名称的表项,网卡信息表中包含网卡的名称、类型、地址指针的对应关系,一个对应关系是一个表项;在查找到的表项中获取待配置网卡的名称对应的地址指针和类型。
当网卡配置服务进程接收到第一网卡配置请求后,可以调用网卡配置服务进程将该第一网卡配置请求存储在预设或申请的内存空间中,预设的内存空间的容量大小可以是固定的,可以是不固定的;而申请的内存空间可以是根据第一配置请求的长度来确定。
可以维护一张网卡信息表,该信息表中每个表项adapter可以是一块网卡的信息,具体格式如下所示:port_id表示该网卡在网络设备中的编号,type表示网卡的类型,conf_ops表示网卡所支持的配置操作,ethdev代表网卡的详细信息,可以包括网卡的用户态内存空间地址、MTU等等,eth_name表示网卡的名称。同一块网卡的eth_name和netif_config命令结构体中的devname是相同的,通过netif_config的devname字段可以查询到网卡的名称对应的adapter信息。
具体的,如图3所示,上述S12中的确定获取的待配置网卡的地址指针指向的待配置网卡的用户态内存空间地址,以及根据命令ID和待配置网卡的类型在预设的函数库中调用配置待配置网卡所需的函数,具体包括:
S120:调用网卡配置服务进程向用户态驱动进程发送携带待配置网卡的地址指针的内存空间地址获取请求,根据命令ID和待配置网卡的类型在预设的函数库中调用配置待配置网卡所需的函数,用户态驱动进程是在操作系统启动时创建的。
继续沿用上例,可以根据adapter中netif_config的cmd和type字段在预设的函数库中调用配置网卡所需的函数,也就是调用conf_ops中相应的函数对网卡进行相应的配置,不同类型的网卡在初始化时会设置其对应的conf_ops,如下所示:
S121:在用户态驱动进程接收到内存空间地址获取请求后,调用用户态驱动进程根据接收到的内存空间地址获取请求中携带的待配置网卡的地址指针确定待配置网卡的用户态内存空间地址,并反馈给网卡配置服务进程。
较佳的,上述基于用户态网卡驱动的网卡配置方法还包括:在操作系统启动时,创建所述用户态驱动进程;调用创建的用户态驱动进程将网卡的内核态内存空间地址映射为用户态内存空间地址。
在操作系统启动后,创建用户态驱动进程,调用创建的用户态驱动进程通过扫描PCI总线识别网卡,为网卡的内核态内存空间地址建立页面,并存储在设备文件中;然后通过设备文件将网卡的内核态内存空间地址所对应的页面通过函数mmap映射为用户态内存空间地址。
具体的,上述申请内存空间的过程,具体包括:调用网卡配置工具进程确定待配置网卡的名称、命令ID和参数值的字符串长度,并向网卡配置服务进程发送携带待配置网卡的名称、字符串长度的第二网卡配置请求,网卡配置进程是在操作系统启动时创建的;在网卡配置服务进程接收到第二网卡配置请求后,根据字符串长度向操作系统申请容量大于等于字符串长度的内存空间,调用网卡配置服务进程向网卡配置工具进程发送网卡配置响应。
由于需要一定的内存空间来存储第一网卡配置请求,这时就可以首先来向操作系统申请一定的内存空间。具体可以是首先调用网卡配置工具进程确定待配置网卡的名称、命令ID和参数值的字符串长度,申请的内存空间的容量需要足以存放第一网卡配置请求,也就是说申请的内存空间的容量至少要大于该字符串长度,然后向配置服务进程发送携带待配置网卡的名称和确定的字符串长度的第二网卡配置请求,第二网卡配置请求也可以采用netif_config的命令格式,其中字符串长度可以使用netif_config中的cmd字段来表示。
网卡配置服务进程接收到第二网卡配置请求后,根据字符串长度向操作系统申请容量大于等于字符串长度的内存空间,调用网卡配置服务进程向网卡配置工具进程发送网卡配置响应。
当网卡配置工具进程接收到该网卡配置响应后,再调用网卡配置工具进程向网卡配置服务进程发送第一网卡配置请求,第一网卡配置请求使用netif_config中的cmd字段标识的命令ID。
netif_config中的cmd字段可以采用以下示例来标识:
#define CMDID_LEN 0xFFFFFFFF //命令长度的ID
#define CMDID_GGET 0x00000001 //获取网卡信息命令的ID
#define CMDID_GSET 0x00000002 //设置网卡命令的ID
较佳的,上述S12中的使用调用的函数和参数值在获取的待配置网卡的用户态内存空间地址配置待配置网卡之后,还包括:调用网卡配置服务进程向网卡配置工具进程发送网卡配置结果;在网卡配置工具进程接收到网卡配置结果后,调用网卡配置工具进程向用户显示网卡配置结果。
在配置完网卡后,可以调用网卡配置工具进程将网卡配置结果显示给用户,这样用户就可以直观地看到网卡配置的结果。
在内核态网卡驱动中,网卡配置工具中的部分命令所获取的信息是根据中断来完成的,当网卡的另一端down掉或者网线被拔后,网卡会产生一个中断,用于通知链路状态的改变。由于在用户态网卡驱动中,不支持中断,链路状态的改变是依靠读取寄存器来判断。
由于将网卡驱动移到用户空间,所有对网卡的操作都是在用户态下进行,不用通过内核层,这样就使得应用程序与网卡可以更直接地交互;同时,数据包直接传送到用户空间的程序中进行处理并转发,不再需要先将数据从内核态拷贝到用户态,经过处理再拷贝到内核进行转发;并且,数据包处理程序可以使用用户空间的所有库资源,这样就极大地方便了开发过程,并提升了开发效率。
基于同一发明构思,本发明实施例提供一种基于用户态网卡驱动的网卡配置装置,该装置可以设置或获取网卡参数,结构如图3所示,包括:
接收单元30,用于接收用户输入的待配置网卡的名称、参数名称和参数值后,在预设的参数名称与命令ID的对应关系中获取参数名称对应的命令ID。
获取单元31,用于在维护的网卡的名称、类型、地址指针的对应关系中获取待配置网卡的名称对应的地址指针和类型。
确定单元32,用于确定获取的待配置网卡的地址指针指向的待配置网卡的用户态内存空间地址,以及根据命令ID和待配置网卡的类型在预设的函数库中调用配置待配置网卡所需的函数。
配置单元33,用于使用调用的函数和参数值在获取的待配置网卡的用户态内存空间地址配置待配置网卡。
具体的,上述接收单元30,具体用于:创建网卡配置工具进程,调用创建的网卡配置工具进程在预设的参数名称与命令ID的对应关系获取参数名称对应的命令ID。
具体的,上述获取单元31,具体用于:调用网卡配置工具进程向网卡配置服务进程发送携带待配置网卡的名称、命令ID和参数值的第一网卡配置请求,网卡配置服务进程是在操作系统启动时创建的;在网卡配置服务进程接收到第一网卡配置请求后,调用网卡配置服务进程将第一网卡配置请求存储在预设或申请的内存空间中,在网卡信息表中查找包含待配置网卡的名称的表项,网卡信息表中包含网卡的名称、类型、地址指针的对应关系,一个对应关系是一个表项;在查找到的表项中获取待配置网卡的名称对应的地址指针和类型。
具体的,上述确定单元32,具体用于:调用网卡配置服务进程向用户态驱动进程发送携带待配置网卡的地址指针的内存空间地址获取请求,根据命令ID和待配置网卡的类型在预设的函数库中调用配置待配置网卡所需的函数,用户态驱动进程是在操作系统启动时创建的;在用户态驱动进程接收到内存空间地址获取请求后,调用用户态驱动进程根据接收到的内存空间地址获取请求中携带的待配置网卡的地址指针确定待配置网卡的用户态内存空间地址,并反馈给网卡配置服务进程。
具体的,上述获取单元31,具体用于:调用网卡配置工具进程确定待配置网卡的名称、命令ID和参数值的字符串长度,并向网卡配置服务进程发送携带待配置网卡的名称、字符串长度的第二网卡配置请求;在网卡配置服务进程接收到第二网卡配置请求后,根据字符串长度向操作系统申请容量大于等于字符串长度的内存空间,调用网卡配置服务进程向网卡配置工具进程发送网卡配置响应。
下面详细介绍三种优选的基于用户态网卡驱动的网卡配置装置的结构:
第一种优选的基于用户态网卡驱动的网卡配置装置如图4所示,在图3的基础上还包括显示单元34,用于:调用网卡配置服务进程向网卡配置工具进程发送网卡配置结果;在网卡配置工具进程接收到网卡配置结果后,调用网卡配置工具进程向用户显示网卡配置结果。
第二种优选的基于用户态网卡驱动的网卡配置装置如图5所示,在图4的基础上还包括映射单元35,用于在操作系统启动时,创建用户态驱动进程;调用创建的用户态驱动进程将网卡的内核态内存空间地址映射为用户态内存空间地址。
第三种优选的基于用户态网卡驱动的网卡配置装置如图6所示,可以通过网卡配置工具进程60实现上述接收单元30和显示单元34的功能,可以通过网卡配置服务线程610实现上述获取单元31、确定单元32和配置单元33的功能,可以通过用户态驱动线程611实现上述映射单元36的功能,其中网卡配置服务线程610和用户态驱动线程611为驱动及服务进程61中的两个线程。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种基于用户态网卡驱动的网卡配置方法,其特征在于,包括:
接收用户输入的待配置网卡的名称、参数名称和参数值后,在预设的参数名称与命令标识ID的对应关系中获取所述参数名称对应的命令ID;
在维护的网卡的名称、类型、地址指针的对应关系中获取所述待配置网卡的名称对应的地址指针和类型;
确定获取的所述待配置网卡的地址指针指向的所述待配置网卡的用户态内存空间地址,以及根据所述命令ID和所述待配置网卡的类型在预设的函数库中调用配置所述待配置网卡所需的函数;
使用调用的函数和所述参数值在获取的所述待配置网卡的用户态内存空间地址配置所述待配置网卡。
2.如权利要求1所述的方法,其特征在于,在预设的参数名称与命令ID的对应关系中获取所述参数名称对应的命令ID,具体包括:
创建网卡配置工具进程,调用创建的网卡配置工具进程在预设的参数名称与命令ID的对应关系获取所述参数名称对应的命令ID。
3.如权利要求2所述的方法,其特征在于,在维护的网卡的名称、类型、地址指针的对应关系中获取所述待配置网卡的名称对应的地址指针和类型,具体包括:
调用所述网卡配置工具进程向所述网卡配置服务进程发送携带所述待配置网卡的名称、所述命令ID和所述参数值的第一网卡配置请求,所述网卡配置服务进程是在操作系统启动时创建的;
在所述网卡配置服务进程接收到所述第一网卡配置请求后,调用所述网卡配置服务进程将所述第一网卡配置请求存储在预设或申请的内存空间中,在网卡信息表中查找包含所述待配置网卡的名称的表项,所述网卡信息表中包含网卡的名称、类型、地址指针的对应关系;
在查找到的表项中获取所述待配置网卡的名称对应的地址指针和类型。
4.如权利要求3所述的方法,其特征在于,确定获取的所述待配置网卡的地址指针指向的所述待配置网卡的用户态内存空间地址,以及根据所述命令ID和所述待配置网卡的类型在预设的函数库中调用配置所述待配置网卡所需的函数,具体包括:
调用所述网卡配置服务进程向用户态驱动进程发送携带所述待配置网卡的地址指针的内存空间地址获取请求,根据所述命令ID和所述待配置网卡的类型在预设的函数库中调用配置所述待配置网卡所需的函数,所述用户态驱动进程是在所述操作系统启动时创建的;
在所述用户态驱动进程接收到所述内存空间地址获取请求后,调用所述用户态驱动进程根据接收到的所述内存空间地址获取请求中携带的所述待配置网卡的地址指针确定所述待配置网卡的用户态内存空间地址,并反馈给所述网卡配置服务进程。
5.如权利要求4所述的方法,其特征在于,还包括:
在所述操作系统启动时,创建所述用户态驱动进程;
调用创建的用户态驱动进程将所述网卡的内核态内存空间地址映射为用户态内存空间地址。
6.如权利要求3或4任一所述的方法,其特征在于,申请内存空间的过程,具体包括:
调用所述网卡配置工具进程确定所述待配置网卡的名称、所述命令ID和所述参数值的字符串长度,并向网卡配置服务进程发送携带所述待配置网卡的名称、所述字符串长度的第二网卡配置请求;
在所述网卡配置服务进程接收到所述第二网卡配置请求后,根据所述字符串长度向所述操作系统申请容量大于等于所述字符串长度的内存空间,调用所述网卡配置服务进程向所述网卡配置工具进程发送网卡配置响应。
7.如权利要求6所述的方法,其特征在于,使用调用的函数和所述参数值在获取的所述待配置网卡的用户态内存空间地址配置所述待配置网卡之后,还包括:
调用所述网卡配置服务进程向所述网卡配置工具进程发送网卡配置结果;
在所述网卡配置工具进程接收到所述网卡配置结果后,调用所述网卡配置工具进程向所述用户显示所述网卡配置结果。
8.一种基于用户态网卡驱动的网卡配置装置,其特征在于,包括:
接收单元,用于接收用户输入的待配置网卡的名称、参数名称和参数值后,在预设的参数名称与命令标识ID的对应关系中获取所述参数名称对应的命令ID;
获取单元,用于在维护的网卡的名称、类型、地址指针的对应关系中获取所述待配置网卡的名称对应的地址指针和类型;
确定单元,用于确定获取的所述待配置网卡的地址指针指向的所述待配置网卡的用户态内存空间地址,以及根据所述命令ID和所述待配置网卡的类型在预设的函数库中调用配置所述待配置网卡所需的函数;
配置单元,用于使用调用的函数和所述参数值在获取的所述待配置网卡的用户态内存空间地址配置所述待配置网卡。
9.如权利要求8所述的装置,其特征在于,所述接收单元,具体用于:
创建网卡配置工具进程,调用创建的网卡配置工具进程在预设的参数名称与命令ID的对应关系获取所述参数名称对应的命令ID。
10.如权利要求9所述的装置,其特征在于,所述获取单元,具体用于:
调用所述网卡配置工具进程向所述网卡配置服务进程发送携带所述待配置网卡的名称、所述命令ID和所述参数值的第一网卡配置请求,所述网卡配置服务进程是在操作系统启动时创建的;
在所述网卡配置服务进程接收到所述第一网卡配置请求后,调用所述网卡配置服务进程将所述第一网卡配置请求存储在预设或申请的内存空间中,在网卡信息表中查找包含所述待配置网卡的名称的表项,所述网卡信息表中包含网卡的名称、类型、地址指针的对应关系,一个对应关系是一个表项;
在查找到的表项中获取所述待配置网卡的名称对应的地址指针和类型。
11.如权利要求10所述的装置,其特征在于,所述确定单元,具体用于:
调用所述网卡配置服务进程向用户态驱动进程发送携带所述待配置网卡的地址指针的内存空间地址获取请求,根据所述命令ID和所述待配置网卡的类型在预设的函数库中调用配置所述待配置网卡所需的函数,所述用户态驱动进程是在所述操作系统启动时创建的;
在所述用户态驱动进程接收到所述内存空间地址获取请求后,调用所述用户态驱动进程根据接收到的所述内存空间地址获取请求中携带的所述待配置网卡的地址指针确定所述待配置网卡的用户态内存空间地址,并反馈给所述网卡配置服务进程。
12.如权利要求11所述的装置,其特征在于,还包括映射单元,用于在所述操作系统启动时,创建所述用户态驱动进程;调用创建的用户态驱动进程将所述网卡的内核态内存空间地址映射为用户态内存空间地址。
13.如权利要求10或11任一所述的装置,其特征在于,所述获取单元,具体用于:
调用所述网卡配置工具进程确定所述待配置网卡的名称、所述命令ID和所述参数值的字符串长度,并向网卡配置服务进程发送携带所述待配置网卡的名称、所述字符串长度的第二网卡配置请求;
在所述网卡配置服务进程接收到所述第二网卡配置请求后,根据所述字符串长度向所述操作系统申请容量大于等于所述字符串长度的内存空间,调用所述网卡配置服务进程向所述网卡配置工具进程发送网卡配置响应。
14.如权利要求13所述的装置,其特征在于,还包括显示单元,用于:
调用所述网卡配置服务进程向所述网卡配置工具进程发送网卡配置结果;
在所述网卡配置工具进程接收到所述网卡配置结果后,调用所述网卡配置工具进程向所述用户显示所述网卡配置结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210450860.6A CN102999330B (zh) | 2012-11-12 | 2012-11-12 | 基于用户态网卡驱动的网卡配置方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210450860.6A CN102999330B (zh) | 2012-11-12 | 2012-11-12 | 基于用户态网卡驱动的网卡配置方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102999330A true CN102999330A (zh) | 2013-03-27 |
CN102999330B CN102999330B (zh) | 2015-10-14 |
Family
ID=47927936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210450860.6A Active CN102999330B (zh) | 2012-11-12 | 2012-11-12 | 基于用户态网卡驱动的网卡配置方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102999330B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246594A (zh) * | 2013-04-08 | 2013-08-14 | 汉柏科技有限公司 | 一种基于Linux内核的用户态网卡自动探测方法 |
CN103744374A (zh) * | 2013-12-25 | 2014-04-23 | 广州达意隆包装机械股份有限公司 | 一种伺服电机参数自动配置方法和系统 |
CN104320355A (zh) * | 2014-10-30 | 2015-01-28 | 浪潮电子信息产业股份有限公司 | 一种基于linux系统文件的网络收转发优化方法 |
CN107526620A (zh) * | 2017-09-28 | 2017-12-29 | 东软集团股份有限公司 | 一种用户态输入输出设备配置方法及装置 |
CN107562420A (zh) * | 2017-08-31 | 2018-01-09 | 杭州迪普科技股份有限公司 | 一种Linux环境网络接口结构体内存处理方法及装置 |
CN107682198A (zh) * | 2017-10-20 | 2018-02-09 | 盛科网络(苏州)有限公司 | 一种网络通信设备 |
CN108270939A (zh) * | 2016-12-30 | 2018-07-10 | 北京视联动力国际信息技术有限公司 | 一种无线网卡的拨号方法和装置 |
CN109039697A (zh) * | 2018-06-19 | 2018-12-18 | 新华三云计算技术有限公司 | 虚拟机网卡配置方法及装置 |
CN110086571A (zh) * | 2019-04-10 | 2019-08-02 | 广州华多网络科技有限公司 | 一种数据发送及接收的方法、装置及数据处理系统 |
CN111294293A (zh) * | 2018-12-07 | 2020-06-16 | 网宿科技股份有限公司 | 一种基于用户态协议栈的网络隔离方法和装置 |
CN111669423A (zh) * | 2019-03-08 | 2020-09-15 | 厦门网宿有限公司 | 基于用户态协议栈的网络隔离空间的批量处理方法及系统 |
CN114978953A (zh) * | 2022-07-27 | 2022-08-30 | 北京立华莱康平台科技有限公司 | 一种网卡识别方法、装置及计算机可读介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101540720A (zh) * | 2008-06-06 | 2009-09-23 | 曙光信息产业(北京)有限公司 | 一种支持多类型网卡链路聚合的零拷贝方法 |
CN101917350A (zh) * | 2010-09-13 | 2010-12-15 | 南京中兴特种软件有限责任公司 | 一种Linux下基于网卡驱动的零拷贝以太网报文捕获及发送的实现方法 |
CN102402487A (zh) * | 2011-11-15 | 2012-04-04 | 北京天融信科技有限公司 | 一种零拷贝接收报文的方法和系统 |
CN102497434A (zh) * | 2011-12-16 | 2012-06-13 | 中国科学院计算技术研究所 | 内核态虚拟网络设备的建立方法、及其包发送和接收方法 |
-
2012
- 2012-11-12 CN CN201210450860.6A patent/CN102999330B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101540720A (zh) * | 2008-06-06 | 2009-09-23 | 曙光信息产业(北京)有限公司 | 一种支持多类型网卡链路聚合的零拷贝方法 |
CN101917350A (zh) * | 2010-09-13 | 2010-12-15 | 南京中兴特种软件有限责任公司 | 一种Linux下基于网卡驱动的零拷贝以太网报文捕获及发送的实现方法 |
CN102402487A (zh) * | 2011-11-15 | 2012-04-04 | 北京天融信科技有限公司 | 一种零拷贝接收报文的方法和系统 |
CN102497434A (zh) * | 2011-12-16 | 2012-06-13 | 中国科学院计算技术研究所 | 内核态虚拟网络设备的建立方法、及其包发送和接收方法 |
Non-Patent Citations (1)
Title |
---|
王燕飞等: "网卡驱动程序的用户态移植和优化", 《电子技术》, 31 August 2012 (2012-08-31), pages 17 - 21 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246594A (zh) * | 2013-04-08 | 2013-08-14 | 汉柏科技有限公司 | 一种基于Linux内核的用户态网卡自动探测方法 |
CN103744374A (zh) * | 2013-12-25 | 2014-04-23 | 广州达意隆包装机械股份有限公司 | 一种伺服电机参数自动配置方法和系统 |
CN103744374B (zh) * | 2013-12-25 | 2016-08-17 | 广州达意隆包装机械股份有限公司 | 一种伺服电机参数自动配置方法和系统 |
CN104320355A (zh) * | 2014-10-30 | 2015-01-28 | 浪潮电子信息产业股份有限公司 | 一种基于linux系统文件的网络收转发优化方法 |
CN108270939A (zh) * | 2016-12-30 | 2018-07-10 | 北京视联动力国际信息技术有限公司 | 一种无线网卡的拨号方法和装置 |
CN107562420B (zh) * | 2017-08-31 | 2019-12-06 | 杭州迪普科技股份有限公司 | 一种Linux环境网络接口结构体内存处理方法及装置 |
CN107562420A (zh) * | 2017-08-31 | 2018-01-09 | 杭州迪普科技股份有限公司 | 一种Linux环境网络接口结构体内存处理方法及装置 |
CN107526620A (zh) * | 2017-09-28 | 2017-12-29 | 东软集团股份有限公司 | 一种用户态输入输出设备配置方法及装置 |
CN107526620B (zh) * | 2017-09-28 | 2020-09-01 | 东软集团股份有限公司 | 一种用户态输入输出设备配置方法及装置 |
CN107682198A (zh) * | 2017-10-20 | 2018-02-09 | 盛科网络(苏州)有限公司 | 一种网络通信设备 |
CN109039697A (zh) * | 2018-06-19 | 2018-12-18 | 新华三云计算技术有限公司 | 虚拟机网卡配置方法及装置 |
CN109039697B (zh) * | 2018-06-19 | 2019-09-17 | 新华三云计算技术有限公司 | 虚拟机网卡配置方法及装置 |
CN111294293A (zh) * | 2018-12-07 | 2020-06-16 | 网宿科技股份有限公司 | 一种基于用户态协议栈的网络隔离方法和装置 |
CN111669423A (zh) * | 2019-03-08 | 2020-09-15 | 厦门网宿有限公司 | 基于用户态协议栈的网络隔离空间的批量处理方法及系统 |
CN111669423B (zh) * | 2019-03-08 | 2023-03-17 | 厦门网宿有限公司 | 基于用户态协议栈的网络隔离空间的批量处理方法及系统 |
CN110086571A (zh) * | 2019-04-10 | 2019-08-02 | 广州华多网络科技有限公司 | 一种数据发送及接收的方法、装置及数据处理系统 |
CN114978953A (zh) * | 2022-07-27 | 2022-08-30 | 北京立华莱康平台科技有限公司 | 一种网卡识别方法、装置及计算机可读介质 |
CN114978953B (zh) * | 2022-07-27 | 2022-10-21 | 北京立华莱康平台科技有限公司 | 一种网卡识别方法、装置及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102999330B (zh) | 2015-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102999330A (zh) | 基于用户态网卡驱动的网卡配置方法及装置 | |
US9152580B1 (en) | Method and apparatus for transferring data between a host and an embedded device | |
WO2017152633A1 (zh) | 一种端口绑定实现方法及装置 | |
CN109656843A (zh) | 数据存储装置及桥接装置 | |
EP2993588A1 (en) | Method, device and system for downloading file | |
CN108111470A (zh) | 容器的部署方法、服务间的通信方法及相关装置 | |
CN103942178A (zh) | 多核处理器上实时操作系统与非实时操作系统之间的通信方法 | |
CN104506379A (zh) | 网络数据捕获方法和系统 | |
CN107678835A (zh) | 一种数据传输方法及系统 | |
WO2018004953A1 (en) | Technologies for scalable packet reception and transmission | |
CN104902327A (zh) | 一种页面的内容更新及下发方法、智能电视和系统 | |
CN105337750A (zh) | 光纤通道存储区域网络配置方法和装置 | |
CN104158764A (zh) | 报文处理方法及装置 | |
CN115277407A (zh) | 网口配置处理方法、装置、电子设备和存储介质 | |
CN103200596A (zh) | 一种瘦ap架构wlan网络中ap快速批量升级的方法 | |
CN102750245B (zh) | 报文接收方法、报文接收模块、装置及系统 | |
US20160077986A1 (en) | Electronic apparatus providing real-time switching and sharing of usb electronic devices among hosts | |
WO2017218133A1 (en) | Technologies for coordinating access to data packets in a memory | |
JP6448012B2 (ja) | 仮想マシン名を表示するための方法、装置、およびシステム | |
CN105511849A (zh) | 一种展示应用程序的方法、装置及系统 | |
CN102929662A (zh) | 一种基于网络批量分区的方法 | |
US20060184708A1 (en) | Host controller device and method | |
CN110377345B (zh) | 系统启动文件的处理方法及装置 | |
CN112817835A (zh) | 性能数据获取方法、装置、处理器及电子装置 | |
US8041902B2 (en) | Direct memory move of multiple buffers between logical partitions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building Patentee after: NSFOCUS Technologies Group Co.,Ltd. Patentee after: NSFOCUS TECHNOLOGIES Inc. Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building Patentee before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd. Patentee before: NSFOCUS TECHNOLOGIES Inc. |
|
CP01 | Change in the name or title of a patent holder |