Commit graph android_packages_modules_Co.../netbpfload/NetBpfLoad.cpp
Message SHA1
NetBpfLoad: reduce log severity of 2 more messages
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Idb0cae4c8c09d18ef77325f6aa448ce5359fb617

Maciej Żenczykowski   commited 2024-04-30 12:00:18 +00:00
5c057ed065
NetBpfLoad: remove exists log
Not actually needed, we already log the result.

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I8391825cb5171162afb9bdf8fdf695d9f85693cb

Maciej Żenczykowski   commited 2024-04-30 10:10:12 +00:00
731acfe233
NetBpfLoad: log on non-LTS or too old LTS kernel version
minimum versions chosen to match:
  //system/netd/tests/kernel_test.cpp
  //kernel/tests/net/test/kernel_feature_test.py

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ife6900333d97181765460c16676172bf05f8fd5f

Maciej Żenczykowski   commited 2024-04-26 22:27:33 +00:00
c982a4be64
NetBpfLoad: one less startup log line
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ia15d46aeee3e3803f4134daac6b001afbd58d5b5

Maciej Żenczykowski   commited 2024-04-26 22:27:26 +00:00
4e5fb4a153
NetBpfLoad: add describeArch() to log
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I959caf62dbf06b8a4fcac1e33a6e540b879b398e

Maciej Żenczykowski   commited 2024-04-26 22:27:11 +00:00
8b74cbb34b
NetBpfLoad: move into android namespace
Change-Id: I5f841f796e49eebbf882b769cecf352b76800cf5

Maciej Żenczykowski   commited 2024-04-25 14:26:50 -07:00
75c2def0ea
NetBpfLoad: use exec path for api level 35+ (ie. V)
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I075b2a6166454d36599b0ecc25ccaeec545d183c

Maciej Żenczykowski   commited 2024-04-15 02:13:56 -07:00
3218a81a57
NetBpfLoad: rework mainline bpf execution codepath
(for now for better testing we don't make V special)

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Id2835bd393c0ec9e1710644681bc5aab0d7d2aae

Maciej Żenczykowski   commited 2024-03-19 21:45:21 +00:00
732a14164f
NetBpfLoad: enable mainline on T+
Note:
   2 == BPFLOADER_S_VERSION
  19 == BPFLOADER_T_VERSION
  25 == BPFLOADER_OBJ_AT_VER_VERSION
  33 == BPFLOADER_IGNORED_ON_VERSION
  37 == BPFLOADER_U_VERSION [*]
  41 == BPFLOADER_V_VERSION [**]
and currently we have:
  42 == BPFLOADER_MAINLINE_VERSION
  43 == BPFLOADER_MAINLINE_T_VERSION
  44 == BPFLOADER_MAINLINE_U_VERSION
  45 == BPFLOADER_MAINLINE_V_VERSION

[*] udc-dev/udc-release are actually 38, as 37 was some earlier
    udc beta2 (2.1 ifirc), and beta3+ switched to 38

[**] 24Q{1,2}-release (ie. U QPR2+) are technically actually 41,
     but their platform bpfloader no longer even looks in /apex/com.android.tethering/etc/bpf/...
     so it doesn't really matter (although 24Q1's platform
     netbpfload still does, however that is obsoleted by
     this change)

Thus we need to (as minimum for NetBpfLoad):
  BPFLOADER_T_VERSION -> BPFLOADER_MAINLINE_T_VERSION
  BPFLOADER_IGNORED_ON_VERSION -> BPFLOADER_MAINLINE_U_VERSION
to cause these to load appropriately from mainline.

One would perhaps also expect (as minimum for NetBpfLoad):
  BPFLOADER_OBJ_AT_VERSION -> BPFLOADER_MAINLINE_U_VERSION
but (as maximum for platform bpfloader):
  BPFLOADER_OBJ_AT_VERSION -> BPFLOADER_MAINLINE_U_VERSION

