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