Commit graph android_packages_modules_Co.../bpf/loader/NetBpfLoad.cpp
Message SHA1
NetBpfLoad: remove 'prefix' from pinProgs()
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I83922a5aa990fbbb6c5a6cf9412e437ca2669ff9

Maciej Żenczykowski   commited 2025-07-28 15:36:04 -07:00
f8e883658d
NetBpfLoad: remove 'prefix' from buildMapPinLoc()
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I23361e204e92d6323d91174c0882058f2477eb37

Maciej Żenczykowski   commited 2025-07-28 15:21:56 -07:00
586d462f55
NetBpfLoad: remove 'prefix' from pinMaps()
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Iff334320127de04261f58d065a656478b1216d12

Maciej Żenczykowski   commited 2025-07-28 15:21:56 -07:00
7ce493dd55
NetBpfLoad: remove 'prefix' from createMaps()
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: If41c62f8721fee5fa997684ebf60535e0e8b634b

Maciej Żenczykowski   commited 2025-07-28 15:21:56 -07:00
960c3372a0
NetBpfLoad: remove 'prefix' from loadProg()
Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I8678bd27e5de720c49b33bacc25dc59d10354774

Maciej Żenczykowski   commited 2025-07-28 15:21:56 -07:00
12751c54fa
NetBpfLoad: remove 'prefix' from loadProgByLibbpf()
Test: TreeHugger,
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Id9e44b999ccfefce3586e94a24fef8758320215d

Maciej Żenczykowski   commited 2025-07-28 15:21:56 -07:00
ff3b418cf2
NetBpfLoad: remove 'prefix' from loadObject
Test: TreeHugger, atest bpf_existence_test
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I3495ac194c8cd3cbf9befefcc85237b8c5677ad1

