On Wed, Apr 3, 2024 at 7:53 PM Yonghong Song <yonghong.song@xxxxxxxxx> wrote: > > Introduce a libbpf API function bpf_program__attach_sockmap() > which allow user to get a bpf_link for their corresponding programs. > > Acked-by: Eduard Zingerman <eddyz87@xxxxxxxxx> > Signed-off-by: Yonghong Song <yonghong.song@xxxxxxxxx> > --- > tools/lib/bpf/libbpf.c | 7 +++++++ > tools/lib/bpf/libbpf.h | 2 ++ > tools/lib/bpf/libbpf.map | 6 ++++++ > tools/lib/bpf/libbpf_version.h | 2 +- > 4 files changed, 16 insertions(+), 1 deletion(-) > > diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c > index b091154bc5b5..97eb6e5dd7c8 100644 > --- a/tools/lib/bpf/libbpf.c > +++ b/tools/lib/bpf/libbpf.c > @@ -149,6 +149,7 @@ static const char * const link_type_name[] = { > [BPF_LINK_TYPE_TCX] = "tcx", > [BPF_LINK_TYPE_UPROBE_MULTI] = "uprobe_multi", > [BPF_LINK_TYPE_NETKIT] = "netkit", > + [BPF_LINK_TYPE_SOCKMAP] = "sockmap", > }; > > static const char * const map_type_name[] = { > @@ -12533,6 +12534,12 @@ bpf_program__attach_netns(const struct bpf_program *prog, int netns_fd) > return bpf_program_attach_fd(prog, netns_fd, "netns", NULL); > } > > +struct bpf_link * > +bpf_program__attach_sockmap(const struct bpf_program *prog, int map_fd) > +{ > + return bpf_program_attach_fd(prog, map_fd, "sockmap", NULL); > +} > + > struct bpf_link *bpf_program__attach_xdp(const struct bpf_program *prog, int ifindex) > { > /* target_fd/target_ifindex use the same field in LINK_CREATE */ > diff --git a/tools/lib/bpf/libbpf.h b/tools/lib/bpf/libbpf.h > index f88ab50c0229..4c7ada03bf4f 100644 > --- a/tools/lib/bpf/libbpf.h > +++ b/tools/lib/bpf/libbpf.h > @@ -795,6 +795,8 @@ bpf_program__attach_cgroup(const struct bpf_program *prog, int cgroup_fd); > LIBBPF_API struct bpf_link * > bpf_program__attach_netns(const struct bpf_program *prog, int netns_fd); > LIBBPF_API struct bpf_link * > +bpf_program__attach_sockmap(const struct bpf_program *prog, int map_fd); > +LIBBPF_API struct bpf_link * > bpf_program__attach_xdp(const struct bpf_program *prog, int ifindex); > LIBBPF_API struct bpf_link * > bpf_program__attach_freplace(const struct bpf_program *prog, > diff --git a/tools/lib/bpf/libbpf.map b/tools/lib/bpf/libbpf.map > index 51732ecb1385..015737439007 100644 > --- a/tools/lib/bpf/libbpf.map > +++ b/tools/lib/bpf/libbpf.map > @@ -411,8 +411,14 @@ LIBBPF_1.3.0 { > LIBBPF_1.4.0 { > global: > bpf_program__attach_raw_tracepoint_opts; > + bpf_program__attach_sockmap; leftover from the previous revision? please remove with that: Acked-by: Andrii Nakryiko <andrii@xxxxxxxxxx> > bpf_raw_tracepoint_open_opts; > bpf_token_create; > btf__new_split; > btf_ext__raw_data; > } LIBBPF_1.3.0; > + > +LIBBPF_1.5.0 { > + global: > + bpf_program__attach_sockmap; > +} LIBBPF_1.4.0; > diff --git a/tools/lib/bpf/libbpf_version.h b/tools/lib/bpf/libbpf_version.h > index e783a47da815..d6e5eff967cb 100644 > --- a/tools/lib/bpf/libbpf_version.h > +++ b/tools/lib/bpf/libbpf_version.h > @@ -4,6 +4,6 @@ > #define __LIBBPF_VERSION_H > > #define LIBBPF_MAJOR_VERSION 1 > -#define LIBBPF_MINOR_VERSION 4 > +#define LIBBPF_MINOR_VERSION 5 > > #endif /* __LIBBPF_VERSION_H */ > -- > 2.43.0 >