当前位置:嗨网首页>书籍在线阅读

17-总结

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

16.10 总结

Linux网络设备驱动体系结构的层次化设计实现了对上层协议接口的统一和硬件驱动的对下层多样化硬件设备的可适应。程序员需要完成的工作集中在设备驱动功能层,网络设备接口层net_device结构体的存在将千变万化的网络设备得以抽象,使得设备功能层中除数据包接收以外的主体工作都由填充net_device的属性和函数指针完成。

在分析net_device数据结构的基础上,本章给出了设备驱动功能层设备初始化、数据包收发、打开和释放等函数的设计模板,这些模板对实际设备驱动的开发具有直接指导意义。有了这些模板,我们在设计具体设备的驱动时,不再需要关心程序的体系,而可以集中精力于硬件操作本身。

在Linux网络子系统和设备驱动中,套接字缓冲区sk_buff发挥着巨大的作用,是所有数据流动的载体。网络设备驱动和上层协议之间也依赖此结构进行数据包交互,因此,我们要特别牢记它的操作方法。