2020-10-08

Linux cpsw网口驱动分析

  1. 网络设备驱动架构
    linux网络设备驱动程序的体系结构,依次为网络协议接口层,网络设备接口层,提供实际功能的设备驱动功能层以及网络设备与媒介层。
    网络协议接口层向网络层协议提供统一的数据包收发接口,不论上层协议是ARP,还是IP,都通过dev_queue_xmit()函数发送数据,并通过netif_rx()函数接受数据。
    网络设备接口层向协议接口层提供统一的用于描述具体网络属性和操作的结构体net_device,该结构体是设备驱动功能层中各函数的容器。
    设备驱动功能层的各函数是网络设备接口层net_device数据结构的具体成员,是驱使网络设备硬件完成相应动作的程序,它通过hard_start_xmit() 函数启动发送操作,并通过网络设备上的中断触发操作。
    网络设备与媒介层是完成数据包发送和接收的物理实体,包括网络适配器和具体的传输媒介,网络适配器被设备驱动功能层中的函数在物理上驱动。

  2. 网络设备驱动涉及的数据结构
    在设计具体的网络设备驱动时,需要完成的主要工作时编写设备驱动功能层的相关函数以填充net_device数据结构的内容并将net_device注册到内核。

struct net_device {
   
     
	char			name[IFNAMSIZ]

你可能感兴趣的:(linux驱动,linux,嵌入式,内核)