struct sk_buff — socket buffer
struct sk_buff { struct sk_buff * next; struct sk_buff * prev; struct sock * sk; ktime_t tstamp; struct net_device * dev; unsigned long _skb_dst; #ifdef CONFIG_XFRM struct sec_path * sp; #endif char cb[48]; unsigned int len; unsigned int data_len; __u16 mac_len; __u16 hdr_len; union {unnamed_union}; __u16 vlan_tci; #ifndef __GENKSYMS__ #endif sk_buff_data_t transport_header; sk_buff_data_t network_header; sk_buff_data_t mac_header; sk_buff_data_t tail; sk_buff_data_t end; unsigned char * head; unsigned char * data; unsigned int truesize; atomic_t users; };
Next buffer in list
Previous buffer in list
Socket we are owned by
Time we arrived
Device we arrived on/are leaving by
destination entry
the security path, used for xfrm
Control buffer. Free for use by every layer. Put private vars here
Length of actual data
Data length
Length of link layer header
writable header length of cloned skb
anonymous
vlan tag control information
Transport layer header
Network layer header
Link layer header
Tail pointer
End pointer
Head of buffer
Data head pointer
Buffer size
User count - see {datagram,tcp}.c