Maciej Żenczykowski   commited 2025-07-28 15:21:56 -07:00
58464e6d5b
bpf: netd.c - use pindir instead of prefix
We continue to have:
  $ adbz shell ls -lZ /sys/fs/bpf/*/*_netd_*
  ----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0     0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/map_netd_app_uid_stats_map
  ----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0     0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/map_netd_blocked_ports_map
  -r--rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/map_netd_configuration_map
  -rw-rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_shared:s0    0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/map_netd_cookie_tag_map
  -r--rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/map_netd_data_saver_enabled_map
  ----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0     0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/map_netd_iface_index_name_map
  ----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0     0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/map_netd_iface_stats_map
  ----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0     0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/map_netd_ingress_discard_map
  ----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0     0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/map_netd_local_net_access_map
  ----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0     0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/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-28 14:43 /sys/fs/bpf/netd_shared/map_netd_lock_array_test_map
  -rw-rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_shared:s0    0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/map_netd_lock_hash_test_map
  ----rw---- 1 root system      u:object_r:fs_bpf_net_shared:s0     0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/map_netd_packet_trace_enabled_map
  ----rw---- 1 root system      u:object_r:fs_bpf_net_shared:s0     0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/map_netd_packet_trace_ringbuf
  ----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0     0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/map_netd_sk_storage
  -r--rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/map_netd_stats_map_A
  -r--rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/map_netd_stats_map_B
  ----rw---- 1 root net_bw_acct u:object_r:fs_bpf_net_shared:s0     0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/map_netd_uid_counterset_map
  -r--rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/map_netd_uid_owner_map
  -r--rw---- 1 root net_bw_acct u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/map_netd_uid_permission_map
  -r--r----- 1 root root        u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_bind4_inet4_bind
  -r--r----- 1 root root        u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_bind6_inet6_bind
  -r--r----- 1 root root        u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_cgroupskb_egress_stats
  -r--r----- 1 root root        u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_cgroupskb_ingress_stats
  -r--r----- 1 root root        u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_cgroupsock_inet_create
  -r--r----- 1 root root        u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_cgroupsockrelease_inet_release
  -r--r----- 1 root root        u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_connect4_inet4_connect
  -r--r----- 1 root root        u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_connect6_inet6_connect
  -r--r----- 1 root root        u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_getsockopt_prog
  -r--r----- 1 root root        u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_recvmsg4_udp4_recvmsg
  -r--r----- 1 root root        u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_recvmsg6_udp6_recvmsg
  -r--r----- 1 root net_admin   u:object_r:fs_bpf_net_shared:s0     0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_schedact_ingress_account
  -r--r----- 1 root root        u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_sendmsg4_udp4_sendmsg
  -r--r----- 1 root root        u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_sendmsg6_udp6_sendmsg
  -r--r----- 1 root root        u:object_r:fs_bpf_netd_readonly:s0  0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_setsockopt_prog
  -r--r----- 1 root net_admin   u:object_r:fs_bpf_netd_shared:s0    0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_skfilter_allowlist_xtbpf
  -r--r----- 1 root net_admin   u:object_r:fs_bpf_netd_shared:s0    0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_skfilter_denylist_xtbpf
  -r--r----- 1 root net_admin   u:object_r:fs_bpf_netd_shared:s0    0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_skfilter_egress_xtbpf
  -r--r----- 1 root net_admin   u:object_r:fs_bpf_netd_shared:s0    0 2025-07-28 14:43 /sys/fs/bpf/netd_shared/prog_netd_skfilter_ingress_xtbpf

Test: TreeHugger, atest bpf_existence_test
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I9b6e343e496b77092e18f54d0a9115ed88d0d711

Maciej Żenczykowski   commited 2025-07-28 15:21:56 -07:00
879752581f
bpf: offload.c - use pindir instead of prefix
We continue to have:
  $ adbz shell ls -lZ /sys/fs/bpf/*/*_offload_*
  -rw-rw---- 1 root network_stack u:object_r:fs_bpf_tethering:s0  0 2025-07-28 14:39 /sys/fs/bpf/tethering/map_offload_tether_dev_map
  -rw-rw---- 1 root network_stack u:object_r:fs_bpf_tethering:s0  0 2025-07-28 14:39 /sys/fs/bpf/tethering/map_offload_tether_downstream4_map
  -rw-rw---- 1 root network_stack u:object_r:fs_bpf_tethering:s0  0 2025-07-28 14:39 /sys/fs/bpf/tethering/map_offload_tether_downstream64_map
  -rw-rw---- 1 root network_stack u:object_r:fs_bpf_tethering:s0  0 2025-07-28 14:39 /sys/fs/bpf/tethering/map_offload_tether_downstream6_map
  -r--r----- 1 root network_stack u:object_r:fs_bpf_tethering:s0  0 2025-07-28 14:39 /sys/fs/bpf/tethering/map_offload_tether_error_map
  -rw-rw---- 1 root network_stack u:object_r:fs_bpf_tethering:s0  0 2025-07-28 14:39 /sys/fs/bpf/tethering/map_offload_tether_limit_map
  -rw-rw---- 1 root network_stack u:object_r:fs_bpf_tethering:s0  0 2025-07-28 14:39 /sys/fs/bpf/tethering/map_offload_tether_stats_map
  -rw-rw---- 1 root network_stack u:object_r:fs_bpf_tethering:s0  0 2025-07-28 14:39 /sys/fs/bpf/tethering/map_offload_tether_upstream4_map
  -rw-rw---- 1 root network_stack u:object_r:fs_bpf_tethering:s0  0 2025-07-28 14:39 /sys/fs/bpf/tethering/map_offload_tether_upstream6_map
  -r--r----- 1 root network_stack u:object_r:fs_bpf_tethering:s0  0 2025-07-28 14:39 /sys/fs/bpf/tethering/prog_offload_schedcls_tether_downstream4_ether
  -r--r----- 1 root network_stack u:object_r:fs_bpf_tethering:s0  0 2025-07-28 14:39 /sys/fs/bpf/tethering/prog_offload_schedcls_tether_downstream4_rawip
  -r--r----- 1 root network_stack u:object_r:fs_bpf_tethering:s0  0 2025-07-28 14:39 /sys/fs/bpf/tethering/prog_offload_schedcls_tether_downstream6_ether
  -r--r----- 1 root network_stack u:object_r:fs_bpf_tethering:s0  0 2025-07-28 14:39 /sys/fs/bpf/tethering/prog_offload_schedcls_tether_downstream6_rawip
  -r--r----- 1 root network_stack u:object_r:fs_bpf_tethering:s0  0 2025-07-28 14:39 /sys/fs/bpf/tethering/prog_offload_schedcls_tether_upstream4_ether
  -r--r----- 1 root network_stack u:object_r:fs_bpf_tethering:s0  0 2025-07-28 14:39 /sys/fs/bpf/tethering/prog_offload_schedcls_tether_upstream4_rawip
  -r--r----- 1 root network_stack u:object_r:fs_bpf_tethering:s0  0 2025-07-28 14:39 /sys/fs/bpf/tethering/prog_offload_schedcls_tether_upstream6_ether
  -r--r----- 1 root network_stack u:object_r:fs_bpf_tethering:s0  0 2025-07-28 14:39 /sys/fs/bpf/tethering/prog_offload_schedcls_tether_upstream6_rawip

Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Icba19a50fac5869fa5c7bc86c4b2450a8ede856f

