Skip to content

Files

Latest commit

 

History

History
37 lines (26 loc) · 995 Bytes

File metadata and controls

37 lines (26 loc) · 995 Bytes

struct sk_buff

:c:type:`sk_buff` is the main networking structure representing a packet.

Basic sk_buff geometry

.. kernel-doc:: include/linux/skbuff.h
   :doc: Basic sk_buff geometry

Shared skbs and skb clones

:c:member:`sk_buff.users` is a simple refcount allowing multiple entities to keep a struct sk_buff alive. skbs with a sk_buff.users != 1 are referred to as shared skbs (see skb_shared()).

skb_clone() allows for fast duplication of skbs. None of the data buffers get copied, but caller gets a new metadata struct (struct sk_buff). &skb_shared_info.refcount indicates the number of skbs pointing at the same packet data (i.e. clones).

dataref and headerless skbs

.. kernel-doc:: include/linux/skbuff.h
   :doc: dataref and headerless skbs

Checksum information

.. kernel-doc:: include/linux/skbuff.h
   :doc: skb checksums