12.5.1  基本结构                                              

如图12.14 是网络设备驱动程序的结构,从中我们可以看出:网络设备驱动程序的功能分为两部分:发送数据和接受数据。在发送数据时,设备驱动程序全权负责把来自协议层的网络缓冲区发送到物理介质,并且接受硬件产生的应答信号;在接受数据时,设备驱动程序接受来自网络介质上的数据帧,并把它转换成能被网络协议识别的网络缓冲区,然后把它传递给 netif_rx ( )函数。这个函数的功能是把数据帧传递到网络协议层进行进一步的处理。

      

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


12.14    Linux 网络设备驱动程序的结构

每一种网络设备驱动程序都提供了一套相应的函数,它们负责对数据的传输过程进行各种控制(包括停止、开始等),它们也负责对数据进行封装。所有这些控制信息也都保存在设备驱动程序的数据结构中。