Maciej Żenczykowski   commited 2025-07-28 15:21:56 -07:00
380449ed40
bpf: clatd.c - use pindir instead of prefix
We continue to have:
  $ adbz shell ls -lZ /sys/fs/bpf/*/*_clatd_*
  -rw-rw---- 1 root system u:object_r:fs_bpf_net_shared:s0  0 2025-07-28 14:15 /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-28 14:15 /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-28 14:15 /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-28 14:15 /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-28 14:15 /sys/fs/bpf/net_shared/prog_clatd_schedcls_ingress6_clat_rawip

Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Id015d91f5e42acedea1ccf813334012f4b0f64ec

Maciej Żenczykowski   commited 2025-07-28 15:21:56 -07:00
6fba0348b6
bpf: dscpPolicy.c - use pindir instead of prefix
We continue to have:
  $ adbz shell ls -lZ /sys/fs/bpf/*/*_dscpPolicy_*
  -rw-rw---- 1 root system u:object_r:fs_bpf_net_shared:s0  0 2025-07-28 14:05 /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-28 14:05 /sys/fs/bpf/net_shared/map_dscpPolicy_ipv6_dscp_policies_map
  ---------- 1 root root   u:object_r:fs_bpf_loader:s0      0 2025-07-28 14:05 /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-28 14:05 /sys/fs/bpf/net_shared/prog_dscpPolicy_schedcls_set_dscp_ether

Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ia69a48a73b1c9c8543c3e60c7ee9bbf3835eaba9

Maciej Żenczykowski   commited 2025-07-28 15:21:56 -07:00
4af4200968
bpf: test.c - use pindir instead of prefix
We continue to have:
  $ adbz 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-28 13:46 /sys/fs/bpf/tethering/map_test_bitmap
  -rw-rw---- 1 root network_stack u:object_r:fs_bpf_tethering:s0  0 2025-07-28 13:46 /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-28 13:46 /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-28 13:46 /sys/fs/bpf/tethering/map_test_tether_downstream6_map

Long term goal here is to eliminate 'prefix' entirely.
This will also allow merging all the bpf .o's into 1.

Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ifdbc47243363e73ef46a9a9c71136f342fd381a7

Maciej Żenczykowski   commited 2025-07-28 15:21:56 -07:00
deed643567
bpf: mapDef - eliminate 'bool shared' field
Found mostly via:
  git grep 'shared_bool|PRIVATE'

Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ifa8098fe65c2b3278ad6e11191889f79ab7c3d57

Maciej Żenczykowski   commited 2025-07-28 15:21:56 -07:00
c1f92e5c7b
Revert "NetBpfLoad: abort if pin_subdir is specified"
This reverts commit 10979ef9ec.

Test: TreeHugger
Flag: EXEMPT mainline/noop
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I0a3e41c11c9f6b758b883ec93c12009b52a1a185

Maciej Żenczykowski   commited 2025-07-28 15:21:55 -07:00
12d1fa68f1
bpf: switch map/prog selinux_context field from storing 'fs_bpf_foo' to 'foo/'
This will eliminate the need for domain stuff.

After this:
  git grep fs_bpf_
finds nothing but comments.

Test: TreeHugger
Flag: EXEMPT no-op
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ie834e9b2b120ee772690b28457c1ff080cb914dd

