netdevice 与 网络初始化

一、基本概念 <include/linux/netdevice.h>

net_device 数据结构存储着特定网络设备的所有信息。

网络设备驱动程序必须依靠这个数据结构。

该结构分成以下几段:

* 配置( net_device_ops )

* 统计数据 ()

* 设备状态(flags)

* 列表管理

* 流量管理

* 功能专用

* 通用(name, mac, mtu, flags, multicast address)

* 函数指针

 

struct net_device {

   char name[IFNAMSIZ];   // 接口名称

   char *ifalias;    // 接口别名

   unsigned long mem_end;  // 接口在内存结束

   unsigned long mem_start;   // 接口在内存开始
   unsigned long base_addr;   // 接口的基址

   int irq;   // 中断信号

}

 

这个数据结构由 alloc_netdev 来分配  net/core/dev.c

 

 

网络初始化: 静态编译或者模块方式

__devinit 或 __init   include/linux/init.h

 

 

New API 在网络设备中

使用轮循方式查看数据,适用于高负载的情况。

 

posted @ 2017-12-22 16:07  elewei  阅读(1166)  评论(0)    收藏  举报