On Mon, Mar 25, 2024 at 7:22 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. > > 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 | 1 + > 3 files changed, 10 insertions(+) > > diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c > index 8eb2cd4ef288..e1bb9ba3d1a5 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[] = { > @@ -12507,6 +12508,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..2e5c3429b974 100644 > --- a/tools/lib/bpf/libbpf.map > +++ b/tools/lib/bpf/libbpf.map > @@ -411,6 +411,7 @@ LIBBPF_1.3.0 { > LIBBPF_1.4.0 { > global: > bpf_program__attach_raw_tracepoint_opts; > + bpf_program__attach_sockmap; we are now in 1.5 development cycle, for next revision please put it into a new section > bpf_raw_tracepoint_open_opts; > bpf_token_create; > btf__new_split; > -- > 2.43.0 >