Maciej Żenczykowski   commited 2025-07-28 12:46:43 -07:00
868fc84bdf
bpf: eliminate BPF_SELINUX_CONTEXT_CHAR_ARRAY_SIZE, just use BPF_PIN_SUBDIR_CHAR_ARRAY_SIZE
After this:
  git grep BPF_SELINUX_CONTEXT_CHAR_ARRAY_SIZE
is now empty.

Test: TreeHugger
Flag: EXEMPT noop/mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Idea02e689707f583795237cefe3947bd412cde5c

Maciej Żenczykowski   commited 2025-07-28 12:46:43 -07:00
07d1a89909
NetBpfLoad: Prevent libbpf log truncation
The liblog logger truncates messages over 1024 bytes, which was
cutting off kernel verifier logs.

This change bypasses the limit by splitting the log by newline
and logging each line individually.

Bug: 428792764
Flag: EXEMPT logging only change
Test: TH
Change-Id: I327c7e6d717b93bad0ef3e0e9b2e45a5208728ae

Motomu Utsumi   commited 2025-07-28 16:16:29 +09:00
47fcb86960
Merge "NetBpfLoad: suppress debug log if NETBPFLOAD_VERBOSE_LOG is not defined" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-07-24 22:32:38 -07:00
e0d10b7cb1
Merge "NetBpfLoad: Allow loadObject to load BPF object by libbpf" into main
Maciej Żenczykowski   authored and   Android (Google) Code Review   commited 2025-07-24 21:48:11 -07:00
60b036cd4e
Merge "NetBpfLoad: Add method to load bpf object by libbpf" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-07-24 21:32:45 -07:00
a635578b2d
Merge changes Ia7d6575d,Ifd66cda4,I8e29fcbd into main
* changes:
  NetBpfLoad: Add method to pin programs loaded by libbpf
  NetBpfLoad: Add method to pin maps loaded by libbpf
  NetBpfLoad: Update helper methods to use borrowed_fd

Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-07-24 21:28:55 -07:00
3014baaf34
NetBpfLoad: suppress debug log if NETBPFLOAD_VERBOSE_LOG is not defined
Reduces ~900 lines of log spam by suppressing non-warning messages.
Verbose logging can be re-enabled for debugging by defining the
NETBPFLOAD_VERBOSE_LOG macro.

Bug: 428792764
Flag: EXEMPT logging only change
Test: TH
Change-Id: Ieac3e7ee843b889fb404a89cfe2319ec34ab365c

Motomu Utsumi   commited 2025-07-25 12:53:35 +09:00
a84eb0bc1e
NetBpfLoad: Allow loadObject to load BPF object by libbpf
Bug: 428792764
Flag: EXEMPT no-op
Test: TH
Test: ag/34714170

Change-Id: I70ad52c2df2fdbce1250b152444328daebb72be5

Motomu Utsumi   commited 2025-07-25 12:00:00 +09:00
e50e55dd32
NetBpfLoad: Add method to load bpf object by libbpf
Bug: 428792764
Flag: EXEMPT no-op
Test: TH
Change-Id: I3816a75147652b30e67edc26d1915e6e468cb993

Motomu Utsumi   commited 2025-07-25 12:00:00 +09:00
dbada87aee
NetBpfLoad: Add method to pin programs loaded by libbpf
Bug: 428792764
Flag: EXEMPT no-op
Test: TH
Change-Id: Ia7d6575dd9b79b41c247564d7d90a2c28711b21d

Motomu Utsumi   commited 2025-07-25 12:00:00 +09:00
5dbe65637d
NetBpfLoad: Add method to pin maps loaded by libbpf
Bug: 428792764
Flag: EXEMPT no-op
Test: TH
Change-Id: Ifd66cda409f738f721e370b884931627f70d0db7

Motomu Utsumi   commited 2025-07-25 12:00:00 +09:00
cd5bdf5382
NetBpfLoad: Update helper methods to use borrowed_fd
Bug: 428792764
Flag: EXEMPT no-op
Test: TH
Change-Id: I8e29fcbda75ec4c2fa6f2bb5dbd9da6cd44ed9c4

