struct sk_buff(9)
NAME
struct_sk_buff - socket buffer
SYNOPSIS
struct sk_buff {
struct sk_buff * next;
struct sk_buff * prev;
struct sock * sk;
ktime_t tstamp;
struct net_device * dev;
union {unnamed_union};
struct sec_path * sp;
char cb[48];
unsigned int len;
unsigned int data_len;
__u16 mac_len;
__u16 hdr_len;
union {unnamed_union};
__u32 priority;
__u8 local_df:1;
__u8 cloned:1;
__u8 ip_summed:2;
__u8 nohdr:1;
__u8 nfctinfo:3;
__u8 pkt_type:3;
__u8 fclone:2;
__u8 ipvs_property:1;
__u8 peeked:1;
__u8 nf_trace:1;
__be16 protocol;
void (* destructor) (struct sk_buff *skb);
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
struct nf_conntrack * nfct;
struct sk_buff * nfct_reasm;
#endif
#ifdef CONFIG_BRIDGE_NETFILTER
struct nf_bridge_info * nf_bridge;
#endif
int iif;
#ifdef CONFIG_NETDEVICES_MULTIQUEUE
__u16 queue_mapping;
#endif
#ifdef CONFIG_NET_SCHED
__u16 tc_index;
#ifdef CONFIG_NET_CLS_ACT
__u16 tc_verd;
#endif
#endif
#ifdef CONFIG_IPV6_NDISC_NODETYPE
__u8 ndisc_nodetype:2;
#endif
#ifdef CONFIG_NET_DMA
dma_cookie_t dma_cookie;
#endif
#ifdef CONFIG_NETWORK_SECMARK
__u32 secmark;
#endif
__u32 mark;
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;
};
MEMBERS
- next
- Next buffer in list
- prev
- Previous buffer in list
- sk
- Socket we are owned by
- tstamp
- Time we arrived
- dev
- Device we arrived on/are leaving by
- {unnamed_union}
- anonymous
- sp
- the security path, used for xfrm
- cb[48]
- Control buffer. Free for use by every layer. Put private vars here
- len
- Length of actual data
- data_len
- Data length
- mac_len
- Length of link layer header
- hdr_len
- writable header length of cloned skb
- {unnamed_union}
- anonymous
- priority
- Packet queueing priority
- local_df
- allow local fragmentation
- cloned
- Head may be cloned (check refcnt to be sure)
- ip_summed
- Driver fed us an IP checksum
- nohdr
- Payload reference only, must not modify header
- nfctinfo
- Relationship of this skb to the connection
- pkt_type
- Packet class
- fclone
- skbuff clone status
- ipvs_property
- skbuff is owned by ipvs
- peeked
- this packet has been seen already, so stats have been done for it, donīt do them again
- nf_trace
- netfilter packet trace flag
- protocol
- Packet protocol from driver
- destructor
- Destruct function
- nfct
- Associated connection, if any
- nfct_reasm
- netfilter conntrack re-assembly pointer
- nf_bridge
- Saved data about a bridged frame - see br_netfilter.c
- iif
- ifindex of device we arrived on
- queue_mapping
- Queue mapping for multiqueue devices
- tc_index
- Traffic control index
- tc_verd
- traffic control verdict
- ndisc_nodetype
- router type (from link layer)
- dma_cookie
- a cookie to one of several possible DMA operations done by skb DMA functions
- secmark
- security marking
- mark
- Generic packet mark
- transport_header
- Transport layer header
- network_header
- Network layer header
- mac_header
- Link layer header
- tail
- Tail pointer
- end
- End pointer
- head
- Head of buffer
- data
- Data head pointer
- truesize
- Buffer size
- users
- User count - see {datagram,tcp}.c