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 >