数据结构
191 struct sk_buff_head {
192 /* These two members must be first. */
193 struct sk_buff *next;
194 struct sk_buff *prev;
195
196 __u32 qlen;
197 spinlock_t lock;
198 };
sk_buff和sk_buff_head的前两个元素是相同的:next和prev指针。尽管sk_buff_head与sk_buff相比实在太小,但还是允许两个结构共同存在于同一个表中。另外,同样的函数也可用于操作sk_buff和sk_buff_head二者。
每个sk_buff结构都包含一个指针,指向专一的sk_buff_head结构,增加了其复杂性。这个指针的字段名称为list。
看图:
数据结构关系图: