CN109062542A - 一种国产万兆网卡实现网络通讯的方法 - Google Patents

一种国产万兆网卡实现网络通讯的方法 Download PDF

Info

Publication number
CN109062542A
CN109062542A CN201810570967.1A CN201810570967A CN109062542A CN 109062542 A CN109062542 A CN 109062542A CN 201810570967 A CN201810570967 A CN 201810570967A CN 109062542 A CN109062542 A CN 109062542A
Authority
CN
China
Prior art keywords
network
domestic
layer
thousand
operating system
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.)
Pending
Application number
CN201810570967.1A
Other languages
English (en)
Inventor
李娜
赵鑫
杨贵永
范亚南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Chaoyue CNC Electronics Co Ltd
Original Assignee
Shandong Chaoyue CNC Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Chaoyue CNC Electronics Co Ltd filed Critical Shandong Chaoyue CNC Electronics Co Ltd
Publication of CN109062542A publication Critical patent/CN109062542A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种国产万兆网卡实现网络通讯的方法,包括如下步骤:分析操作系统内核、网络驱动和万兆网卡驱动程序的关系;根据分析的操作系统网络驱动的结构在操作系统内核中补丁国产万兆网卡驱动;将补丁后的国产万兆网卡驱动移植到国产服务器平台的操作系统内核中。基于X86架构linux操作系统,分析了Linux内核及其与网络设备驱动程序的关系,根据Linux网络设备驱动的结构保证了国产化万兆网卡能应用于国产服务器平台的linux操作系统。

Description

