bpf: support for mmapable bpf map array (5.10+)
...
automatically fall back for older kernels
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ice377331442f71fa69f086a3be8a8c10cbc6575f
Maciej Żenczykowski
commited 2025-08-07 15:53:42 -07:00
ede2d5fe39
bpf: put canonicalized section name in bpf_prog_def
...
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I8bc5c888f982dc872ac68840ae6c136a798384d9
Maciej Żenczykowski
commited 2025-08-05 12:14:24 -07:00
adb0f9e2a4
NetBpfLoad: remove spurious explicit pin location from pinProg()
...
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I17432e1495e776afd33df63037c092dc544e36e2
Maciej Żenczykowski
commited 2025-08-04 18:06:05 -07:00
283689d321
bpf: switch progs from using 'pin_prefix' to 'pin_location'
...
Note: I discovered that C considers:
char s[4] = "abcd";
a valid initialization without a terminating NULL, resulting
in an invalid string.
(Specifically pinned programs had a '\1' as their last char
due to little endian encoding of the next field in the array
of prog def structs)
The simplest workaround appears to be to explicitly add a "\0"
That results in a string/array that ends with 2 NULLs,
and the compiler will at most *strip* the final one.
ie.
char s[4] = "abcd\0";
fails to compile.
Obviously:
char s[100] = "abcd\0";
also does the right thing, since it 0-pads with or without the extra null.
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Iaeb8db2cd4750f8521a971382b9f9f9f216195b2
Maciej Żenczykowski
commited 2025-08-04 18:02:51 -07:00
0be5b17e61
NetBpfLoad: remove parsing of "foo/" prefixes
...
in favour of just using the info from the prog definition
which was calculated at compilation time.
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I7542726b4c671177b30f79e90361b2dffdb38ac2
Maciej Żenczykowski
commited 2025-08-04 15:09:29 -07:00
371079226d
bpf: rename 'progs' section to '.android_progs'
...
(this matches what we did for maps)
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I2d75fb519f00471a6f1e6b0ffded9f327ecae7b4
Maciej Żenczykowski
commited 2025-08-04 15:07:05 -07:00
eb55711799
NetBpfLoad: remove spurious BPF_FS_PATH
...
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ia2b748bd7b4712505af0e6a33822517b5cceb06f
Maciej Żenczykowski
commited 2025-08-04 15:07:05 -07:00
94f38014ff
NetBpfLoad: loadAllObjects - introduce libbpf bool
...
(for ease of testing non-libbpf code path)
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I98927b328753914359136ae3f4a723f42256d0a0
Maciej Żenczykowski
commited 2025-08-04 14:08:56 -07:00
9c0cd85f66
NetBpfLoad: make loadObject() return bool
...
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ie996de3fba55f8ddfdc46d20161a87ad9194bf73
Maciej Żenczykowski
commited 2025-08-04 14:08:56 -07:00
0e53637637
NetBpfLoad: remove comments in loadAllObjects()
...
This is already documented at:
//packages/modules/Connectivity/bpf/progs/include/bpf_helpers.h
which is the more logical location, since we're trying
to merge all the .o's into 1 per kernel version.
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ibda074ccbbf6efdf36dffd481d953ef38b421637
Maciej Żenczykowski
commited 2025-08-04 14:08:46 -07:00
575c67e61e
NetBpfLoad: make loadAllObjects() return a bool
...
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I7c89482e9a567f5f6587508b77f398d6e9873d27
Maciej Żenczykowski
commited 2025-08-04 14:08:30 -07:00
e4a5161d63
NetBpfLoad: make loadObject take a fully specified .o path
...
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I718e6eaa2527d246edcc3265420bbfaf72191df1
Maciej Żenczykowski
commited 2025-08-04 14:08:30 -07:00
c4f8517a7f
bpf_prog_def: populate program type and attach_type automatically
...
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I27461c7930b744202a9c23f8aba6bd47c00a8d06
Maciej Żenczykowski
commited 2025-08-04 13:02:06 -07:00
498c983f35
NetBpfLoad: make 2 slashes abort
...
This cannot happen (it's a .c misconfig if it does)
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I5d82c7bb8c0214f5ffcc0ce391daddb9fe6a3295
Maciej Żenczykowski
commited 2025-08-04 13:02:06 -07:00
806087d4a1
NetBpfLoad: introduce ElfObject struct (class)
...
(prep work for improving loader performance)
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: If62b1de1020b89a28e06cad45153281e2ffcd6e0
Maciej Żenczykowski
commited 2025-08-01 14:53:31 -07:00
6e910b728d
NetBpfLoad: move getSymNameByIdx() & getSymOffsetByName() up
...
so that elf object related functions are next to each other
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I159e4e7ad96e3764206546f9f8c69ff156bcf790
Maciej Żenczykowski
commited 2025-08-01 14:53:27 -07:00
ce6cb1dacf
NetBpfLoad: make writeFile() return bool
...
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I8a86efdca9140d6f50ebd7ed507897fda20e952c
Maciej Żenczykowski
commited 2025-08-01 14:53:22 -07:00
f1ac608fb0
NetBpfLoad: simplify createDir()
...
We go to a lot of trouble to return error codes, but
we never actually care about anything besides pass/fail.
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I8c0552246f1050813cca372a280b2302c701d617
Maciej Żenczykowski
commited 2025-08-01 14:53:18 -07:00
164488de05
NetBpfLoad: make doLoad() and thus main() return diff error codes
...
Sometimes *all* we see is the return code of the binary printed
out by init when we terminate with failure. Unique codes will
make debugging easier.
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Icc93813674af2855b2d9f378a1accac48b403aa3
Maciej Żenczykowski
commited 2025-08-01 14:53:06 -07:00
49a6fbbe60
NetBpfLoad: inline getSectionType - avoids double loop
...
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I66d9d786e27d382b14b8744a9ceafb6a791adfd4
Maciej Żenczykowski
commited 2025-07-31 18:17:40 -07:00
c22a0990a6
NetBpfLoad: remove unused readSectionUint()
...
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I88de4f7d17f3eb28c320a3883638633a2a80f93c
Maciej Żenczykowski
commited 2025-07-31 17:52:57 -07:00
a0baa2ea27
NetBpfLoad: pass md to applyMapRelo() - no longer need readMapNames() function
...
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I13315fce03b8287a32456ffa7b5a102fd41fd28d
Maciej Żenczykowski
commited 2025-07-31 17:47:45 -07:00
2493cf4eb6
NetBpfLoad: loadProgByLibbpf() does not need to readMapNames()
...
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I08d5ed71147e756c0d1455ce3fece92d29f2eae5
Maciej Żenczykowski
commited 2025-07-31 17:20:15 -07:00
d4de391686
NetBpfLoad: make createMaps() take md map array instead of reading it
...
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I08105db30bf237a98126b4a5cb506298173738bf
Maciej Żenczykowski
commited 2025-07-31 17:20:07 -07:00
e9d0e250cf
NetBpfLoad: prepareLoadMaps() doesn't need mapNames
...
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I0a8f73fc8104dbe1af44395993b634c18fc3b595
Maciej Żenczykowski
commited 2025-07-31 17:19:59 -07:00
3f44c16a15
NetBpfLoad: pinMaps() doesn't need mapNames
...
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I87414ecd4acbf83af5b20ddb8c0e540e00ee1f59
Maciej Żenczykowski
commited 2025-07-31 17:19:50 -07:00
cc15e7a903
NetBpfLoad: createMaps() no longer needs to call readMapNames()
...
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ib2895173722006605547bf9b8aebc368b9540184
Maciej Żenczykowski
commited 2025-07-31 17:19:42 -07:00
0021923e6d
NetBpfLoad: mapMatchesExpectations() doesn't need map name any more
...
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I5a0f11432dad9f92e123c444cb3b4b5d5b1b0e4a
Maciej Żenczykowski
commited 2025-07-31 17:19:31 -07:00
7ff1b8ee54
NetBpfLoad: replace mapNames[i].c_str() with md[i].name()
...
Since these are equivalent, search and replace...
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I358220f5db70fcde671ce2560086fc7a220f49c7
Maciej Żenczykowski
commited 2025-07-31 17:19:10 -07:00
dfda509e77
bpf_map_def: introduce map name 'field'
...
The field is actually just a compile time calculate index into pin_location.
We add a C++ only helper to return the ASCIIZ string at this offset.
Temporary abort() added to show this is equivalent.
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: If57390b99f348ab03b277e8f68e7f38636c751fc
Maciej Żenczykowski
commited 2025-07-31 17:17:41 -07:00
b3dba5438d
bpf: switch map 'pin_prefix' to 'pin_location'
...
easy to do for maps now, but harder for programs
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I0aedef7a8f28d8cc60ca4912f2666f920b9dbeb5
Maciej Żenczykowski
commited 2025-07-31 12:31:56 -07:00
47e2ba05ed
NetBpfLoad: remove spurious pathToObjName()
...
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I7fb1ea3fcaed51c4702be18b0af636acfd315d9c
Maciej Żenczykowski
commited 2025-07-31 11:53:04 -07:00
3330faf62f
bpf: switch prog 'pin_subdir' to 'pin_prefix'
...
which simplifies NetBpfLoad logic
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I610aa8374fe3c56262f76fe52edf8386c1a3ee12
Maciej Żenczykowski
commited 2025-07-31 11:42:10 -07:00
ae1a9ff2fa
bpf: switch map 'pin_subdir' to 'pin_prefix'
...
which simplifies NetBpfLoad logic
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I3600cf45ae14a20801b5beca0aa9e79bb3052c57
Maciej Żenczykowski
commited 2025-07-31 11:39:38 -07:00
667dfa97e6
bpf: embed 'create_location' instead of 'selinux_context' in .o files
...
Basically we can verify and precalculate this at build time.
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ie4e336c6dc82a0e93a3e62c88c313a32cb245861
Maciej Żenczykowski
commited 2025-07-30 15:27:49 -07:00
0864153ddd
NetBpfLoad: remove validatePinDir()
...
No longer required now that we have compile time verification.
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I5b18727e8ebf820a06ba647bb7349ba755d5d798
Maciej Żenczykowski
commited 2025-07-30 15:02:07 -07:00
ed945905de
bpf_map_def: increase BPF_PIN_SUBDIR_CHAR_ARRAY_SIZE from 32 to 66
...
will allow us to store full pin location, longest we currently have is 64 + NULL:
$ adb shell find /sys/fs/bpf | egrep net | egrep '.{64}'
/sys/fs/bpf/netd_shared/prog_netd_cgroupsockrelease_inet_release
$ adb shell find /sys/fs/bpf | egrep net | egrep '.{65}'
<nothing>
Choose small value so we don't needlessly bloat the .o's.
This can be trivially increased on demand.
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I62015d2703fdee004fb7279d8f9ca83f7462a4df
Maciej Żenczykowski
commited 2025-07-30 12:49:04 -07:00
5765db482c
NetBpfLoad: inline trivial readProgDefs()
...
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I677d87fd4535740ced99cdc75f9ff9810bae68e6
Maciej Żenczykowski
commited 2025-07-30 10:56:17 -07:00
ac40f52e27
NetBpfLoad: use objName/progName less location pre-rename
...
The genfscon rules only care about the directory, the precise
name is irrelevant and temporary since we immediately rename.
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I6307dc2f7f10d78026c3f798cb1d3027619cee4f
Maciej Żenczykowski
commited 2025-07-29 19:53:10 -07:00
f6dfae8d0e
NetBpfLoad: use objName/mapName less location pre-rename
...
The genfscon rules only care about the directory, the precise
name is irrelevant and temporary since we immediately rename.
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ic8cd316df6649b9bfd629694e32130ce7363afea
Maciej Żenczykowski
commited 2025-07-29 19:53:10 -07:00
04747910f7
NetBpfLoad: remove foo@1.o support
...
No longer needed now that we have a single loader
which can support everything.
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I74c24016265a2b41d818d55c98cbabde04687dd8
Maciej Żenczykowski
commited 2025-07-29 19:53:09 -07:00
08ad51519a
Merge "NetBpfLoad: Load netd.o by libbpf on 25Q3+" into main
Maciej Żenczykowski
authored and
Android (Google) Code Review
commited 2025-07-29 08:08:55 -07:00
1a2f7c35a4
Merge changes If57594b4,Iecb07123 into main
...
* changes:
NetBpfLoad: Load dscpPolicy.o by libbpf on 25Q3+
NetBpfLoad: Load clatd.o by libbpf on 25Q3+
Maciej Żenczykowski
authored and
Android (Google) Code Review
commited 2025-07-29 08:08:41 -07:00
a39fa3b3d5
Merge "NetBpfLoad: Load test.o by libbpf on 25Q3+" into main
Maciej Żenczykowski
authored and
Android (Google) Code Review
commited 2025-07-29 08:07:41 -07:00
fae303f20b
NetBpfLoad: Load netd.o by libbpf on 25Q3+
...
Before this change
"""
$ adb shell ls -lZ /sys/fs/bpf/netd_shared/
total 0
drwxrwxrwt 2 root root u:object_r:fs_bpf_netd_shared:s0 0 2025-07-29 19:52 mainline_done
----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:52 map_netd_app_uid_stats_map
----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:52 map_netd_blocked_ports_map
-r--rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 map_netd_configuration_map
-rw-rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_shared:s0 0 2025-07-29 19:52 map_netd_cookie_tag_map
-r--rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 map_netd_data_saver_enabled_map
----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:52 map_netd_iface_index_name_map
----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:52 map_netd_iface_stats_map
----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:52 map_netd_ingress_discard_map
----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:52 map_netd_local_net_access_map
----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:52 map_netd_local_net_blocked_uid_map
-rw-rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_shared:s0 0 2025-07-29 19:52 map_netd_lock_array_test_map
-rw-rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_shared:s0 0 2025-07-29 19:52 map_netd_lock_hash_test_map
----rw---- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:52 map_netd_packet_trace_enabled_map
----rw---- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:52 map_netd_packet_trace_ringbuf
----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:52 map_netd_sk_storage
-r--rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 map_netd_stats_map_A
-r--rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 map_netd_stats_map_B
----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:52 map_netd_uid_counterset_map
-r--rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 map_netd_uid_owner_map
-r--rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 map_netd_uid_permission_map
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 prog_netd_bind4_inet4_bind
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 prog_netd_bind6_inet6_bind
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 prog_netd_cgroupskb_egress_stats
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 prog_netd_cgroupskb_ingress_stats
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 prog_netd_cgroupsock_inet_create
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 prog_netd_cgroupsockrelease_inet_release
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 prog_netd_connect4_inet4_connect
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 prog_netd_connect6_inet6_connect
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 prog_netd_getsockopt_prog
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 prog_netd_recvmsg4_udp4_recvmsg
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 prog_netd_recvmsg6_udp6_recvmsg
-r--r----- 1 root net_admin u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:52 prog_netd_schedact_ingress_account
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 prog_netd_sendmsg4_udp4_sendmsg
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 prog_netd_sendmsg6_udp6_sendmsg
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:52 prog_netd_setsockopt_prog
-r--r----- 1 root net_admin u:object_r:fs_bpf_netd_shared:s0 0 2025-07-29 19:52 prog_netd_skfilter_allowlist_xtbpf
-r--r----- 1 root net_admin u:object_r:fs_bpf_netd_shared:s0 0 2025-07-29 19:52 prog_netd_skfilter_denylist_xtbpf
-r--r----- 1 root net_admin u:object_r:fs_bpf_netd_shared:s0 0 2025-07-29 19:52 prog_netd_skfilter_egress_xtbpf
-r--r----- 1 root net_admin u:object_r:fs_bpf_netd_shared:s0 0 2025-07-29 19:52 prog_netd_skfilter_ingress_xtbpf
$ adb logcat
07-29 19:52:24.598 792 792 D NetBpfLoad: Loaded object: /apex/com.android.tethering/etc/bpf/mainline/netd.o, libbpf: 0
"""
After this change
"""
$ adb shell ls -lZ /sys/fs/bpf/netd_shared/
motomuman@DESK:/disk/main$ adb shell ls -lZ /sys/fs/bpf/netd_shared/
total 0
drwxrwxrwt 2 root root u:object_r:fs_bpf_netd_shared:s0 0 2025-07-29 19:56 mainline_done
----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:56 map_netd_app_uid_stats_map
----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:56 map_netd_blocked_ports_map
-r--rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 map_netd_configuration_map
-rw-rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_shared:s0 0 2025-07-29 19:56 map_netd_cookie_tag_map
-r--rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 map_netd_data_saver_enabled_map
----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:56 map_netd_iface_index_name_map
----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:56 map_netd_iface_stats_map
----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:56 map_netd_ingress_discard_map
----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:56 map_netd_local_net_access_map
----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:56 map_netd_local_net_blocked_uid_map
-rw-rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_shared:s0 0 2025-07-29 19:56 map_netd_lock_array_test_map
-rw-rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_shared:s0 0 2025-07-29 19:56 map_netd_lock_hash_test_map
----rw---- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:56 map_netd_packet_trace_enabled_map
----rw---- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:56 map_netd_packet_trace_ringbuf
----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:56 map_netd_sk_storage
-r--rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 map_netd_stats_map_A
-r--rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 map_netd_stats_map_B
----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:56 map_netd_uid_counterset_map
-r--rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 map_netd_uid_owner_map
-r--rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 map_netd_uid_permission_map
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 prog_netd_bind4_inet4_bind
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 prog_netd_bind6_inet6_bind
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 prog_netd_cgroupskb_egress_stats
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 prog_netd_cgroupskb_ingress_stats
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 prog_netd_cgroupsock_inet_create
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 prog_netd_cgroupsockrelease_inet_release
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 prog_netd_connect4_inet4_connect
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 prog_netd_connect6_inet6_connect
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 prog_netd_getsockopt_prog
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 prog_netd_recvmsg4_udp4_recvmsg
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 prog_netd_recvmsg6_udp6_recvmsg
-r--r----- 1 root net_admin u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:56 prog_netd_schedact_ingress_account
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 prog_netd_sendmsg4_udp4_sendmsg
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 prog_netd_sendmsg6_udp6_sendmsg
-r--r----- 1 root root u:object_r:fs_bpf_netd_readonly:s0 0 2025-07-29 19:56 prog_netd_setsockopt_prog
-r--r----- 1 root net_admin u:object_r:fs_bpf_netd_shared:s0 0 2025-07-29 19:56 prog_netd_skfilter_allowlist_xtbpf
-r--r----- 1 root net_admin u:object_r:fs_bpf_netd_shared:s0 0 2025-07-29 19:56 prog_netd_skfilter_denylist_xtbpf
-r--r----- 1 root net_admin u:object_r:fs_bpf_netd_shared:s0 0 2025-07-29 19:56 prog_netd_skfilter_egress_xtbpf
-r--r----- 1 root net_admin u:object_r:fs_bpf_netd_shared:s0 0 2025-07-29 19:56 prog_netd_skfilter_ingress_xtbpf
$ adb logcat
07-29 19:56:31.625 788 788 D NetBpfLoad: Loaded object: /apex/com.android.tethering/etc/bpf/mainline/netd.o, libbpf: 1
"""
Bug: 428792764
Flag: EXEMPT mainline
Test: TH
Change-Id: I79b007450df134533fd780a9e94361361d862fb8
Motomu Utsumi
commited 2025-07-29 19:58:42 +09:00
15aedc9b4a
NetBpfLoad: Load dscpPolicy.o by libbpf on 25Q3+
...
Before this change
"""
$ adb shell ls -lZ /sys/fs/bpf/net_shared/*dscp*
-rw-rw---- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:46 /sys/fs/bpf/net_shared/map_dscpPolicy_ipv4_dscp_policies_map
-rw-rw---- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:46 /sys/fs/bpf/net_shared/map_dscpPolicy_ipv6_dscp_policies_map
---------- 1 root root u:object_r:fs_bpf_loader:s0 0 2025-07-29 19:46 /sys/fs/bpf/net_shared/map_dscpPolicy_socket_policy_cache_map
-r--r----- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:46 /sys/fs/bpf/net_shared/prog_dscpPolicy_schedcls_set_dscp_ether
$ adb logcat
07-29 19:46:24.468 794 794 D NetBpfLoad: Loaded object: /apex/com.android.tethering/etc/bpf/mainline/dscpPolicy.o, libbpf: 0
"""
After this change
"""
$ adb shell ls -lZ /sys/fs/bpf/net_shared/*dscp*
-rw-rw---- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:52 /sys/fs/bpf/net_shared/map_dscpPolicy_ipv4_dscp_policies_map
-rw-rw---- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:52 /sys/fs/bpf/net_shared/map_dscpPolicy_ipv6_dscp_policies_map
---------- 1 root root u:object_r:fs_bpf_loader:s0 0 2025-07-29 19:52 /sys/fs/bpf/net_shared/map_dscpPolicy_socket_policy_cache_map
-r--r----- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:52 /sys/fs/bpf/net_shared/prog_dscpPolicy_schedcls_set_dscp_ether
$ adb logcat
07-29 19:52:24.493 792 792 D NetBpfLoad: Loaded object: /apex/com.android.tethering/etc/bpf/mainline/dscpPolicy.o, libbpf: 1
"""
Bug: 428792764
Flag: EXEMPT mainline
Test: TH
Change-Id: If57594b490908eb46070812c12e611c2804fe251
Motomu Utsumi
commited 2025-07-29 19:58:33 +09:00
0062e898f0
NetBpfLoad: Load clatd.o by libbpf on 25Q3+
...
Before this change
"""
$ adb shell ls -lZ /sys/fs/bpf/net_shared/*clat*
-rw-rw---- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:41 /sys/fs/bpf/net_shared/map_clatd_clat_egress4_map
-rw-rw---- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:41 /sys/fs/bpf/net_shared/map_clatd_clat_ingress6_map
-r--r----- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:41 /sys/fs/bpf/net_shared/prog_clatd_schedcls_egress4_clat_rawip
-r--r----- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:41 /sys/fs/bpf/net_shared/prog_clatd_schedcls_ingress6_clat_ether
-r--r----- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:41 /sys/fs/bpf/net_shared/prog_clatd_schedcls_ingress6_clat_rawip
$ adb logcat
07-29 19:41:34.556 800 800 D NetBpfLoad: Loaded object: /apex/com.android.tethering/etc/bpf/mainline/clatd.o, libbpf: 0
"""
After this change
"""
$ adb shell ls -lZ /sys/fs/bpf/net_shared/*clat*
-rw-rw---- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:46 /sys/fs/bpf/net_shared/map_clatd_clat_egress4_map
-rw-rw---- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:46 /sys/fs/bpf/net_shared/map_clatd_clat_ingress6_map
-r--r----- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:46 /sys/fs/bpf/net_shared/prog_clatd_schedcls_egress4_clat_rawip
-r--r----- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:46 /sys/fs/bpf/net_shared/prog_clatd_schedcls_ingress6_clat_ether
-r--r----- 1 root system u:object_r:fs_bpf_net_shared:s0 0 2025-07-29 19:46 /sys/fs/bpf/net_shared/prog_clatd_schedcls_ingress6_clat_rawip
$ adb logcat
07-29 19:46:24.453 794 794 D NetBpfLoad: Loaded object: /apex/com.android.tethering/etc/bpf/mainline/clatd.o, libbpf: 1
"""
Bug: 428792764
Flag: EXEMPT mainline
Test: TH
Change-Id: Iecb07123ca7bc6bfa8649202ed212731398beeae
Motomu Utsumi
commited 2025-07-29 19:58:04 +09:00
f5044b7363
NetBpfLoad: Load test.o by libbpf on 25Q3+
...
Before this change
"""
$ adb shell ls -lZ /sys/fs/bpf/tethering/map_test*
-rw-rw---- 1 root network_stack u:object_r:fs_bpf_tethering:s0 0 2025-07-29 19:35 /sys/fs/bpf/tethering/map_test_bitmap
-rw-rw---- 1 root network_stack u:object_r:fs_bpf_tethering:s0 0 2025-07-29 19:35 /sys/fs/bpf/tethering/map_test_tether2_downstream6_map
-rw-rw---- 1 root network_stack u:object_r:fs_bpf_tethering:s0 0 2025-07-29 19:35 /sys/fs/bpf/tethering/map_test_tether3_downstream6_map
-rw-rw---- 1 root network_stack u:object_r:fs_bpf_tethering:s0 0 2025-07-29 19:35 /sys/fs/bpf/tethering/map_test_tether_downstream6_map
$ adb logcat
07-29 19:35:18.994 790 790 D NetBpfLoad: Loaded object: /apex/com.android.tethering/etc/bpf/mainline/test.o, libbpf: 0
"""
After this change
"""
$ adb shell ls -lZ /sys/fs/bpf/tethering/map_test*
-rw-rw---- 1 root network_stack u:object_r:fs_bpf_tethering:s0 0 2025-07-29 19:41 /sys/fs/bpf/tethering/map_test_bitmap
-rw-rw---- 1 root network_stack u:object_r:fs_bpf_tethering:s0 0 2025-07-29 19:41 /sys/fs/bpf/tethering/map_test_tether2_downstream6_map
-rw-rw---- 1 root network_stack u:object_r:fs_bpf_tethering:s0 0 2025-07-29 19:41 /sys/fs/bpf/tethering/map_test_tether3_downstream6_map
-rw-rw---- 1 root network_stack u:object_r:fs_bpf_tethering:s0 0 2025-07-29 19:41 /sys/fs/bpf/tethering/map_test_tether_downstream6_map
$ adb logcat
07-29 19:41:34.547 800 800 D NetBpfLoad: Loaded object: /apex/com.android.tethering/etc/bpf/mainline/test.o, libbpf: 1
"""
Bug: 428792764
Flag: EXEMPT mainline
Test: TH
Change-Id: I5525bc277960c7257724bd6a0a764653f6dfb186
Motomu Utsumi
commited 2025-07-29 19:57:53 +09:00
4efd544c41
NetBpfLoad: eliminate 'domain' concept
...
No longer useful in a self-contained mainline world.
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com
Change-Id: I9dffa848e5323cf0c2ef9873caeb89bf2b2e8656
Maciej Żenczykowski
commited 2025-07-28 18:45:12 -07:00
f297f808bb
NetBpfLoad: eliminate getDomainFromPinSubdir()
...
(and enforce that pindir is actually specified and not empty)
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com
Change-Id: I366aebebed2b39ffd64a90fd9199805d342c2d4a
Maciej Żenczykowski
commited 2025-07-28 18:44:17 -07:00
1fdc303788