失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > i.MX6ULL驱动开发 | 31 - Linux内核网络设备驱动框架

i.MX6ULL驱动开发 | 31 - Linux内核网络设备驱动框架

时间:2023-12-11 08:49:05

相关推荐

i.MX6ULL驱动开发 | 31 - Linux内核网络设备驱动框架

一、Linux网络设备驱动整体架构

网络设备是完成用户数据包在网络媒介上发送和接收的设备,它将上层协议传递下来的数据包,以特定的媒介访问控制方式进行发送,并将接收到的数据包传递给上层协议。

Linux系统对网络设备驱动定义了4个层次,如下图:

1. 网络协议接口层

网络协议接口层最主要的功能是给上层协议提供透明的数据包发送和接收接口,使得上层协议独立于具体的设备。

无论是ARP协议还是IP协议,都通过统一的dev_queue_xmit()函数发送数据,通过统一的netif_rx()函数接收数据。

2. 网络设备接口层

网络设备接口层的主要功能是为千变万化的网络设备定义统一、抽象的数据结构net_device结构体,以不变以万变,实现多种硬件在软件层次上的统一。

3. 设备驱动功能层

设备驱动功能层的各函数是网络设备接口层net_device数据结构的具体成员,是驱使网络设备硬件完成相应动作的程序,它通过hard_start_xmit()函数启动发送操作,并通过网络设备上的中断触发接收操作。

如果觉得《i.MX6ULL驱动开发 | 31 - Linux内核网络设备驱动框架》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。