第四季-专题15-网卡驱动程序设计
专题15-网卡驱动程序设计
第1课-网卡驱动架构分析
l Linux网络子系统
l 系统调用接口层:为应用程序提供访问网络子系统的统一方法。
l 协议无关层:提供通用的方法来使用传输层协议。
l 协议栈的实现:实现具体的网络协议
l 设备无关层:协议与设备驱动之前通信的通用接口
l 设备驱动程序
- 重要数据结构
在Linux内核中,每个网卡都由一个net_device结构来描述,其中的一些重要成员有:
l char name[IFNAMSIZ],设备名,如:eth%d
l unsigned long base_addr,I/O 基地址
l const struct net_device_ops *netdev_ops;
- 网卡描述结构
类似于字符设备驱动中的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,
};
- 网卡操作集合
类似于字符设备驱动中的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,
};
- 网络数据包
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-网卡驱动程序设计相关推荐
- 基于嵌入式Linux的千兆以太网卡驱动程序设计及测试
基于嵌入式Linux的千兆以太网卡驱动程序设计及测试 一. 引言 千兆以太网是一种具有高带宽和高响应的新网络技术,相关协议遵循IEEE 802.3规范标准.采用和10M以太网相似的帧格式.网络协议和布 ...
- 网卡驱动程序设计_设计卡
网卡驱动程序设计 牌? 你是说喜欢扑克? (Cards? You mean like Poker?) Close. But no, not exactly. 关. 但是不,不完全是. We're ta ...
- linux网卡驱动开发视频,Linux下网卡驱动程序的开发.doc
Linux下网卡驱动程序的开发 论文题目:Linux下网卡驱动程序的开发 专 业: 年 级: 学生学号: 学生姓名: 指导教师: 完成时间: Linux下网卡驱动程序的开发 八年经验 专业指导毕业设计 ...
- 虚拟网卡 TUN/TAP 驱动程序设计原理
简介 虚拟网卡Tun/tap驱动是一个开源项目,支持很多的类UNIX平台,OpenVPN和Vtun都是基于它实现隧道包封装.本文将介绍tun/tap驱动的使用并分析虚拟网卡tun/tap驱动程序在li ...
- linux 网卡驱动分析,基于linux下网卡驱动分析及实现技术研究
摘 要 Linux技术是当前计算机技术中最大的一个热点,在我国以及全世界得到了迅猛的发展,被广泛的应用于嵌入式系统.服务器.网络系统.安全等领域.从而使得掌握在 Linux环境下的开发技术,成为 ...
- Linux下的C编程实战(开发平台搭建,文件系统编程,进程控制与进程通信编程,“线程”控制与“线程”通信编程,驱动程序设计,专家问答)
Linux下的C编程实战(一) ――开发平台搭建 1.引言 Linux操作系统在服务器领域的应用和普及已经有较长的历史,这源于它的开源特点以及其超越Windows的安全性和稳定性.而近年来,Linux ...
- linux拓实n87驱动下载,拓实n87网卡驱动for xp/win7官方版
拓实n87网卡驱动for xp/win7官方版是一个十分强大的网卡驱动管理软件,拓实n87网卡驱动for xp/win7官方版是ts N87高增益全向无线USB网卡驱动程序,拓实n87全面支持移动cm ...
- 信息安全系统设计基础 实验四:外社驱动程序设计 20135327郭皓 20135329 李海空...
北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全设计基础 班级:1353 姓名:郭皓 李海空 学号:20135327 ...
- linux编译安装网卡驱动详解(网卡丢包)
安装编译网卡驱动 这两天发现一台server丢包很严重,使用cacti监控工具时能获得snmp包,时常又不能,丢包严重,导致使用ssh工具连接过慢,连接数据库访问超时,此时要先确定是中病毒还是网卡问题 ...
- Centos 6.5 初始安装无网卡驱动解决方法
一.问题的现象: 安装完后不能上网,/etc/sysconfig/network-scripts/目录下ifcfg打头的文件名只有ifcfg-lo,没有ifcfg-eth0文件(在其它博客上看到,有 ...
最新文章
- linux模拟树莓派,树莓派使用入门:树莓派上的模拟器和原生 Linux 游戏
- 脑与神经科学3 脑神经影像上
- 服务器虚拟化管理,几招让你快速成就你的服务器
- 【项目管理】ITTO-成本管理
- 6.1的学习成果,主要是用到指向函数的指针
- [渝粤教育] 苏州工艺美术职业技术学院 手机人像摄影 参考 资料
- python语言中整型对应的英文_Python基本数据类型详细介绍(转)
- 关于angularjs input上传图片前获取图片的Size 浅析
- LeetCode 1913. 两个数对之间的最大乘积差
- 知乎十周年之际,悟空问答宣布下线
- 最新CleanMyMac支持MacOS 12.x
- 物联网工程导论 简单整理
- 增值税下调对财务软件的影响
- 不懂这显然您不专业!云计算术语大全
- python 计算list中平均值_python里的list求平均值
- inter uhd graphics630显卡驱动_Intel新驱动已支持Win10 H2更新、11代酷睿狂喜
- 计算机趣事 英语作文,英语作文100字趣事
- CAD 查找指定部件数量
- 【雅思大作文考官范文】——第十八篇:“problem and solution essay”
- 大多数的愤怒源于自己的无知——《Excel受保护视图》
热门文章
- 2020网上答题拿证书的竞赛_参赛答题拿证书—全国大学生知识竞赛
- 查找算法---------斐波那契查找
- 阿里云:已有10000家企业在云上构建数据湖
- 开源大数据生态下的 Flink 应用实践
- 重磅!吴恩达新书《机器学习训练秘籍》中文版来了(附PDF下载)
- 三星笔记文件存储路径_《那些年JavaWeb踩过的坑》ssh框架整合配置文件路径(错误笔记)...
- linux qt程序窗口大小变化,Qt调整初始窗口大小
- 哪些场景应用了dsrc通信标准_如何提高量子通信系统的实用性,制约了量子通信系统的应用场景...
- android获取root修改根目录,代码中获取root权限并随意修改根目录文件
- ffmpeg 推流同时录像命令_使用FFmpeg将rtsp流摄像头视频转码为rtmp播放