1STRUCT SK_BUFF(9) Linux Networking STRUCT SK_BUFF(9)
2
3
4
6 struct_sk_buff - socket buffer
7
9 struct sk_buff {
10 struct sk_buff * next;
11 struct sk_buff * prev;
12 ktime_t tstamp;
13 struct sock * sk;
14 struct net_device * dev;
15 char cb[48];
16 unsigned long _skb_refdst;
17 #ifdef CONFIG_XFRM
18 struct sec_path * sp;
19 #endif
20 unsigned int len;
21 unsigned int data_len;
22 __u16 mac_len;
23 __u16 hdr_len;
24 union {unnamed_union};
25 __u16 vlan_tci;
26 sk_buff_data_t transport_header;
27 sk_buff_data_t network_header;
28 sk_buff_data_t mac_header;
29 sk_buff_data_t tail;
30 sk_buff_data_t end;
31 unsigned char * head;
32 unsigned char * data;
33 unsigned int truesize;
34 atomic_t users;
35 };
36
38 next
39 Next buffer in list
40
41 prev
42 Previous buffer in list
43
44 tstamp
45 Time we arrived
46
47 sk
48 Socket we are owned by
49
50 dev
51 Device we arrived on/are leaving by
52
53 cb[48]
54 Control buffer. Free for use by every layer. Put private vars here
55
56 _skb_refdst
57 destination entry (with norefcount bit)
58
59 sp
60 the security path, used for xfrm
61
62 len
63 Length of actual data
64
65 data_len
66 Data length
67
68 mac_len
69 Length of link layer header
70
71 hdr_len
72 writable header length of cloned skb
73
74 {unnamed_union}
75 anonymous
76
77 vlan_tci
78 vlan tag control information
79
80 transport_header
81 Transport layer header
82
83 network_header
84 Network layer header
85
86 mac_header
87 Link layer header
88
89 tail
90 Tail pointer
91
92 end
93 End pointer
94
95 head
96 Head of buffer
97
98 data
99 Data head pointer
100
101 truesize
102 Buffer size
103
104 users
105 User count - see {datagram,tcp}.c
106
108Kernel Hackers Manual 2.6. November 2011 STRUCT SK_BUFF(9)