數據結構
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。
看圖:
數據結構關係圖: