aquasecurity / aquasecurity/libbpfgo

Implement libbpf bpf_object API

Open
#90 0 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_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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.