pcie虚拟网卡驱动总结

pcie虚拟网卡驱动总结,第1张

项目需要使用pcie进行固件升级,为了适配原来的协议和应用,从pcie虚拟一个网卡出来进行升级。

因为Linux 内核本身已经含有了对TCP/IP协议栈的支持,最直接的方法就是开发一个基于PCI-E的虚拟网卡,这样有了IP地址,就可以通过TCP/IP协议栈进行通讯的了。

虚拟网卡的接口要求很简单,只要能够把协议栈送下来的IP包写到PCI-E的地址空间,即从虚拟网卡发送出去了;同时也能将其它虚拟网卡发送到PCI地址空间的IP包读出来,并送到上层协议栈上。虚拟网卡的接口要求很简单,只要能够把协议栈送下来的IP包写到PCI-E的地址空间,即从虚拟网卡发送出去了;同时也能将其它虚拟网卡发送到PCI地址空间的IP包读出来,并送到上层协议栈上。

其实这个过程就是把pcie共享内存看作网络phy,实现基于PCI共享内存的网卡设备驱动程序,这样就提供了TCP/IP协议栈中的数据链路层。而Linux内核中的网络子系统被设计成完全与协议无关。内核与网络驱动程序之间的交互,每次处理的是一个网络数据包;协议隐藏在驱动程序之后。这样应用程序就可以通过TCP/IP协议与网络上其他节点进行通讯了。

以装载和卸载模块为例:

1、首先输入代码

#include <linux/inith>

#include <linux/moduleh>

2、然后输入下方的代码:

static int my_init(void)

{

                    return  0;

}

static void my_exit(void)

3、然后在输入下方的代码:

{

                    return;

}

module_init(my_init);

module_exit(my_exit);这样就完成了。

linux下pcie驱动开发大概可以分为4个阶段,水平从低到高:

从安装使用=>linux常用命令=>linux系统编程=>内核开发阅读内核源码

系统编程推荐《高级unix环境编程》;

还有《unix网络编程》;

内核开发阅读内核源码阶段,从写驱动入手逐渐深入linux内核开发

参考书如下:

1《linux device drivers》

2《linux kernel development》

3《understading the linux kernel》

4《linux源码情景分析》

然后还需要看资料理解elf文件格式,连接器和加载器,cmu的一本教材中文名为《深入理解计算机系统》比较好。

以上就是关于pcie虚拟网卡驱动总结全部的内容,包括:pcie虚拟网卡驱动总结、如何编写Linux 驱动程序、linux下pcie驱动开发,该看些什么资料等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10633261.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存