一种国产万兆网卡实现网络通讯的方法
技术领域
本发明属于万兆网络通讯技术领域,具体涉及一种国产万兆网卡实现网络通讯的方法。
背景技术
随着互联网技术的更新与发展,万兆以太网技术将在不久的将来成为网络应用的主流。万兆以太网使用IEEE 802.3以太网介质接入控制(MAC)协议、IEEE 802.3以太网帧格式和IEEE 802.3帧格式,不需要修改以太网介质接入控制(MAC)协议或分组格式。所以,能够支持所有网络的上层服务,包括在OSI七层模型的第二/三层或更高层次上运行的智能网络服务,具有高可用性、多协议标记交换(MPLS)、含IP语音(VoIP)在内的服务质量(QoS)、安全与策略实施、服务器负载均衡(SLB)和Web高速缓存等特点。为了满足国产服务器平台用户对网络带宽和处理能力的特殊要求,提升国产服务器平台网络通讯功能和性能需设计一种实现万兆网络通讯的方法。
发明内容
本发明的目的在于,针对上述现有技术存在的缺陷,提供设计一种国产万兆网卡实现网络通讯的方法,以解决上述技术问题。
为了达到上述目的,本发明的技术方案是:
一种国产万兆网卡实现网络通讯的方法,包括如下步骤:
分析操作系统内核、网络驱动和万兆网卡驱动程序的关系;
根据分析的操作系统网络驱动的结构在操作系统内核中补丁国产万兆网卡驱动;
将补丁后的国产万兆网卡驱动移植到国产服务器平台的操作系统内核中。
进一步的,步骤分析操作系统内核、网络驱动和万兆网卡驱动程序的关系中,分析网络驱动的结构包括网络协议接口层、网络设备接口层、设备驱动功能层和网络设备与媒介层;其中,
网络协议接口层向网络层协议提供统一的数据包收发接口;
网络设备接口层向网络协议接口层提供统一的用于描述具体网络设备属性和操作的结构体;
设备驱动功能层各函数是网络设备接口层结构体数据结构的具体成员,是驱使网络设备硬件完成相应动作的程序;
网络设备与媒介层是完成数据包发送和接受的物理实体。
进一步的,网络协议接口层向网络层协议提供统一的数据包收发接口,通过dev_queue_xmit()函数发送数据,并通过netif_rx()函数接受数据。
进一步的,网络设备接口层向网络协议接口层提供统一的用于描述具体网络设备属性和操作的结构体,其中,结构体为net_device,所述结构体是设备驱动功能层中各函数的容器。
进一步的,设备驱动功能层各函数是网络设备接口层结构体net_device数据结构的具体成员,是驱使网络设备硬件完成相应动作的程序,通过hard_start_xmit()函数启动发送操作,并通过网络设备上的中断触发接受操作。进一步的,网络设备与媒介层是完成数据包发送和接受的物理实体,包括网络适配器和具体的传输媒介,网络适配器被驱动功能层中的函数物理上驱动。
进一步的,步骤根据操作系统网络设备驱动的结构在操作系统内核中补丁万兆网卡驱动中:根据国产化万兆网卡驱动信息编写设备驱动功能层的相关函数,包括如下:
设置国产化万兆网卡网络设备的名称;
设置国产化万兆网卡设备所使用的共享内存的起始地址/结束地址、网络设备I/O断号、网络设备使用的中断号以及指定分配给网络设备的DMA通道;
设置国产化万兆网卡设备的硬件头长度、接口的硬件类型、最大传输单元(MTU)、存放网络设备的硬件地址、存放网络设备的广播地址;
打开网络接口设备、停止网络接口设备、启动数据包的发送、数据包的发送超时、网络设备特定的I/O 控制、网络设备的I/O 地址和中断号、网络设置设备的MAC地址;
net_device结构体的属性和函数指针将被设备驱动功能层的具体数值和函数赋予。
进一步的,步骤根据操作系统网络设备驱动的结构在操作系统内核中补丁万兆网卡驱动中,具体步骤如下:
通过硬件信息确定需要初始化的网卡驱动,其中,根据硬件的参数来取得对应的驱动值:
将网卡驱动挂载到对应的回调中,通过对应的net_device结构体取得adapter,其中,所有的核心操作都是保存在adapter中;
将所有回调拷贝至adapter;
设置网卡属性。
本发明的有益效果在于,基于X86架构linux操作系统,分析了Linux内核及其与网络设备驱动程序的关系,根据Linux网络设备驱动的结构保证了国产化万兆网卡能应用于国产服务器平台的linux操作系统。本发明设计能够顺利完成万兆网络通讯,解决国产服务器平台用户对网络带宽和处理能力的特殊要求,提升国产服务器平台网络通讯功能和性能。在国产服务器平台万兆网络通讯调试中,本发明技术方案可以作为一种调试方法,具有通用性强、简单可控、性价比高等特点。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
图1为本发明提供的一种国产万兆网卡实现网络通讯的方法流程图;
图2为本发明提供的一种国产万兆网卡实现网络通讯的方法流程图。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
如图1、图2所示,本发明实施例提供的一种国产万兆网卡实现网络通讯的方法,包括如下步骤:
分析操作系统内核、网络驱动和万兆网卡驱动程序的关系;
根据分析的操作系统网络驱动的结构在操作系统内核中补丁国产万兆网卡驱动;
将补丁后的国产万兆网卡驱动移植到国产服务器平台的操作系统内核中。
步骤分析操作系统内核、网络驱动和万兆网卡驱动程序的关系中,分析网络驱动的结构包括网络协议接口层、网络设备接口层、设备驱动功能层和网络设备与媒介层;其中,
网络协议接口层向网络层协议提供统一的数据包收发接口;
网络设备接口层向网络协议接口层提供统一的用于描述具体网络设备属性和操作的结构体;
设备驱动功能层各函数是网络设备接口层结构体数据结构的具体成员,是驱使网络设备硬件完成相应动作的程序;
网络设备与媒介层是完成数据包发送和接受的物理实体。
网络协议接口层向网络层协议提供统一的数据包收发接口,通过dev_queue_xmit()函数发送数据,并通过netif_rx()函数接受数据。
网络设备接口层向网络协议接口层提供统一的用于描述具体网络设备属性和操作的结构体,其中,结构体为net_device,所述结构体是设备驱动功能层中各函数的容器。
设备驱动功能层各函数是网络设备接口层结构体net_device数据结构的具体成员,是驱使网络设备硬件完成相应动作的程序,通过hard_start_xmit()函数启动发送操作,并通过网络设备上的中断触发接受操作。 进一步的,网络设备与媒介层是完成数据包发送和接受的物理实体,包括网络适配器和具体的传输媒介,网络适配器被驱动功能层中的函数物理上驱动。
步骤根据操作系统网络设备驱动的结构在操作系统内核中补丁万兆网卡驱动中:根据国产化万兆网卡驱动信息编写设备驱动功能层的相关函数,包括:
设置国产化万兆网卡网络设备的名称;
设置国产化万兆网卡设备所使用的共享内存的起始地址/结束地址、网络设备I/O断号、网络设备使用的中断号以及指定分配给网络设备的DMA通道;
设置国产化万兆网卡设备的硬件头长度、接口的硬件类型、最大传输单元(MTU)、存放网络设备的硬件地址、存放网络设备的广播地址
打开网络接口设备、停止网络接口设备、启动数据包的发送、数据包的发送超时、网络设备特定的I/O 控制、网络设备的I/O 地址和中断号、网络设置设备的MAC地址;
net_device结构体的属性和函数指针将被设备驱动功能层的具体数值和函数赋予。
步骤根据操作系统网络设备驱动的结构在操作系统内核中补丁万兆网卡驱动中,具体步骤如下:
通过硬件信息确定需要初始化的网卡驱动,其中,根据硬件的参数来取得对应的驱动值:
const struct txgbe_info*ii= txgbe_info_tbl[ent->driver_data];
将网卡驱动挂载到对应的回调中,通过对应的net_device结构体取得adapter,其中,所有的核心操作都是保存在adapter中;
将所有回调拷贝至adapter;
设置网卡属性,通过ethtool设置网卡的属性;
每个网络设备都有一个回调函数表(比如ndo_start_xmit)来供上层调用, ndo_start_xmit回调,它是驱动提供给协议栈的发送回调接口,就是选取对应的队列,然后调用txgbe_xmit_frame_ring来发送数据。
按照Linux内核、网络驱动及其与国产化万兆网卡驱动程序的关系,编写国产化万兆网卡设备驱动功能层的相关函数以填充net_device数据结构的内容,并将net_device注册入Linux内核的网络驱动程序,再经过编译生成网络驱动模块或是内核文件,加载到Linux系统下,实现国产化万兆网卡在国产服务器平台上的应用。
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。

