xref: /linux/Documentation/networking/skbuff.rst (revision 9facd941)
1.. SPDX-License-Identifier: GPL-2.0
2
3struct sk_buff
4==============
5
6:c:type:`sk_buff` is the main networking structure representing
7a packet.
8
9Basic sk_buff geometry
10----------------------
11
12.. kernel-doc:: include/linux/skbuff.h
13   :doc: Basic sk_buff geometry
14
15Shared skbs and skb clones
16--------------------------
17
18:c:member:`sk_buff.users` is a simple refcount allowing multiple entities
19to keep a struct sk_buff alive. skbs with a ``sk_buff.users != 1`` are referred
20to as shared skbs (see skb_shared()).
21
22skb_clone() allows for fast duplication of skbs. None of the data buffers
23get copied, but caller gets a new metadata struct (struct sk_buff).
24&skb_shared_info.refcount indicates the number of skbs pointing at the same
25packet data (i.e. clones).
26
27dataref and headerless skbs
28---------------------------
29
30.. kernel-doc:: include/linux/skbuff.h
31   :doc: dataref and headerless skbs
32
33Checksum information
34--------------------
35
36.. kernel-doc:: include/linux/skbuff.h
37   :doc: skb checksums
38