专题15-网卡驱动程序设计

第1课-网卡驱动架构分析

l  Linux网络子系统

l  系统调用接口层:为应用程序提供访问网络子系统的统一方法。

l  协议无关层:提供通用的方法来使用传输层协议。

l  协议栈的实现:实现具体的网络协议

l  设备无关层:协议与设备驱动之前通信的通用接口

l  设备驱动程序

  1. 重要数据结构

在Linux内核中,每个网卡都由一个net_device结构来描述,其中的一些重要成员有:

l  char name[IFNAMSIZ],设备名,如:eth%d

l  unsigned long base_addr,I/O 基地址

l  const struct net_device_ops *netdev_ops;

  1. 网卡描述结构

类似于字符设备驱动中的file_operations结构,net_device_ops结构记录了网卡所支持的操作。

static const struct net_device_ops dm9000_netdev_ops =

{

.ndo_open = dm9000_open,

.ndo_open = dm9000_open,

.ndo_stop = dm9000_stop,

.ndo_start_xmit = dm9000_start_xmit,

.ndo_do_ioctl = dm9000_ioctl,

.ndo_validate_addr = eth_validate_addr,

.ndo_set_mac_address = eth_mac_addr,

};

  1. 网卡操作集合

类似于字符设备驱动中的file_operations结构,net_device_ops结构记录了网卡所支持的操作。

static const struct net_device_ops dm9000_netdev_ops =

{

.ndo_open = dm9000_open,

.ndo_open = dm9000_open,

.ndo_stop = dm9000_stop,

.ndo_start_xmit = dm9000_start_xmit,

.ndo_do_ioctl = dm9000_ioctl,

.ndo_validate_addr = eth_validate_addr,

.ndo_set_mac_address = eth_mac_addr,

};

  1. 网络数据包

Linux内核中的每个网络数据包都由一个套接字缓冲区结构struct sk_buff 描述,即一个sk_buff结构就是一个网络包,指向sk_buff的指针通常被称做skb。

第2课-回环网卡驱动设计

第3课-网络子系统深度剖析

第4课-DM9000网卡驱动深度分析

第5课-DM9000网卡驱动实现

转载于:https://www.cnblogs.com/free-1122/p/11452269.html