Claims (8)

1.一种国产万兆网卡实现网络通讯的方法,其特征在于包括如下步骤:
分析操作系统内核、网络驱动和万兆网卡驱动程序的关系;
根据分析的操作系统网络驱动的结构在操作系统内核中补丁国产万兆网卡驱动;
将补丁后的国产万兆网卡驱动移植到国产服务器平台的操作系统内核中。
2.根据权利要求1所述的一种国产万兆网卡实现网络通讯的方法,其特征在于,步骤分析操作系统内核、网络驱动和万兆网卡驱动程序的关系中,分析网络驱动的结构包括网络协议接口层、网络设备接口层、设备驱动功能层和网络设备与媒介层;其中,
网络协议接口层向网络层协议提供统一的数据包收发接口;
网络设备接口层向网络协议接口层提供统一的用于描述具体网络设备属性和操作的结构体;
设备驱动功能层各函数是网络设备接口层结构体数据结构的具体成员,是驱使网络设备硬件完成相应动作的程序;
网络设备与媒介层是完成数据包发送和接受的物理实体。
3.根据权利要求2所述的一种国产万兆网卡实现网络通讯的方法,其特征在于,
网络协议接口层向网络层协议提供统一的数据包收发接口,通过dev_queue_xmit()函数发送数据,并通过netif_rx()函数接受数据。
4.根据权利要求3所述的一种国产万兆网卡实现网络通讯的方法,其特征在于,
网络设备接口层向网络协议接口层提供统一的用于描述具体网络设备属性和操作的结构体,其中,结构体为net_device,所述结构体是设备驱动功能层中各函数的容器。
5.根据权利要求4所述的一种国产万兆网卡实现网络通讯的方法,其特征在于,
设备驱动功能层各函数是网络设备接口层结构体net_device数据结构的具体成员,是驱使网络设备硬件完成相应动作的程序,通过hard_start_xmit()函数启动发送操作,并通过网络设备上的中断触发接受操作。
6.根据权利要求5所述的一种国产万兆网卡实现网络通讯的方法,其特征在于,
网络设备与媒介层是完成数据包发送和接受的物理实体,包括网络适配器和具体的传输媒介,网络适配器被驱动功能层中的函数物理上驱动。
7.根据权利要求6所述的一种国产万兆网卡实现网络通讯的方法,其特征在于,步骤根据操作系统网络设备驱动的结构在操作系统内核中补丁万兆网卡驱动中:根据国产化万兆网卡驱动信息编写设备驱动功能层的相关函数,包括如下:
设置国产化万兆网卡网络设备的名称;
设置国产化万兆网卡设备所使用的共享内存的起始地址/结束地址、网络设备I/O断号、网络设备使用的中断号以及指定分配给网络设备的DMA通道;
设置国产化万兆网卡设备的硬件头长度、接口的硬件类型、最大传输单元(MTU)、存放网络设备的硬件地址、存放网络设备的广播地址;
打开网络接口设备、停止网络接口设备、启动数据包的发送、数据包的发送超时、网络设备特定的I/O 控制、网络设备的I/O 地址和中断号、网络设置设备的MAC地址;
net_device结构体的属性和函数指针将被设备驱动功能层的具体数值和函数赋予。
8.根据权利要求7所述的一种国产万兆网卡实现网络通讯的方法,其特征在于,步骤根据操作系统网络设备驱动的结构在操作系统内核中补丁万兆网卡驱动中,具体步骤如下:
通过硬件信息确定需要初始化的网卡驱动,其中,根据硬件的参数来取得对应的驱动值:
将网卡驱动挂载到对应的回调中,通过对应的net_device结构体取得adapter,其中,所有的核心操作都是保存在adapter中;
将所有回调拷贝至adapter;
设置网卡属性。
CN201810570967.1A 2018-03-15 2018-06-05 一种国产万兆网卡实现网络通讯的方法 Pending CN109062542A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2018102146720 2018-03-15
CN201810214672 2018-03-15

