~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/bpf/maps.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/bpf/maps.rst (Version linux-6.12-rc7) and /Documentation/bpf/maps.rst (Version linux-6.2.16)


  1                                                     1 
  2 ========                                            2 ========
  3 BPF maps                                            3 BPF maps
  4 ========                                            4 ========
  5                                                     5 
  6 BPF 'maps' provide generic storage of differen      6 BPF 'maps' provide generic storage of different types for sharing data between
  7 kernel and user space. There are several stora      7 kernel and user space. There are several storage types available, including
  8 hash, array, bloom filter and radix-tree. Seve      8 hash, array, bloom filter and radix-tree. Several of the map types exist to
  9 support specific BPF helpers that perform acti      9 support specific BPF helpers that perform actions based on the map contents. The
 10 maps are accessed from BPF programs via BPF he     10 maps are accessed from BPF programs via BPF helpers which are documented in the
 11 `man-pages`_ for `bpf-helpers(7)`_.                11 `man-pages`_ for `bpf-helpers(7)`_.
 12                                                    12 
 13 BPF maps are accessed from user space via the      13 BPF maps are accessed from user space via the ``bpf`` syscall, which provides
 14 commands to create maps, lookup elements, upda !!  14 commands to create maps, lookup elements, update elements and delete
 15 More details of the BPF syscall are available  !!  15 elements. More details of the BPF syscall are available in
 16 `man-pages`_ for `bpf(2)`_.                    !!  16 :doc:`/userspace-api/ebpf/syscall` and in the `man-pages`_ for `bpf(2)`_.
 17                                                    17 
 18 Map Types                                          18 Map Types
 19 =========                                          19 =========
 20                                                    20 
 21 .. toctree::                                       21 .. toctree::
 22    :maxdepth: 1                                    22    :maxdepth: 1
 23    :glob:                                          23    :glob:
 24                                                    24 
 25    map_*                                           25    map_*
 26                                                    26 
 27 Usage Notes                                        27 Usage Notes
 28 ===========                                        28 ===========
 29                                                    29 
 30 .. c:function::                                    30 .. c:function::
 31    int bpf(int command, union bpf_attr *attr,      31    int bpf(int command, union bpf_attr *attr, u32 size)
 32                                                    32 
 33 Use the ``bpf()`` system call to perform the o     33 Use the ``bpf()`` system call to perform the operation specified by
 34 ``command``. The operation takes parameters pr     34 ``command``. The operation takes parameters provided in ``attr``. The ``size``
 35 argument is the size of the ``union bpf_attr``     35 argument is the size of the ``union bpf_attr`` in ``attr``.
 36                                                    36 
 37 **BPF_MAP_CREATE**                                 37 **BPF_MAP_CREATE**
 38                                                    38 
 39 Create a map with the desired type and attribu     39 Create a map with the desired type and attributes in ``attr``:
 40                                                    40 
 41 .. code-block:: c                                  41 .. code-block:: c
 42                                                    42 
 43     int fd;                                        43     int fd;
 44     union bpf_attr attr = {                        44     union bpf_attr attr = {
 45             .map_type = BPF_MAP_TYPE_ARRAY;  /     45             .map_type = BPF_MAP_TYPE_ARRAY;  /* mandatory */
 46             .key_size = sizeof(__u32);       /     46             .key_size = sizeof(__u32);       /* mandatory */
 47             .value_size = sizeof(__u32);     /     47             .value_size = sizeof(__u32);     /* mandatory */
 48             .max_entries = 256;              /     48             .max_entries = 256;              /* mandatory */
 49             .map_flags = BPF_F_MMAPABLE;           49             .map_flags = BPF_F_MMAPABLE;
 50             .map_name = "example_array";           50             .map_name = "example_array";
 51     };                                             51     };
 52                                                    52 
 53     fd = bpf(BPF_MAP_CREATE, &attr, sizeof(att     53     fd = bpf(BPF_MAP_CREATE, &attr, sizeof(attr));
 54                                                    54 
 55 Returns a process-local file descriptor on suc     55 Returns a process-local file descriptor on success, or negative error in case of
 56 failure. The map can be deleted by calling ``c     56 failure. The map can be deleted by calling ``close(fd)``. Maps held by open
 57 file descriptors will be deleted automatically     57 file descriptors will be deleted automatically when a process exits.
 58                                                    58 
 59 .. note:: Valid characters for ``map_name`` ar     59 .. note:: Valid characters for ``map_name`` are ``A-Z``, ``a-z``, ``0-9``,
 60    ``'_'`` and ``'.'``.                            60    ``'_'`` and ``'.'``.
 61                                                    61 
 62 **BPF_MAP_LOOKUP_ELEM**                            62 **BPF_MAP_LOOKUP_ELEM**
 63                                                    63 
 64 Lookup key in a given map using ``attr->map_fd     64 Lookup key in a given map using ``attr->map_fd``, ``attr->key``,
 65 ``attr->value``. Returns zero and stores found     65 ``attr->value``. Returns zero and stores found elem into ``attr->value`` on
 66 success, or negative error on failure.             66 success, or negative error on failure.
 67                                                    67 
 68 **BPF_MAP_UPDATE_ELEM**                            68 **BPF_MAP_UPDATE_ELEM**
 69                                                    69 
 70 Create or update key/value pair in a given map     70 Create or update key/value pair in a given map using ``attr->map_fd``, ``attr->key``,
 71 ``attr->value``. Returns zero on success or ne     71 ``attr->value``. Returns zero on success or negative error on failure.
 72                                                    72 
 73 **BPF_MAP_DELETE_ELEM**                            73 **BPF_MAP_DELETE_ELEM**
 74                                                    74 
 75 Find and delete element by key in a given map      75 Find and delete element by key in a given map using ``attr->map_fd``,
 76 ``attr->key``. Returns zero on success or nega     76 ``attr->key``. Returns zero on success or negative error on failure.
 77                                                    77 
 78 .. Links:                                          78 .. Links:
 79 .. _man-pages: https://www.kernel.org/doc/man-     79 .. _man-pages: https://www.kernel.org/doc/man-pages/
 80 .. _bpf(2): https://man7.org/linux/man-pages/m     80 .. _bpf(2): https://man7.org/linux/man-pages/man2/bpf.2.html
 81 .. _bpf-helpers(7): https://man7.org/linux/man     81 .. _bpf-helpers(7): https://man7.org/linux/man-pages/man7/bpf-helpers.7.html
 82 .. _ebpf-syscall: https://docs.kernel.org/user << 
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php