日期:2014-05-16 浏览次数:20800 次
【linux驱动分析】之dm9000驱动分析(一):dm9000原理及硬件分析
【linux驱动分析】之dm9000驱动分析(二):定义在板文件中的资源和设备以及几个宏
【linux驱动分析】之dm9000驱动分析(三):sk_buff结构分析
【linux驱动分析】之dm9000驱动分析(四):net_device结构体
【linux驱动分析】之dm9000驱动分析(五):另外几个重要的结构体
【linux驱动分析】之dm9000驱动分析(六):dm9000_init和dm9000_probe的实现
【linux驱动分析】之dm9000驱动分析(七):dm9000的卸载挂起和恢复以及打开和停止
1、在内核中sk_buff是一个网络数据包,它是一个双向链表,而链表头就是sk_buff_head。
而sk_buff的内存布局可以分作3个段,第一个就是sk_buff自身,第二个是linear-data buff,第三个是paged-data buff(也就是skb_shared_info)。
先来看一下sk_buff_head:
struct sk_buff_head {
/* These two members must be first. */
struct sk_buff *next;