diff options
| author | Daniel Borkmann <daniel@iogearbox.net> | 2023-07-19 16:08:54 +0200 | 
|---|---|---|
| committer | Alexei Starovoitov <ast@kernel.org> | 2023-07-19 10:07:28 -0700 | 
| commit | 55cc3768473e139483be8f17796b50d21788953f (patch) | |
| tree | b74fd6fe26ae9fa621a03d2e55eb08fc114dfeb3 /tools/lib/bpf/libbpf.h | |
| parent | fe20ce3a512649b7f883e15dfc01eb29bfcf2168 (diff) | |
libbpf: Add link-based API for tcx
Implement tcx BPF link support for libbpf.
The bpf_program__attach_fd() API has been refactored slightly in order to pass
bpf_link_create_opts pointer as input.
A new bpf_program__attach_tcx() has been added on top of this which allows for
passing all relevant data via extensible struct bpf_tcx_opts.
The program sections tcx/ingress and tcx/egress correspond to the hook locations
for tc ingress and egress, respectively.
For concrete usage examples, see the extensive selftests that have been
developed as part of this series.
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20230719140858.13224-5-daniel@iogearbox.net
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'tools/lib/bpf/libbpf.h')
| -rw-r--r-- | tools/lib/bpf/libbpf.h | 15 | 
1 files changed, 15 insertions, 0 deletions
| diff --git a/tools/lib/bpf/libbpf.h b/tools/lib/bpf/libbpf.h index 674e5788eb10..55b97b208754 100644 --- a/tools/lib/bpf/libbpf.h +++ b/tools/lib/bpf/libbpf.h @@ -733,6 +733,21 @@ LIBBPF_API struct bpf_link *  bpf_program__attach_netfilter(const struct bpf_program *prog,  			      const struct bpf_netfilter_opts *opts); +struct bpf_tcx_opts { +	/* size of this struct, for forward/backward compatibility */ +	size_t sz; +	__u32 flags; +	__u32 relative_fd; +	__u32 relative_id; +	__u64 expected_revision; +	size_t :0; +}; +#define bpf_tcx_opts__last_field expected_revision + +LIBBPF_API struct bpf_link * +bpf_program__attach_tcx(const struct bpf_program *prog, int ifindex, +			const struct bpf_tcx_opts *opts); +  struct bpf_map;  LIBBPF_API struct bpf_link *bpf_map__attach_struct_ops(const struct bpf_map *map); | 
