aquasecurity / aquasecurity/libbpfgo
Implement libbpf bpf_object API
- Dominant language
- Go
- Stars
- 850
- Forks
- 101
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 6
Description
We should expose all of the bpf_object api, just being careful about what is deprecated and/or discouraged when 1.0 is released. This would exclude the bpf_object__*skeleton apis since that's c userspace specific.
- [x] bpf_object__open_file
- [x] bpf_object__open_mem
- [ ] bpf_object__pin_maps
- [ ] bpf_object__unpin_maps
- [ ] bpf_object__pin_programs
- [ ] bpf_object__unpin_programs
- [ ] bpf_object__pin
- [ ] bpf_object__unpin
- [x] bpf_object__close
- [x] bpf_object__load
- [ ] bpf_object__name
- [ ] bpf_object__kversion
- [ ] bpf_object__set_kversion
- [ ] bpf_object__btf
- [x] bpf_object__btf_fd
- [ ] bpf_object__for_each_program
- [ ] bpf_object__next_program
- [ ] bpf_object__for_each_map
- [ ] bpf_object__next_map
- [x] bpf_object__find_program_by_name
- [x] bpf_object__find_map_by_name
- [ ] bpf_object__find_map_fd_by_name
- [ ] bpf_object__gen_loader
Low-level API:
- [ ] bpf_obj_get_info_by_fd
Contributor guide
Research direction
Start by reviewing the libbpf bpf_object API and the unchecked items in this issue. The payload names no repository files, entry points, or tests, so those must be located before implementation; done means exposing the appropriate non-skeleton APIs while handling deprecated or discouraged calls before 1.0.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, linux
- Domain
- api, operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100