全部博文(396)
分类: 嵌入式
2017-03-07 14:14:29
在Linux系统中,网络设备都被抽象为struct net_device结构体。它是网络设备硬件与上层协议之间联系的接口,了解它对编写网络驱动程序非常有益,所以本文将着手简要介绍linux-2.6.38.8/include/linux/netdevice.h文件中struct net_device结构体的所有成员(没有按照它们定义的顺序)。
1、网络设备相关信息
(1)、设备名
在Linux系统中,每个网络设备都有一个唯一的设备名(如eth0,字母部分代表网络设备的类型,数字部分代表此类网络设备的数量)。
(2)、电源管理服务质量( power managementQuality Of Service)
用于Wi-Fi和千兆以太网,可以帮助控制网络的延迟和带宽的需求,以达到在可用的前提下省电的目的。
(3)、硬件信息
(4)、标识符
(5)、分配套接字缓冲区时预留空间的长度
(6)、在sysfs文件系统中输出网络设备信息
(7)、网络设备相关链表
(8)、混杂模式
(9)、网络层协议特定数据
(10)、设备硬件功能特性
(11)、分配net_device结构体及其私有数据时为对齐所需的填充位数目
(12)、其他信息
2、网络设备的运行状态
(1)、网络设备物理上的工作状态
(2)、网络设备通信模式或状态
(3)、统计信息
(4)、RFC2863协议相关
(5)、传输超时
(6)、设备注册/注销状态机
(7)、引用计数
(8)、分组状态
(9)、RTNL初始化状态
3、网络设备的操作函数
4、数据包的收发队列
(1)、接收队列
(2)、发送队列