Publications (1)

Publication Number Publication Date
CN109062542A true CN109062542A (zh) 2018-12-21

Family

ID=64820472

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810570967.1A Pending CN109062542A (zh) 2018-03-15 2018-06-05 一种国产万兆网卡实现网络通讯的方法

Country Status (1)

Country Link
CN (1) CN109062542A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109818982A (zh) * 2019-03-27 2019-05-28 深圳市吉祥腾达科技有限公司 一种提升网络通信设备新建性能的方法
CN112328313A (zh) * 2020-11-09 2021-02-05 中国船舶重工集团公司第七0七研究所九江分部 一种应用于嵌入式系统的通用架构

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100333206A1 (en) * 2009-06-30 2010-12-30 Prashant Dewan Protecting a software component using a transition point wrapper
CN103428226A (zh) * 2013-08-30 2013-12-04 天津汉柏汉安信息技术有限公司 一种用户态与内核通信的方法与系统
CN103645945A (zh) * 2013-11-04 2014-03-19 天津汉柏信息技术有限公司 一种虚拟网卡的自动探测及驱动加载方法
CN103853683A (zh) * 2014-03-07 2014-06-11 山东超越数控电子有限公司 一种多串口数据通讯实现方法
CN103853586A (zh) * 2014-03-05 2014-06-11 中南大学 一种在uefi层实现无线网卡驱动的方法
CN105652813A (zh) * 2014-11-13 2016-06-08 沈阳高精数控智能技术股份有限公司 一种基于AM335X处理器构建嵌入式实时EtherCAT主站的方法
CN105808320A (zh) * 2016-03-11 2016-07-27 四川安嵌科技有限公司 基于Linux容器的设备虚拟化系统及方法
CN106341391A (zh) * 2016-08-17 2017-01-18 汉柏科技有限公司 一种可快速移植适配硬件的方法及防火墙
CN107196948A (zh) * 2017-06-08 2017-09-22 上海中兴电力建设发展有限公司 基于能源互联网的高效应用式安全专网传输方法与系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100333206A1 (en) * 2009-06-30 2010-12-30 Prashant Dewan Protecting a software component using a transition point wrapper
CN103428226A (zh) * 2013-08-30 2013-12-04 天津汉柏汉安信息技术有限公司 一种用户态与内核通信的方法与系统
CN103645945A (zh) * 2013-11-04 2014-03-19 天津汉柏信息技术有限公司 一种虚拟网卡的自动探测及驱动加载方法
CN103853586A (zh) * 2014-03-05 2014-06-11 中南大学 一种在uefi层实现无线网卡驱动的方法
CN103853683A (zh) * 2014-03-07 2014-06-11 山东超越数控电子有限公司 一种多串口数据通讯实现方法
CN105652813A (zh) * 2014-11-13 2016-06-08 沈阳高精数控智能技术股份有限公司 一种基于AM335X处理器构建嵌入式实时EtherCAT主站的方法
CN105808320A (zh) * 2016-03-11 2016-07-27 四川安嵌科技有限公司 基于Linux容器的设备虚拟化系统及方法
CN106341391A (zh) * 2016-08-17 2017-01-18 汉柏科技有限公司 一种可快速移植适配硬件的方法及防火墙
CN107196948A (zh) * 2017-06-08 2017-09-22 上海中兴电力建设发展有限公司 基于能源互联网的高效应用式安全专网传输方法与系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DAEMON_1994: "intel万兆网卡驱动简要分析", 《HTTPS://BLOG.CSDN.NET/G_HK/ARTICLE/DETAILS/42586463》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109818982A (zh) * 2019-03-27 2019-05-28 深圳市吉祥腾达科技有限公司 一种提升网络通信设备新建性能的方法
CN109818982B (zh) * 2019-03-27 2021-08-17 深圳市吉祥腾达科技有限公司 一种提升网络通信设备新建性能的方法
CN112328313A (zh) * 2020-11-09 2021-02-05 中国船舶重工集团公司第七0七研究所九江分部 一种应用于嵌入式系统的通用架构
CN112328313B (zh) * 2020-11-09 2023-07-14 中国船舶重工集团公司第七0七研究所九江分部 一种应用于嵌入式软件的通用系统

