The following is a list of Pull request that will contain the included commits that were made for my GSoC application or my GSoC project which was a feature probe API in Go for cilium/ebpf. Some of the work I have submitted here was marked optional in my original proposal so I marked them accordingly in this gist.
- Obligatory for Application
- First PR on cilium/ebpf to improve docs for new contributors
- HaveMapType API
- cilium/ebpf#325 (needed refactoring)
func HaveMapType(mt ebpf.MapType) error
- HaveProgType API (Optional)
- Fixed CGROUP_SOCKOPT probe in
libbpf
- Github, Mailinglist
- During my work on BPF program type probes I discovered a bug in
libbpf
and submitted a patch to torvalds/linux
- HaveProgHelper API (Optional, Work in Progress)
PR and commit descriptions should give any additional information needed, and API functions and the new features
package are documented with godoc
in the code.
During my GSoC time I also reviewed two PRs from other contributors:
During the work I have contributed we had to create some issues to track work that had to be delayed and can be addressed separately from GSoC, by me or someone else, in the future:
- BTF support for feature probe API: Some probes for map and program types will require a BTF blob to be created.
- Close FDs explicitly
A couple things that were mentioned in my proposal that were not implemented:
- I originally planned to use the implemented APIs to replace some of the existing features probes that are implemented and used internally by cilium/ebpf. This would have required bigger and time intensive refactorings so we chose to go for additionaly proposed feature probe APIs (eBPF program types, helpers) that were marked as optional in my proposal.
- I also proposed using the new feature probe API in cilium/cilium to replace existing probing mechanisms that shell out to
bpftool
. Once the HaveProgHelper API is merged, this can be addressed. This was also marked optional in the original proposal.
I plan to keep contributing to cilium so this outstanding work is a great starting point for doing that.