struct sk_buff
Prev | Socket Buffer Functions | Next

## 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;
      struct dst_entry * dst;
      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 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_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

dst

  destination entry

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

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

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

Prev | Up | Next
Socket Buffer Functions | Home | skb_queue_empty