Message ID | 20221122103738.65980-3-mtahhan@redhat.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | BPF |
Headers | show |
Series | docs: fix sphinx warnings for cpu+dev maps | expand |
On Tue, Nov 22, 2022 at 10:37:38AM +0000, mtahhan@redhat.com wrote: > From: Maryam Tahhan <mtahhan@redhat.com> > > Sphinx version >=3.3 warns about duplicate function delcarations in the s/delcarations/declarations > DEVMAP documentation. This is because the function name is the same for > Kernel and Userspace BPF progs but the parameters and return types > they take is what differs. This patch moves from using the ``c:function::`` > directive to using the ``code-block:: c`` directive. The patches also fix > the indentation for the text associated with the "new" code block delcarations. s/delcarations/declarations > > Signed-off-by: Maryam Tahhan <mtahhan@redhat.com> Acked-by: David Vernet <void@manifault.com> Optionally while you're here as well, thoughout the doc: s/Userspace/User space > --- > Documentation/bpf/map_devmap.rst | 64 ++++++++++++++++++++------------ > 1 file changed, 40 insertions(+), 24 deletions(-) > > diff --git a/Documentation/bpf/map_devmap.rst b/Documentation/bpf/map_devmap.rst > index f64da348dbfe..cdb7c484c425 100644 > --- a/Documentation/bpf/map_devmap.rst > +++ b/Documentation/bpf/map_devmap.rst > @@ -29,8 +29,11 @@ Usage > ===== > Kernel BPF > ---------- > -.. c:function:: > - long bpf_redirect_map(struct bpf_map *map, u32 key, u64 flags) > +bpf_redirect_map() > +^^^^^^^^^^^^^^^^^^ > +.. code-block:: c > + > + long bpf_redirect_map(struct bpf_map *map, u32 key, u64 flags) > > Redirect the packet to the endpoint referenced by ``map`` at index ``key``. > For ``BPF_MAP_TYPE_DEVMAP`` and ``BPF_MAP_TYPE_DEVMAP_HASH`` this map contains > @@ -56,7 +59,10 @@ lower bits of the ``flags`` argument if the map lookup fails. > > More information about redirection can be found :doc:`redirect` > > -.. c:function:: > +bpf_map_lookup_elem() > +^^^^^^^^^^^^^^^^^^^^^ > +.. code-block:: c > + > void *bpf_map_lookup_elem(struct bpf_map *map, const void *key) > > Net device entries can be retrieved using the ``bpf_map_lookup_elem()`` > @@ -69,13 +75,16 @@ Userspace > from an eBPF program. Trying to call these functions from a kernel eBPF > program will result in the program failing to load and a verifier warning. > > -.. c:function:: > +bpf_map_update_elem() > +^^^^^^^^^^^^^^^^^^^^^ > +.. code-block:: c > + > int bpf_map_update_elem(int fd, const void *key, const void *value, __u64 flags); > > - Net device entries can be added or updated using the ``bpf_map_update_elem()`` > - helper. This helper replaces existing elements atomically. The ``value`` parameter > - can be ``struct bpf_devmap_val`` or a simple ``int ifindex`` for backwards > - compatibility. > +Net device entries can be added or updated using the ``bpf_map_update_elem()`` > +helper. This helper replaces existing elements atomically. The ``value`` parameter > +can be ``struct bpf_devmap_val`` or a simple ``int ifindex`` for backwards > +compatibility. > > .. code-block:: c > > @@ -87,35 +96,42 @@ Userspace > } bpf_prog; > }; > > - The ``flags`` argument can be one of the following: > - > +The ``flags`` argument can be one of the following: > - ``BPF_ANY``: Create a new element or update an existing element. > - ``BPF_NOEXIST``: Create a new element only if it did not exist. > - ``BPF_EXIST``: Update an existing element. > > - DEVMAPs can associate a program with a device entry by adding a ``bpf_prog.fd`` > - to ``struct bpf_devmap_val``. Programs are run after ``XDP_REDIRECT`` and have > - access to both Rx device and Tx device. The program associated with the ``fd`` > - must have type XDP with expected attach type ``xdp_devmap``. > - When a program is associated with a device index, the program is run on an > - ``XDP_REDIRECT`` and before the buffer is added to the per-cpu queue. Examples > - of how to attach/use xdp_devmap progs can be found in the kernel selftests: > +DEVMAPs can associate a program with a device entry by adding a ``bpf_prog.fd`` > +to ``struct bpf_devmap_val``. Programs are run after ``XDP_REDIRECT`` and have > +access to both Rx device and Tx device. The program associated with the ``fd`` > +must have type XDP with expected attach type ``xdp_devmap``. > +When a program is associated with a device index, the program is run on an > +``XDP_REDIRECT`` and before the buffer is added to the per-cpu queue. Examples > +of how to attach/use xdp_devmap progs can be found in the kernel selftests: > > - - ``tools/testing/selftests/bpf/prog_tests/xdp_devmap_attach.c`` > - - ``tools/testing/selftests/bpf/progs/test_xdp_with_devmap_helpers.c`` > +- ``tools/testing/selftests/bpf/prog_tests/xdp_devmap_attach.c`` > +- ``tools/testing/selftests/bpf/progs/test_xdp_with_devmap_helpers.c`` > + > +bpf_map_lookup_elem() > +^^^^^^^^^^^^^^^^^^^^^ > +.. code-block:: c > > .. c:function:: > int bpf_map_lookup_elem(int fd, const void *key, void *value); > > - Net device entries can be retrieved using the ``bpf_map_lookup_elem()`` > - helper. > +Net device entries can be retrieved using the ``bpf_map_lookup_elem()`` > +helper. > + > +bpf_map_delete_elem() > +^^^^^^^^^^^^^^^^^^^^^ > +.. code-block:: c > > .. c:function:: > int bpf_map_delete_elem(int fd, const void *key); > > - Net device entries can be deleted using the ``bpf_map_delete_elem()`` > - helper. This helper will return 0 on success, or negative error in case of > - failure. > +Net device entries can be deleted using the ``bpf_map_delete_elem()`` > +helper. This helper will return 0 on success, or negative error in case of > +failure. > > Examples > ======== > -- > 2.34.1 >
diff --git a/Documentation/bpf/map_devmap.rst b/Documentation/bpf/map_devmap.rst index f64da348dbfe..cdb7c484c425 100644 --- a/Documentation/bpf/map_devmap.rst +++ b/Documentation/bpf/map_devmap.rst @@ -29,8 +29,11 @@ Usage ===== Kernel BPF ---------- -.. c:function:: - long bpf_redirect_map(struct bpf_map *map, u32 key, u64 flags) +bpf_redirect_map() +^^^^^^^^^^^^^^^^^^ +.. code-block:: c + + long bpf_redirect_map(struct bpf_map *map, u32 key, u64 flags) Redirect the packet to the endpoint referenced by ``map`` at index ``key``. For ``BPF_MAP_TYPE_DEVMAP`` and ``BPF_MAP_TYPE_DEVMAP_HASH`` this map contains @@ -56,7 +59,10 @@ lower bits of the ``flags`` argument if the map lookup fails. More information about redirection can be found :doc:`redirect` -.. c:function:: +bpf_map_lookup_elem() +^^^^^^^^^^^^^^^^^^^^^ +.. code-block:: c + void *bpf_map_lookup_elem(struct bpf_map *map, const void *key) Net device entries can be retrieved using the ``bpf_map_lookup_elem()`` @@ -69,13 +75,16 @@ Userspace from an eBPF program. Trying to call these functions from a kernel eBPF program will result in the program failing to load and a verifier warning. -.. c:function:: +bpf_map_update_elem() +^^^^^^^^^^^^^^^^^^^^^ +.. code-block:: c + int bpf_map_update_elem(int fd, const void *key, const void *value, __u64 flags); - Net device entries can be added or updated using the ``bpf_map_update_elem()`` - helper. This helper replaces existing elements atomically. The ``value`` parameter - can be ``struct bpf_devmap_val`` or a simple ``int ifindex`` for backwards - compatibility. +Net device entries can be added or updated using the ``bpf_map_update_elem()`` +helper. This helper replaces existing elements atomically. The ``value`` parameter +can be ``struct bpf_devmap_val`` or a simple ``int ifindex`` for backwards +compatibility. .. code-block:: c @@ -87,35 +96,42 @@ Userspace } bpf_prog; }; - The ``flags`` argument can be one of the following: - +The ``flags`` argument can be one of the following: - ``BPF_ANY``: Create a new element or update an existing element. - ``BPF_NOEXIST``: Create a new element only if it did not exist. - ``BPF_EXIST``: Update an existing element. - DEVMAPs can associate a program with a device entry by adding a ``bpf_prog.fd`` - to ``struct bpf_devmap_val``. Programs are run after ``XDP_REDIRECT`` and have - access to both Rx device and Tx device. The program associated with the ``fd`` - must have type XDP with expected attach type ``xdp_devmap``. - When a program is associated with a device index, the program is run on an - ``XDP_REDIRECT`` and before the buffer is added to the per-cpu queue. Examples - of how to attach/use xdp_devmap progs can be found in the kernel selftests: +DEVMAPs can associate a program with a device entry by adding a ``bpf_prog.fd`` +to ``struct bpf_devmap_val``. Programs are run after ``XDP_REDIRECT`` and have +access to both Rx device and Tx device. The program associated with the ``fd`` +must have type XDP with expected attach type ``xdp_devmap``. +When a program is associated with a device index, the program is run on an +``XDP_REDIRECT`` and before the buffer is added to the per-cpu queue. Examples +of how to attach/use xdp_devmap progs can be found in the kernel selftests: - - ``tools/testing/selftests/bpf/prog_tests/xdp_devmap_attach.c`` - - ``tools/testing/selftests/bpf/progs/test_xdp_with_devmap_helpers.c`` +- ``tools/testing/selftests/bpf/prog_tests/xdp_devmap_attach.c`` +- ``tools/testing/selftests/bpf/progs/test_xdp_with_devmap_helpers.c`` + +bpf_map_lookup_elem() +^^^^^^^^^^^^^^^^^^^^^ +.. code-block:: c .. c:function:: int bpf_map_lookup_elem(int fd, const void *key, void *value); - Net device entries can be retrieved using the ``bpf_map_lookup_elem()`` - helper. +Net device entries can be retrieved using the ``bpf_map_lookup_elem()`` +helper. + +bpf_map_delete_elem() +^^^^^^^^^^^^^^^^^^^^^ +.. code-block:: c .. c:function:: int bpf_map_delete_elem(int fd, const void *key); - Net device entries can be deleted using the ``bpf_map_delete_elem()`` - helper. This helper will return 0 on success, or negative error in case of - failure. +Net device entries can be deleted using the ``bpf_map_delete_elem()`` +helper. This helper will return 0 on success, or negative error in case of +failure. Examples ========