Commit graph android_system_bpf/libbpf_android/Loader.cpp
Message SHA1
libbpf_android: bpf_prog_load no log success error
errno is left unchanged on successful calls to this function, so it is
confusing to log it in the success path.

Fixes: 146171927
Test: looking at logs
Change-Id: Ia424dd865bd518d8c533e99fb1a64b02bc92e759

Steven Moreland   commited 2019-12-12 17:24:00 -08:00
804bca0d66
bpfloader: use unique_fd
Using unique_fd to ensure we release bpf prog fds when they are no
longer needed.

Change-Id: I9d5c2673c7e1bdf05052771e06ac78cec21957ec
Merged-In: I9d5c2673c7e1bdf05052771e06ac78cec21957ec
Signed-off-by: Connor O'Brien <connoro@google.com>
(cherry picked from commit 206dd3381e)

Connor O'Brien   authored and   Maciej Żenczykowski   commited 2019-11-13 21:58:28 -08:00
8d49fc7434
libbpf: Add errno string to loader debug messages
The return of bpf_prog_load() library call is insufficient, we also need
errno to know what the bpf(2) syscall did.

Bug: 143236645

Change-Id: Id2c543fdb63b1e077278a8b1ede03a21afad74dc
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>

Joel Fernandes (Google)   authored and   Joel Fernandes   commited 2019-11-08 16:51:11 -05:00
88eef6ad55
Fix compiler warnings.
Changed finds that use a string with a single character ("X"), to 'X'.

Remove using statements from header file.

Add a couple of missing includes.

Changed a couple of functions that take a string to const string& to
avoid extra copies.

Test: No warnings when compiled, unit tests pass.
Change-Id: I218ee0e6b6c7fb1c79d1337c1ce3d6f1e318a3cd

Christopher Ferris   commited 2019-02-01 15:48:19 -08:00
c151c67412
Add cgroup socket bpf kernel program support
Add support for cgroup socket filter program loading in bpfloader,
and create a uid permission map to store the uids that have INTERNET
permission.

Bug: 111560570
Bug: 111560739
Test: dumpsys netd trafficcontroller

Change-Id: I658f533d302cb594d7b36d4a3a2a70e394874c33

Chenbo Feng   commited 2019-01-28 15:21:59 -08:00
5aee2f14a5
bpf loader - add support for new schedcls type
which maps to BPF_PROG_TYPE_SCHED_CLS

Bug: 65674744
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I7ca5912756c575e2c0667b9dae2d24471845e028

Maciej Żenczykowski   commited 2019-01-24 23:16:10 -08:00
ffa7aadf75
Initial checkin for relocatable ELF loader and link with bcc
* Wrote a relocatable ELF loader from scratch. The loader library loads
all objects in /system/etc/bpf/, parses and fixes up eBPF instructions
based on relocation information, creates maps and programs and pins
them. A single API call without arguments is made which results in this
operation. The API has all the information it needs from the filesystem
and the ELF objects, so there is no configuration stored in the code
calling the loader API essentially making it zero conf. Initially this
will be used by time_in_state statistics collection using tracepoints.
In the future, netd's eBPF C code should be rewritten to use this
infrastructure and the old ELF loader can be gotten rid off. This is the
first step.

* Link libbpf with libbpf_android which will come from the external/ bcc
project. This will be used for tracepoint and perf eBPF support. In the
future it can be used for other things as kernel eBPF support advances.

This patch will be merged only after bcc is cloned into external/ to
prevent build breakage.

Bug: 112334572
Change-Id: Ic0fd9504e18031132d40bb627c5e44058d59c9f8
Signed-off-by: Joel Fernandes <joelaf@google.com>

Joel Fernandes   commited 2018-12-17 22:27:56 +00:00
d76a2004a6