Motomu Utsumi   commited 2025-07-25 11:59:56 +09:00
52a3ba7f16
Merge "NetBpfLoad: Add method to prepare program load by libbpf" into main
Motomu Utsumi   authored and   Android (Google) Code Review   commited 2025-07-24 01:53:02 -07:00
d8ec55621a
Merge changes I74bb7895,Ib79e90f8,I4e66c712 into main
* changes:
  NetBpfLoad: Add method to prepare map load by libbpf
  NetBpfLoad: Extract building prog pin loc to a helper function
  NetBpfLoad: Extract building map pin loc to a helper function

Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-07-24 00:45:20 -07:00
7e86ed2fb1
Merge "NetBpfLoad: Add program name to struct codeSection." into main
Maciej Żenczykowski   authored and   Android (Google) Code Review   commited 2025-07-23 23:09:12 -07:00
4fa9057b39
NetBpfLoad: Add method to prepare program load by libbpf
Bug: 428792764
Flag: EXEMPT no-op
Test: TH
Change-Id: Ia3666e4cd17100a5fd96a0d9da2b377f8fe9a26d

Motomu Utsumi   commited 2025-07-24 13:57:50 +09:00
3cdcc47382
NetBpfLoad: Add method to prepare map load by libbpf
Bug: 428792764
Flag: EXEMPT no-op
Test: TH
Change-Id: I74bb7895756df19be0d095269a490d3da54787bd

Motomu Utsumi   commited 2025-07-24 13:57:50 +09:00
f1b1afb341
NetBpfLoad: Extract building prog pin loc to a helper function
Bug: 428792764
Flag: EXEMPT no-op
Test: TH
Change-Id: Ib79e90f81fcfeb7767850a49b9f8bd7b9e475647

Motomu Utsumi   commited 2025-07-24 13:57:35 +09:00
f8977e924d
NetBpfLoad: Extract building map pin loc to a helper function
Bug: 428792764
Flag: EXEMPT no-op
Test: TH
Change-Id: I4e66c7127f210a2264b370e079c1fb7b44958886

Motomu Utsumi   commited 2025-07-24 13:08:34 +09:00
bf407f6bc4
NetBpfLoad: Add program name to struct codeSection.
Bug: 428792764
Flag: EXEMPT no-op
Test: TH
Change-Id: I3820e2464337778d7597cc4e1842fd0d8eb11045

Motomu Utsumi   commited 2025-07-23 12:04:50 +09:00
8645b6e0dc
Merge "NetBpfLoad: rename 'writeProcSysFile()' to 'writeFile()'" into main
Maciej Żenczykowski   authored and   Android (Google) Code Review   commited 2025-07-22 15:52:37 -07:00
21e92fabe8
NetBpfLoad: rename 'writeProcSysFile()' to 'writeFile()'
The function doesn't enforce anything specific to /proc/sys.
The name should reflect that.

(prep work for reusing this for other purposes - incl. selinux booleans)

Test: TreeHugger
Flag: EXEMPT mainline/no-op
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ia206c19043e63e274c7370739750e1a8236e4127

Maciej Żenczykowski   commited 2025-07-22 12:32:08 -07:00
c9b0a8396a
NetBpfLoad: don't set kern_version
Kernel uapi documents this field as unused.

libbpf sets this to 8+8+8 bits, while we do 8+8+16 bits
(to support kernels x.x.>255)

This causes crazy strace output...

Let's just remove it entirely.

Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ie67f5a4b479d4555a593a4e6d8d14ff82efce98f

Maciej Żenczykowski   commited 2025-07-22 12:28:08 -07:00
86f5ee3c5e
NetBpfLoad: Extract map type sanitization into a helper function
Bug: 428792764
Flag: EXEMPT logging only change
Test: TH
Change-Id: Ibb1f1ea1ccaacd6e49ae525ddee398ff405b3d9f

Motomu Utsumi   commited 2025-07-18 10:14:37 +09:00
c80abe1bce
NetBpfLoad: Extract prog validation into a helper function
Bug: 428792764
Flag: EXEMPT no-op
Test: TH
Change-Id: I1007f4f365580ccc75015a85c3ef545bfddc7f24

