Linux驱动开发-15、网络设备驱动

本文主要介绍了Linux网络设备驱动的相关内容,包括驱动基于套接字socket实现通讯、网络子系统的架构、关键数据结构如sk_buff和net_device,以及设备初始化、发送和接收函数等。通过alloc_netdev和register_netdev等函数进行设备分配和注册,ndo_start_xmit用于网卡发送,net_rx处理接收中断。
摘要由CSDN通过智能技术生成

网络设备驱动

1、Linux 网络类设备不在是基于文件操作(没有对应的映射到文件系统中的设备节点),而是套接字socket来实现通讯

2、Linux 网络子系统的架构图

 

各层次接口功能说明:

系统调用接口层:为应用程序提供访问网络子系统的统一方法。
协议无关层:提供通用的方法来使用传输层协议。
协议栈的实现:实现具体的网络协议
设备无关层:协议与设备驱动之前通信的通用接口
设备驱动程序:

 

3、驱动程序数据结构

数据包描述结构:struct sk_buff

a) 所在头文件:<linux/sk_buff.h>

b) sk_buffLinux网络层提供高效的缓冲区处理和流量控制机制,对驱动开发来说比较关心的是sk_buff结构体中的以下数据:

struct sk_buff

{

unsigned int len, /*数据包包含的数据量*/

....

sk_buff_data_t tail; /* 用于指向</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值