Re: [PATCH bpf-next v1] docs/bpf: Add missing BPF program types to docs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Sep 11, 2024 at 7:59 AM Donald Hunter <donald.hunter@xxxxxxxxx> wrote:
>
> Update the table of program types in the libbpf documentation with the
> recently added program types.
>
> Signed-off-by: Donald Hunter <donald.hunter@xxxxxxxxx>
> ---
>  Documentation/bpf/libbpf/program_types.rst | 29 +++++++++++++++++++---
>  1 file changed, 25 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/bpf/libbpf/program_types.rst b/Documentation/bpf/libbpf/program_types.rst
> index 63bb88846e50..fa80a82d5681 100644
> --- a/Documentation/bpf/libbpf/program_types.rst
> +++ b/Documentation/bpf/libbpf/program_types.rst
> @@ -121,6 +121,8 @@ described in more detail in the footnotes.
>  +-------------------------------------------+----------------------------------------+----------------------------------+-----------+
>  | ``BPF_PROG_TYPE_LWT_XMIT``                |                                        | ``lwt_xmit``                     |           |
>  +-------------------------------------------+----------------------------------------+----------------------------------+-----------+
> +| ``BPF_PROG_TYPE_NETFILTER``               |                                        | ``netfilter``                    |           |
> ++-------------------------------------------+----------------------------------------+----------------------------------+-----------+
>  | ``BPF_PROG_TYPE_PERF_EVENT``              |                                        | ``perf_event``                   |           |
>  +-------------------------------------------+----------------------------------------+----------------------------------+-----------+
>  | ``BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE`` |                                        | ``raw_tp.w+`` [#rawtp]_          |           |
> @@ -131,11 +133,23 @@ described in more detail in the footnotes.
>  +                                           +                                        +----------------------------------+-----------+
>  |                                           |                                        | ``raw_tracepoint+``              |           |
>  +-------------------------------------------+----------------------------------------+----------------------------------+-----------+
> -| ``BPF_PROG_TYPE_SCHED_ACT``               |                                        | ``action``                       |           |
> +| ``BPF_PROG_TYPE_SCHED_ACT``               |                                        | ``action`` [#tc_legacy]_         |           |
>  +-------------------------------------------+----------------------------------------+----------------------------------+-----------+
> -| ``BPF_PROG_TYPE_SCHED_CLS``               |                                        | ``classifier``                   |           |
> +| ``BPF_PROG_TYPE_SCHED_CLS``               |                                        | ``classifier`` [#tc_legacy]_     |           |
>  +                                           +                                        +----------------------------------+-----------+
> -|                                           |                                        | ``tc``                           |           |
> +|                                           |                                        | ``tc`` [#tc_legacy]_             |           |
> ++                                           +----------------------------------------+----------------------------------+-----------+
> +|                                           | ``BPF_NETKIT_PRIMARY``                 | ``netkit/primary``               |           |
> ++                                           +----------------------------------------+----------------------------------+-----------+
> +|                                           | ``BPF_NETKIT_PEER``                    | ``netkit/peer``                  |           |
> ++                                           +----------------------------------------+----------------------------------+-----------+
> +|                                           | ``BPF_TCX_INGRESS``                    | ``tc/ingress``                   |           |
> ++                                           +----------------------------------------+----------------------------------+-----------+
> +|                                           | ``BPF_TCX_EGRESS``                     | ``tc/egress``                    |           |
> ++                                           +----------------------------------------+----------------------------------+-----------+
> +|                                           | ``BPF_TCX_INGRESS``                    | ``tcx/ingress``                  |           |
> ++                                           +----------------------------------------+----------------------------------+-----------+
> +|                                           | ``BPF_TCX_EGRESS``                     | ``tcx/egress``                   |           |
>  +-------------------------------------------+----------------------------------------+----------------------------------+-----------+
>  | ``BPF_PROG_TYPE_SK_LOOKUP``               | ``BPF_SK_LOOKUP``                      | ``sk_lookup``                    |           |
>  +-------------------------------------------+----------------------------------------+----------------------------------+-----------+
> @@ -155,7 +169,9 @@ described in more detail in the footnotes.
>  +-------------------------------------------+----------------------------------------+----------------------------------+-----------+
>  | ``BPF_PROG_TYPE_SOCK_OPS``                | ``BPF_CGROUP_SOCK_OPS``                | ``sockops``                      |           |
>  +-------------------------------------------+----------------------------------------+----------------------------------+-----------+
> -| ``BPF_PROG_TYPE_STRUCT_OPS``              |                                        | ``struct_ops+``                  |           |
> +| ``BPF_PROG_TYPE_STRUCT_OPS``              |                                        | ``struct_ops+`` [#struct_ops]_   |           |
> ++                                           +                                        +----------------------------------+-----------+
> +|                                           |                                        | ``struct_ops.s+`` [#struct_ops]_ | Yes       |
>  +-------------------------------------------+----------------------------------------+----------------------------------+-----------+
>  | ``BPF_PROG_TYPE_SYSCALL``                 |                                        | ``syscall``                      | Yes       |
>  +-------------------------------------------+----------------------------------------+----------------------------------+-----------+
> @@ -209,5 +225,10 @@ described in more detail in the footnotes.
>                ``a-zA-Z0-9_.*?``.
>  .. [#lsm] The ``lsm`` attachment format is ``lsm[.s]/<hook>``.
>  .. [#rawtp] The ``raw_tp`` attach format is ``raw_tracepoint[.w]/<tracepoint>``.
> +.. [#tc_legacy] The ``tc``, ``classifier`` and ``action`` attach types are deprecated, use
> +                ``tcx/*`` instead.
> +.. [#struct_ops] The ``struct_ops`` attach format is ``struct_ops[.s]/<name>``, but name appears
> +                 to be ignored. The attachments are defined in a struct initializer that is
> +                 tagged with ``SEC(".struct_ops[.link]")``.

libbpf will happily accept just SEC("struct_ops"). So it would be more
correct to say that "struct_ops[.s]/<name>" is accepted, but name is
ignored. But other than that, just SEC("struct_ops") probably makes
most sense.

pw-bot: cr

>  .. [#tp] The ``tracepoint`` attach format is ``tracepoint/<category>/<name>``.
>  .. [#iter] The ``iter`` attach format is ``iter[.s]/<struct-name>``.
> --
> 2.45.2
>





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux