Commit graph

111,822 commits

Message SHA1
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_helpers: enforce no selinux_context on S
it doesn't work due to lack of sepolicy for 'rename' operation

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

Maciej Żenczykowski   commited 2025-07-31 13:01:12 -07:00
bd0588685e
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
bpf_map_def: rename BPF_PIN_SUBDIR_CHAR_ARRAY_SIZE to BPF_DEF_CHAR_ARRAY_SIZE
as the name is no longer really appropriate and I want to add another use...

Generated via:
  sed -i 's@BPF_PIN_SUBDIR_CHAR_ARRAY_SIZE@BPF_DEF_CHAR_ARRAY_SIZE@' bpf/progs/include/bpf_map_def.h

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

Maciej Żenczykowski   commited 2025-07-31 12:17:01 -07:00
22f21a5496
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
Merge "Add logging for onPermissionsChanged latency." into main
Hao Liu   authored and   Android (Google) Code Review   commited 2025-07-31 06:47:43 -07:00
85415edca0
Merge "bpf: embed 'create_location' instead of 'selinux_context' in .o files" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-07-30 21:30:42 -07:00
9f6ff9f8e3
Merge changes I33a8015b,I5b18727e,I0bcf5a2e,I62015d27 into main
* changes:
  bpf: remove / from DEFAULT_BPF_PIN_SUBDIR
  NetBpfLoad: remove validatePinDir()
  bpf_helpers: build time validate selinux_context & pin_subdir
  bpf_map_def: increase BPF_PIN_SUBDIR_CHAR_ARRAY_SIZE from 32 to 66

Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-07-30 21:07:09 -07:00
d02a386867
Add logging for onPermissionsChanged latency.
Flag: com.android.tethering.mainline.beta.lnp_developer_opt_in
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.PermissionMonitorTest
Bug: 424558169

Change-Id: Ifb621149130212a2903a7c31eebd4126e7d9924a

Hao Liu   commited 2025-07-31 03:02:08 +00:00
55614983a6
Merge "Fix UnfinishedStubbingException when running testAutomotiveEthernetAllowedUids" into main
Paul Hu   authored and   Android (Google) Code Review   commited 2025-07-30 19:11:15 -07:00
1d1307e385
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
bpf: remove / from DEFAULT_BPF_PIN_SUBDIR
as it looks akward, and makes little sense once we fully generate
the path at compile time...

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

Maciej Żenczykowski   commited 2025-07-30 15:07:54 -07:00
22ba1e91fc
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_helpers: build time validate selinux_context & pin_subdir
Test: TreeHugger
Flag: EXEMPT mainline
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I0bcf5a2e3a353bbecd20323bf4d9280a88ec2502

Maciej Żenczykowski   commited 2025-07-30 15:02:01 -07:00
47ac522d49
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
bpf: define BPF_OBJ_NAME
(prep work to eliminate a ton of NetBpfLoad complexity
 wrt. map/program pin naming)

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

Maciej Żenczykowski   commited 2025-07-30 11:14:51 -07:00
5a3a497490
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
Merge "bpf_helper: fix map assert" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-07-30 03:24:27 -07:00
ff844aa2af
Merge "bpf: make it a compile-time error if BPFLOADER_MIN_VER isn't defined" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-07-30 03:11:40 -07:00
dc4829de38
Merge changes I35cf433a,I1ac99c20 into main
* changes:
  bpf: remove BPFLOADER_MIN_VER check on BPF_MAP_UID
  bpf_helpers: require DEFAULT_BPF_PIN_SUBDIR to be defined

Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-07-30 03:01:32 -07:00
4a7a708fc5
Merge "Split framework component" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-07-30 02:52:57 -07:00
21846e2c52
Merge "Fix missing '/' for retrieving interface MTU from ProcfsUtils" into main
Jimi Chen   authored and   Android (Google) Code Review   commited 2025-07-30 02:07:08 -07:00
9bbdbc56b4
Fix UnfinishedStubbingException when running testAutomotiveEthernetAllowedUids
Mocking the PackageManager while ConnectivityService is running
could throw an UnfinishedStubbingException. This change splits
the test into two distinct tests that don't need to change the
mocking value for PackageManager during testing.

Fix: 433600031
Test: atest ConnectivityServiceTest
Flag: TEST_ONLY
Change-Id: Ibcff2082d1e50e89c272573b4c719a7325c959fd

Paul Hu   commited 2025-07-30 08:36:26 +00:00
e4e65d7b48
Merge changes I6307dc2f,Ic8cd316d into main
* changes:
  NetBpfLoad: use objName/progName less location pre-rename
  NetBpfLoad: use objName/mapName less location pre-rename

Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-07-30 00:09:18 -07:00
4cdfa1d9ff
Merge changes I74c24016,I3b2b533e into main
* changes:
  NetBpfLoad: remove foo@1.o support
  Tweak: Throw exception for oversized BpfMap keys/values

Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-07-30 00:09:14 -07:00
2b9447dcf6
bpf_helper: fix map assert
BPFLOADER_T_VERSION is not defined (and thus 0)

This was missed when BPFLOADER_*_VERSION was removed
as no longer needed (for non mainline versions) due
to not actually causing a compile error.

Restore it.  Android S kernels might not support writing
into non-zero index of bpf map arrays (due to kernel bug).

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

Maciej Żenczykowski   commited 2025-07-29 23:08:11 -07:00
74ca650020
bpf: make it a compile-time error if BPFLOADER_MIN_VER isn't defined
Instead of a weird error message about the variable being undeclared,
give a clear error message in the case of BPFLOADER_MIN_VER not being
defined.

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

Maciej Żenczykowski   commited 2025-07-29 23:04:05 -07:00
90474a8b72
Split framework component
Test: m cts
Flag: TEST_ONLY
Bug: 432581059
Change-Id: Iea2a716a03fbd102b4cbdfb1c99ab5f8ce444ac9

Yihan Dong   commited 2025-07-30 14:01:24 +08:00
b19fdd7046
bpf: remove BPFLOADER_MIN_VER check on BPF_MAP_UID
Not relevant with mainline NetBpfLoad.

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

Maciej Żenczykowski   commited 2025-07-29 23:00:04 -07:00
4997a8acad
bpf_helpers: require DEFAULT_BPF_PIN_SUBDIR to be defined
(all our .o's already do this)

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

Maciej Żenczykowski   commited 2025-07-29 22:56:11 -07:00
5f924d567f
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
Tweak: Throw exception for oversized BpfMap keys/values
Throw an IllegalArgumentException if the key or value sizes exceed the
limits supported by the BpfMap implementation. This prevents potential
file descriptor cache collisions and makes errors explicit.

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

Maciej Żenczykowski   commited 2025-07-29 19:52:55 -07:00
2a2ee0af44
Merge "Introduce BLE advertiser wrapper for unit tests." into main
Chen Wang   authored and   Android (Google) Code Review   commited 2025-07-29 15:40:11 -07:00
da69a84220