网络设备之分配net_device

在注册网络设备时,会调用pci_driver->probe函数,以e100网卡驱动为例,其最终会调用alloc_netdev_mqs来分配内存,并且在分配内存后调用setup函数(以太网为ether_setup)初始化二层地址等信息。下面以e100为例,分析alloc_netdev_mqs函数和ether_setup函数的执行流程;

相关函数的调用关系,如下;

 

分配函数最终会调用alloc_netdev_mqs来对net_device进行分配,并做相关成员的初始化;

 

如果二层设备遵循以太网规范,则上面setup函数实际会调用ether_setup,函数中对相关字段以太网标准进行了初始化,比类型,头部长度和操作,MTU,队列长度,标记等;前面文章中分析net_device结构时,其中的头部操作header_ops就是在这里进行赋值的,以太网对应的就是的eth_header_ops操作了;

 

本文链接:网络设备之分配net_device

转载声明:转载请注明来源:Linux TCP/IP Stack,谢谢!


发表评论

电子邮件地址不会被公开。 必填项已用*标注