However, since the goal is actually for those to load via mainline on T+,
(with the 'old' version of the .o's loading on S via platform bpfloader)
thus one actually needs (as minimum for NetBpfLoad):
  BPFLOADER_OBJ_AT_VERSION -> BPFLOADER_MAINLINE_T_VERSION
and (as maximum for platform bpfloader):
  BPFLOADER_OBJ_AT_VERSION -> BPFLOADER_T_VERSION

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I4b688692ffca0db7ead20cefd9e7e892ca92c70a

Maciej Żenczykowski   commited 2024-03-19 21:33:55 +00:00
11141da623
NetBpfLoad: chose bpfloader version at runtime based on Android OS
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Iee55d9c6f828f05d4096dff2e874abc6c41eadeb

Maciej Żenczykowski   commited 2024-03-18 15:02:53 -07:00
65f7022461
NetBpfLoad - change BPFLOADER_VERSION macro into an argument
(in preparation for this being run-time dynamic)

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Icac8d1afdd3d55b80c232dd5a124a79a9063f350

Maciej Żenczykowski   commited 2024-03-18 14:40:08 -07:00
221b248c6e
netbpfload: is now *always* mainline
since there is no longer a platform netbpfload...
hence we can simplify

Now:
  git grep 'platformNetBpfLoad|apexNetBpfLoad|is_mainline|is_platform'
comes up empty

Test: TreeHugger, manual
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I834656bc4860386b6463db3f6a898d249a05e3a4

Maciej Żenczykowski   commited 2024-03-08 02:19:09 +00:00
08d4b8c27b
NetBpfLoader: create /sys/fs/bpf/loader dir
(instead of in platform bpfloader)

Better to do it earlier so we can use it for
auto/permanently pinned/attached networking programs.

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I202e150e6d48e63ba643c1bd2247cefcdebc07a5

Maciej Żenczykowski   commited 2024-02-29 02:02:19 +00:00
a9209da871
netbpfload: fail if platform exec of apex fails
should never fail, since we now have M-2024-1 module prebuilts:
  $ adb shell ls -d /apex/com.android.tethering*
  /apex/com.android.tethering
  /apex/com.android.tethering@341310230

Test: TreeHugger, manually on a Pixel device
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ib145fba8e3c47bc300f4589723d9c80749770a19

Maciej Żenczykowski   commited 2024-02-28 01:23:32 -08:00
a0b201c433
netbpfload: V+ x86 require 64-bit kernel
For reasoning see:
  https://android-review.googlesource.com/c/platform/system/netd/+/2966803

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: If479b0443a64e0bf98ca89016d42ca37e231c576

Maciej Żenczykowski   commited 2024-02-17 03:47:52 +00:00
7f6a42672d
netbpfload: enable on U QPR2 (aka 24Q1)
(this will land in M-2024-05 ie. May mainline tethering module)

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I250b691eb03751da05ce10d41d6721f4964dd1d5

Maciej Żenczykowski   commited 2024-02-13 00:31:30 +00:00
03ef12cc79
NetBpfLoad - log Tethering Apex version
(super useful for debugging)

Sample output:
  I NetBpfLoad: NetBpfLoad '/apex/com.android.tethering/bin/netbpfload' starting...
  I NetBpfLoad: NetBpfLoad api:10000/34 kver:6010019 platform:0 mainline:1
  D NetBpfLoad: Found Tethering Apex mounted from blockdev /dev/block/dm-55
  I NetBpfLoad: Tethering APEX version 340090000

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Iaf1bc22b02913ea21ff9368abd9933e6ef4017f1

Maciej Żenczykowski   commited 2024-02-09 23:31:17 +00:00
b60599b705
netbpfload: use apex version whenever available
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I8833451acc031b8b2137d23e9a6763851f149081

Maciej Żenczykowski   commited 2024-02-07 01:24:26 +00:00
2fe2db52f6
netbpfload: enable mainline on API V/35+
netbpfload.mainline.rc is derived from:
  initrc-doc/bpfloader-sdk34-14-U.rc,
except that it is 'override' instead of 'updatable' and uses
the apex netbpfload instead of the platform bpfloader.

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I1ecf14e3d927ece136a0669a9b209be7112e55b5

Maciej Żenczykowski   commited 2024-01-31 22:36:39 +00:00
041be52b08
netbpfload: prep work to support <U
proc file writes were only moved from .rc into bpfloader binary in U.

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I20eda71d4f4e16130401d1cfff239c7cd8ea9bf6

Maciej Żenczykowski   commited 2023-10-25 18:40:53 +00:00
f33f12876f
execute platform bpfloader after netbpfload is done
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I447880763bbc506f08b578f862f09be91ab3d14d

Maciej Żenczykowski   commited 2023-10-21 09:20:03 +00:00
58c182291d
move the bpf.progs_loaded = 1 setting back to bpfloader
change of design: we'll call netbpfload before bpfloader

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I2d7a04a1bf1aa1d163f2b3936e2cde61308c4aa4

Maciej Żenczykowski   commited 2023-10-20 15:18:50 -07:00
3f25b4ba8a
netbpfload: remove support for limiting selinux contexts
No need for this, as we simply only support those selinux
contexts (and directories) which are available to networking.

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I35b134c57411f82514b9f7148411f83d3aee1927

Maciej Żenczykowski   commited 2023-10-10 03:46:06 -07:00
af07d6db1f
netbpfload: do not create /sys/fs/bpf/loader subdir
(it's already created by the platform bpfloader)

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ie22f585cab17fd2bded3d97a9cfe1019b792b69d

Maciej Żenczykowski   commited 2023-10-10 03:37:14 -07:00
857399114e
netbpfload: remove support for limiting program types
No need for this, as we simply only support network
program types in the first place.

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I163e21fd4d4089882cf37fc68bc4299003b514d7

Maciej Żenczykowski   commited 2023-10-09 00:32:36 -07:00
fcea70f840
netbpfload: add Android.bp file
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I3af8e7f14de8dd5dd65c40705195332bef114b88

Maciej Żenczykowski   commited 2023-10-09 00:32:26 -07:00
40dfe53313
netbpfload: update date in copyright messages, LOG_TAGs, etc.
Test: N/A
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I8f83d04266caf930701b9725b457333ddae149f2

Maciej Żenczykowski   commited 2023-10-02 22:40:38 -07:00
283c25a07a
netbpfload: remove support for 'vendor'
Test: N/A
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: If088188b4832d37b084846b5ad3db06b8858d856

Maciej Żenczykowski   commited 2023-10-02 22:35:24 -07:00
d6395205bb
netbpfload: remove support for 'platform'
Test: N/A
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ia0c1f55aa78435737699e0dec0bfddbd977e7392

Maciej Żenczykowski   commited 2023-10-02 22:35:03 -07:00
0e4802df20
import bpfloader into p/m/C
These are unmodified files, without history.
Getting these to do something useful will come later.

Generated via:
  cp //system/bpf/bpfloader/bpfloader.rc netbpfload.rc
  cp //system/bpf/bpfloader/BpfLoader.cpp NetBpfLoad.cpp
  cp //system/bpf/libbpf_android/include/libbpf_android.h loader.h
  cp //system/bpf/libbpf_android/Loader.cpp loader.cpp

Change-Id: I1677b899a51e1289a7a9806d6f5c34450b9e7c47

Maciej Żenczykowski   commited 2023-10-02 14:59:10 -07:00
60c159f233