Similar Documents

Publication Publication Date Title
EP3447973B1 (en) Packet switching service recognition method and terminal
CN101789877B (zh) 一种构建网络的方法和系统
Kerpez et al. Software-defined access networks
WO2015051704A1 (zh) 移动终端多apn网络并发系统及其联网方法
EP3806407A1 (en) Method, system, and routing device for establishing network
US9451502B2 (en) Service control method and system, evolved nodeB, and packet data network gateway
US8832141B2 (en) Method, device and system for combination of resource and admission control
US20100205466A1 (en) System and Method for Power Over Ethernet Power Mode Policy and Network Management
WO2015096417A1 (zh) 一种软件定义网络中的状态迁移方法及交换机
WO2013174178A1 (zh) 一种管理虚拟网络服务的方法、装置和系统
WO2015051706A1 (zh) 多apn网络并发联网的多apn通道管理方法
WO2015139724A1 (en) Device and method for managing policies and/or resources used for configuring a network
WO2019128989A1 (zh) 一种智能路由器服务质量的实现方法、路由器及电子设备
CN109818867A (zh) 一种配置方法及装置
CN101321054B (zh) 自动防止网络侧媒体接入控制地址被仿冒的方法及其装置
WO2012174917A1 (zh) 数据卡启动方法及数据卡
CN109062542A (zh) 一种国产万兆网卡实现网络通讯的方法
WO2015051703A1 (zh) 有序管理多路apn并发联网数据传输通道的方法
WO2016172958A1 (zh) 一种流量动态控制方法、设备及网关、融合接入汇聚点
CN103974339B (zh) 一种数据缓存的方法和装置
CN106375486A (zh) 一种云平台软件定义dhcp服务的系统
WO2017063511A1 (zh) 一种基于sdn的住宅小区网络控制系统
EP3085067B1 (en) Method for an automatic selection of an ip qos mechanism, respective cpe device and computer readable storage medium
CN1538666A (zh) 一种xDSL终端设备管理系统
Jain et al. Evolving to 6G: Improving the Cellular Core to lower control and data plane latency

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20181221