Motomu Utsumi   commited 2025-07-18 10:11:32 +09:00
1d25bb35f2
NetBpfLoad: Extract prog pinning logic into a helper function
Bug: 428792764
Flag: EXEMPT no-op
Test: TH
Change-Id: I51c25918bec3951afca3401de8e2f0ff62ced684

Motomu Utsumi   commited 2025-07-18 10:11:26 +09:00
597f3afeb4
NetBpfLoad: Move selinux_context logging for prog
This is to prepare for splitting out the method for pinning a prog.

Bug: 428792764
Flag: EXEMPT logging only change
Test: TH
Change-Id: Iedfc8f3941f8e8b0e70e4dfbc47520b29d332c3e

Motomu Utsumi   commited 2025-07-18 10:11:21 +09:00
1e0675c0ce
NetBpfLoad: Extract map pinning logic into a helper function
Bug: 428792764
Flag: EXEMPT no-op
Test: TH
Change-Id: I4124756f07f5f0a3be9946b8a97faf7669f1615f

Motomu Utsumi   commited 2025-07-18 10:11:15 +09:00
77b0b25376
NetBpfLoad: Move selinux_context logging for map
This is to prepare for splitting out the method for pinning a map.

Bug: 428792764
Flag: EXEMPT logging only change
Test: TH
Change-Id: Iebaeea3150a99e85c25bb106e74ce3fc7f9ddb50

Motomu Utsumi   commited 2025-07-18 10:11:09 +09:00
4e024762a0
NetBpfLoad: Add libbpf-style map definitions for libbpf support
This updates the BPF map macros so programs can be loaded by both the
existing code and the libbpf.
The macros now generate ".maps" section in addition to the
".android_maps" section.

To prevent name collisions, the legacy map definitions are suffixed with
_def. This CL also adds the readMapNames method to get map names from
the ".android_maps" section, allowing the existing code path to continue
working.

Bug: 428792764
Flag: EXEMPT no-op
Test: TH
Change-Id: Ibe6f100b5684bc85d2cf9c100f2431740fa516ca

Motomu Utsumi   commited 2025-07-18 10:11:02 +09:00
e5dcaf78e3
NetBpfLoad: Remove unnecessary reuse flag in map creation
The reuse boolean was set to true only in a code path that
immediately called abort().

Bug: 428792764
Test: TH
Flag: EXEMPT no-op
Change-Id: I157e9f09c87eedc82c24d4ec821dcb132a389e31

Motomu Utsumi   commited 2025-07-18 10:10:47 +09:00
04de3498c7
NetBpfLoad: templatize readSectionByName
This is a cherry-pick of ag/34620710 to NetBpfLoad

Test: TH
Flag: EXEMPT no-op
Bug: 428792764
Change-Id: I651d7661e0a1a4dd4aa23a116ee2e211a31505f0

Motomu Utsumi   commited 2025-07-17 08:51:27 -07:00
99a7b7388e
NetBpfLoad: Refactor map/prog data copying to use a single memcpy
This is a no-op because the data in the ".android_maps"/"progs" section
is an array of struct bpf_map_def/bpf_prog_def.

Test: TH
Flag: EXEMPT no-op
Bug: 428792764
Change-Id: I80bd8c72c68b5359cf1b16ed5d4739a854169d7f

Motomu Utsumi   commited 2025-07-17 08:50:51 -07:00
8073ad8606
NetBpfLoad: less copies
This is a cherry-pick of ag/34620709 to NetBpfLoad

Test: TH
Flag: EXEMPT no-op
Bug: 428792764
Change-Id: Ia5aaa30cab71a2051b6c787824798958f2dee3f5

Motomu Utsumi   commited 2025-07-17 08:49:51 -07:00
1ae10a006e
NetBpfLoad: don't print multiline log_buf on user builds
These tend to be huge (because they can contain the full bpf disassembly)
but not very worthwhile, because they often result in logs being rate
limitted, and thus we miss out on the useful information.

This is particularly true for user builds on non-Google devices
installing the production signed tethering apex mainline module.

We're better off seeing more of the other log lines...

Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ie25a60c2e602772ab0de2050e7964f0202ff2685

Maciej Żenczykowski   commited 2025-07-15 15:00:25 -07:00
f125992b27