第四季-专题15-网卡驱动程序设计相关推荐

  1. 基于嵌入式Linux的千兆以太网卡驱动程序设计及测试

    基于嵌入式Linux的千兆以太网卡驱动程序设计及测试 一. 引言 千兆以太网是一种具有高带宽和高响应的新网络技术,相关协议遵循IEEE 802.3规范标准.采用和10M以太网相似的帧格式.网络协议和布 ...

  2. 网卡驱动程序设计_设计卡

    网卡驱动程序设计 牌? 你是说喜欢扑克? (Cards? You mean like Poker?) Close. But no, not exactly. 关. 但是不,不完全是. We're ta ...

  3. linux网卡驱动开发视频,Linux下网卡驱动程序的开发.doc

    Linux下网卡驱动程序的开发 论文题目:Linux下网卡驱动程序的开发 专 业: 年 级: 学生学号: 学生姓名: 指导教师: 完成时间: Linux下网卡驱动程序的开发 八年经验 专业指导毕业设计 ...

  4. 虚拟网卡 TUN/TAP 驱动程序设计原理

    简介 虚拟网卡Tun/tap驱动是一个开源项目,支持很多的类UNIX平台,OpenVPN和Vtun都是基于它实现隧道包封装.本文将介绍tun/tap驱动的使用并分析虚拟网卡tun/tap驱动程序在li ...

  5. linux 网卡驱动分析,基于linux下网卡驱动分析及实现技术研究

    摘    要 Linux技术是当前计算机技术中最大的一个热点,在我国以及全世界得到了迅猛的发展,被广泛的应用于嵌入式系统.服务器.网络系统.安全等领域.从而使得掌握在 Linux环境下的开发技术,成为 ...

  6. Linux下的C编程实战(开发平台搭建,文件系统编程,进程控制与进程通信编程,“线程”控制与“线程”通信编程,驱动程序设计,专家问答)

    Linux下的C编程实战(一) ――开发平台搭建 1.引言 Linux操作系统在服务器领域的应用和普及已经有较长的历史,这源于它的开源特点以及其超越Windows的安全性和稳定性.而近年来,Linux ...

  7. linux拓实n87驱动下载,拓实n87网卡驱动for xp/win7官方版

    拓实n87网卡驱动for xp/win7官方版是一个十分强大的网卡驱动管理软件,拓实n87网卡驱动for xp/win7官方版是ts N87高增益全向无线USB网卡驱动程序,拓实n87全面支持移动cm ...

  8. 信息安全系统设计基础 实验四:外社驱动程序设计 20135327郭皓 20135329 李海空...

    北京电子科技学院(BESTI) 实     验    报     告 课程:信息安全设计基础                         班级:1353 姓名:郭皓 李海空 学号:20135327 ...

  9. linux编译安装网卡驱动详解(网卡丢包)

    安装编译网卡驱动 这两天发现一台server丢包很严重,使用cacti监控工具时能获得snmp包,时常又不能,丢包严重,导致使用ssh工具连接过慢,连接数据库访问超时,此时要先确定是中病毒还是网卡问题 ...

  10. Centos 6.5 初始安装无网卡驱动解决方法

    ​一.问题的现象: 安装完后不能上网,/etc/sysconfig/network-scripts/目录下ifcfg打头的文件名只有ifcfg-lo,没有ifcfg-eth0文件(在其它博客上看到,有 ...

最新文章

  1. linux模拟树莓派,树莓派使用入门:树莓派上的模拟器和原生 Linux 游戏
  2. 脑与神经科学3 脑神经影像上
  3. 服务器虚拟化管理,几招让你快速成就你的服务器
  4. 【项目管理】ITTO-成本管理
  5. 6.1的学习成果,主要是用到指向函数的指针
  6. [渝粤教育] 苏州工艺美术职业技术学院 手机人像摄影 参考 资料
  7. python语言中整型对应的英文_Python基本数据类型详细介绍(转)
  8. 关于angularjs input上传图片前获取图片的Size 浅析
  9. LeetCode 1913. 两个数对之间的最大乘积差
  10. 知乎十周年之际,悟空问答宣布下线
  11. 最新CleanMyMac支持MacOS 12.x
  12. 物联网工程导论 简单整理
  13. 增值税下调对财务软件的影响
  14. 不懂这显然您不专业!云计算术语大全
  15. python 计算list中平均值_python里的list求平均值
  16. inter uhd graphics630显卡驱动_Intel新驱动已支持Win10 H2更新、11代酷睿狂喜
  17. 计算机趣事 英语作文,英语作文100字趣事
  18. CAD 查找指定部件数量
  19. 【雅思大作文考官范文】——第十八篇:“problem and solution essay”
  20. 大多数的愤怒源于自己的无知——《Excel受保护视图》

热门文章

  1. 2020网上答题拿证书的竞赛_参赛答题拿证书—全国大学生知识竞赛
  2. 查找算法---------斐波那契查找
  3. 阿里云:已有10000家企业在云上构建数据湖
  4. 开源大数据生态下的 Flink 应用实践
  5. 重磅!吴恩达新书《机器学习训练秘籍》中文版来了(附PDF下载)
  6. 三星笔记文件存储路径_《那些年JavaWeb踩过的坑》ssh框架整合配置文件路径(错误笔记)...
  7. linux qt程序窗口大小变化,Qt调整初始窗口大小
  8. 哪些场景应用了dsrc通信标准_如何提高量子通信系统的实用性,制约了量子通信系统的应用场景...
  9. android获取root修改根目录,代码中获取root权限并随意修改根目录文件
  10. ffmpeg 推流同时录像命令_使用FFmpeg将rtsp流摄像头视频转码为rtmp播放