aquasecurity / aquasecurity/libbpfgo

Implement libbpf bpf_program API

Open
#91 4 comments 0 reactions 0 assignees View on GitHub
libbpf-1.0-prep libbpf-api-implementation
Dominant language
Go
Stars
850
Forks
101
Avg merge
1d 12h
Merged PRs (30d)
6

Description

We should expose all of the bpf_program api, just being careful about what is deprecated and/or discouraged when 1.0 is released.

- [ ] bpf_program__set_ifindex
- [ ] bpf_program__name
- [ ] bpf_program__section_name
- [ ] bpf_program__autoload
- [x] bpf_program__set_autoload
- [x] bpf_program__fd
- [x] bpf_program__pin
- [x] bpf_program__unpin
- [ ] bpf_program__unload
- [x] bpf_program__attach
- [x] bpf_program__attach_perf_event
- [ ] bpf_program__attach_perf_event_opts
- [x] bpf_program__attach_kprobe
- [ ] bpf_program__attach_kprobe_opts
- [x] bpf_program__attach_uprobe
- [ ] bpf_program__attach_uprobe_opts
- [x] bpf_program__attach_tracepoint
- [ ] bpf_program__attach_tracepoint_opts
- [x] bpf_program__attach_raw_tracepoint
- [ ] bpf_program__attach_trace
- [ ] bpf_program__attach_trace_opts
- [x] bpf_program__attach_lsm
- [x] bpf_program__attach_cgroup
- [x] bpf_program__attach_netns
- [x] bpf_program__attach_xdp
- [ ] bpf_program__attach_freplace
- [x] bpf_program__attach_iter
- [x] bpf_program__type
- [x] bpf_program__set_type
- [ ] bpf_program__expected_attach_type
- [x] bpf_program__set_expected_attach_type
- [x] bpf_program__set_attach_target

Low-level API:

- [ ] bpf_prog_get_info_by_fd

Contributor guide

Open the contributing guide

Research direction

Start by reading the existing bpf_program bindings and comparing the unchecked entries in the API checklist with the corresponding libbpf API, including bpf_prog_get_info_by_fd. Determine which deprecated or discouraged functions should be exposed before 1.0; done means the supported remaining APIs are available with the existing bindings’ conventions.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, linux
Domain
api, operating-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.