Commit Graph

1435 Commits

Author SHA1 Message Date
Treehugger Robot
bdd4e2dbcc Merge "Use networkstack_client instead of aidl_interface" am: 319064f284 am: 8cd484f656 am: 8f356c1608
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1560399

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I5bfc10d7d2e8d8f10dd2daac8eb2f3c167ea94cf
2021-02-18 15:48:26 +00:00
Treehugger Robot
c2328313c4 Merge "Add tethering-module-sdk build target." am: c4127ef16c am: f6f3456ae7 am: 9b23f59e33
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1587662

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Idce0adc840a9c4f3bf9b8a000a7159eb792371e8
2021-02-18 15:48:13 +00:00
Treehugger Robot
8f356c1608 Merge "Use networkstack_client instead of aidl_interface" am: 319064f284 am: 8cd484f656
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1560399

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I8695d8cc740df456cb1cc9e38dbfdb4432452f7e
2021-02-18 15:28:40 +00:00
Treehugger Robot
9b23f59e33 Merge "Add tethering-module-sdk build target." am: c4127ef16c am: f6f3456ae7
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1587662

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I8ebd51517170934130e27c28b86f794081cb5198
2021-02-18 14:58:23 +00:00
Treehugger Robot
319064f284 Merge "Use networkstack_client instead of aidl_interface" 2021-02-18 13:31:54 +00:00
Treehugger Robot
c4127ef16c Merge "Add tethering-module-sdk build target." 2021-02-18 12:05:46 +00:00
Treehugger Robot
137e40cc1d Merge "Set updateable:false explicitly in apex rules." am: c72a6cae30 am: 89cd911569 am: d201e37561
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1590053

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Icef31cdc3bbc38b3f1648552caa9a940ff97b526
2021-02-18 10:29:28 +00:00
Maciej Żenczykowski
d957e1e676 ebpf offload - rename PUNT/DROP to TC_PUNT/TC_DROP am: e982f091e1 am: 4248054e08 am: aedd2eacd8
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1591369

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ia8f9fefdc62f58b9547c8d7b39d9aa1ab784c0bd
2021-02-18 10:29:23 +00:00
Maciej Żenczykowski
c667f5e907 ebpf offload - add support for tethering of ipv4 udp am: e4a726a5c6 am: 1f6bed0155 am: 2ef44d9cef
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1591368

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Id5d6f075b4453556e62df9cf510af0e4022b7f8e
2021-02-18 10:28:49 +00:00
Treehugger Robot
d201e37561 Merge "Set updateable:false explicitly in apex rules." am: c72a6cae30 am: 89cd911569
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1590053

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I073da66ae98c1de75870ba2da1e5504a319902b2
2021-02-18 10:24:59 +00:00
Maciej Żenczykowski
aedd2eacd8 ebpf offload - rename PUNT/DROP to TC_PUNT/TC_DROP am: e982f091e1 am: 4248054e08
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1591369

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ie259ca96bd3e0e693cda96c89825675f0a2879b0
2021-02-18 10:24:50 +00:00
Maciej Żenczykowski
2ef44d9cef ebpf offload - add support for tethering of ipv4 udp am: e4a726a5c6 am: 1f6bed0155
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1591368

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ib22a34dd4c0f1c072ccb2120eaeda51da79a44a3
2021-02-18 10:10:05 +00:00
Treehugger Robot
c72a6cae30 Merge "Set updateable:false explicitly in apex rules." 2021-02-18 09:30:33 +00:00
Maciej Żenczykowski
6895171a2a Merge "ebpf offload - do L4 header present check earlier" am: 2c0edb112f am: 9b833afa0a am: 63a3a118b9
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1591367

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Id2265f3af2e6c96a88c70c19a1342071a7cdca08
2021-02-18 08:32:31 +00:00
Maciej Żenczykowski
63a3a118b9 Merge "ebpf offload - do L4 header present check earlier" am: 2c0edb112f am: 9b833afa0a
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1591367

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ida5efa2217eb8f25eb4a7a7b73b783aa56469e60
2021-02-18 07:52:08 +00:00
Maciej Żenczykowski
e982f091e1 ebpf offload - rename PUNT/DROP to TC_PUNT/TC_DROP
because it is not appropriate for use in XDP programs

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ibd5dac9676bae7aa5f10fbcfd777291f72bec819
2021-02-18 06:40:33 +00:00
Maciej Żenczykowski
e4a726a5c6 ebpf offload - add support for tethering of ipv4 udp
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I6229e33cb219e9acd14f5b880cfa2ea0a34442f4
2021-02-18 06:38:36 +00:00
Maciej Żenczykowski
82ee26be75 ebpf offload - do L4 header present check earlier
and more importantly unconditionally.  This requires less effort
on the part of the in-kernel bpf verifier.

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ibaa94bf096fc81c4d984dfabf515131b1c81ef09
2021-02-18 06:23:32 +00:00
Mathew Inwood
adfc933979 Set updateable:false explicitly in apex rules.
Currently, this is the default so this is a no-op,
But the default is changing to true.

Bug: 180375550
Test: Treehugger
Change-Id: Ib841e474ab2b2ff2b54c160bb06c3bbbeea92675
2021-02-16 14:58:27 +00:00
Maciej Żenczykowski
717ad84e6a offload ebpf - introduce 4.14+ ipv4 forwarding programs am: 36867351ec am: f335d68cb8 am: 6224c0e30e
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1588019

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I03fe8635ca089f7fab9ddca890599169d38b1441
2021-02-16 08:52:38 +00:00
Jeongik Cha
d05f990649 Use networkstack_client instead of aidl_interface
Bug: 150578172
Test: m
Change-Id: Ib5f28db973eb80942faafe1c1c5ddcaab54bf980
2021-02-16 08:20:12 +00:00
Maciej Żenczykowski
6224c0e30e offload ebpf - introduce 4.14+ ipv4 forwarding programs am: 36867351ec am: f335d68cb8
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1588019

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ie736bc216988be768dad0f7229fbc51f4d7cc40e
2021-02-16 08:20:04 +00:00
Maciej Żenczykowski
36867351ec offload ebpf - introduce 4.14+ ipv4 forwarding programs
We've backported the necessary support to all 4.14+ ACK kernels,
but we can't actually enforce that these changes will be picked
up by all devices.  Thus we can only make the full featured
implementations optional on [4.14..5.8) kernels, with a tcp-only
version for those 4.14+ devices where the full featured version
fails to load.

Note: there's still a fair bit of implementation work left
in the do_forward4() function itself.  This is really just
the skeleton.

Test: atest, TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: If78123e00d55a77f2ecd7da1547581797e23f9b2
2021-02-16 05:48:55 +00:00
Maciej Żenczykowski
3a03e10b4a Merge "offload ebpf - do_forward4() - introduce updatetime argument" am: d74918c6d2 am: 623479f329 am: be444669e3
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1588018

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I5d48503b3c2367271448c928cd0ba357db5e2f6b
2021-02-16 02:24:27 +00:00
Maciej Żenczykowski
be444669e3 Merge "offload ebpf - do_forward4() - introduce updatetime argument" am: d74918c6d2 am: 623479f329
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1588018

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I696c7f791dc805b71b13c64cc442675f45803ce9
2021-02-15 13:33:32 +00:00
Maciej Żenczykowski
914da3d1ba tethering offload ebpf - lower requirement from 5.9 to 5.8 am: b0ac41f0cd am: c456856971 am: 5d6f744551
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1588017

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I24f542f0096677320f1b0f30a55a884a2fa1e5fc
2021-02-15 12:36:33 +00:00
Maciej Żenczykowski
aefa0950b5 offload ebpf - do_forward4() - introduce updatetime argument
This will facilitate providing a tcp-only version of the programs
which due to TCP's very long timeouts will not need to use the
Linux 5.8+ bpf_ktime_get_boot_ns() helpers.

Test: atest, TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I1e49b6758d3754782ac6f8820e0c15aa20e4c61d
2021-02-15 12:33:01 +00:00
Maciej Żenczykowski
5d6f744551 tethering offload ebpf - lower requirement from 5.9 to 5.8 am: b0ac41f0cd am: c456856971
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1588017

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I2a6be5ac4bbc887ef11b4fc8110115e11e947fa3
2021-02-15 12:20:22 +00:00
Maciej Żenczykowski
b0ac41f0cd tethering offload ebpf - lower requirement from 5.9 to 5.8
As this is the actual version that is required,
ie. the version that supports bpf_ktime_get_boot_ns() helper.

Test: atest, TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I2ea4830597a0bed53950a5d0c483a47208959f35
2021-02-14 22:24:34 -08:00
Hai Zhang
6d71f109bc Add tethering-module-sdk build target.
Bug: 177884752
Test: m tethering-module-sdk
Change-Id: Idd4e6743001a6402f6a5dd6832601b08d7cc0236
2021-02-14 06:38:26 +00:00
Lorenzo Colitti
c785e87cb5 Merge "Load JNI in all classes that have native methods." am: af97e51c01 am: ceafffa6c0 am: 531fa9e0cc
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1581528

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I140bce0fdff60614b246c67ffdcb724389532612
2021-02-12 06:14:22 +00:00
Treehugger Robot
0f8b31c929 Merge "fix TetheringCoverageTests" am: 6fc8229f16 am: 31ce8ad94d am: 55e1cc23c6
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1584755

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ic8d683a42f73acfad318119e34e2e28fa87127ce
2021-02-12 06:14:17 +00:00
Lorenzo Colitti
531fa9e0cc Merge "Load JNI in all classes that have native methods." am: af97e51c01 am: ceafffa6c0
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1581528

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I21f1af4785d1ee540ba6dea8416c2538e60a9228
2021-02-12 05:49:17 +00:00
Treehugger Robot
55e1cc23c6 Merge "fix TetheringCoverageTests" am: 6fc8229f16 am: 31ce8ad94d
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1584755

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: If61cbbe8729451b53aea976540d388868cdde01a
2021-02-12 05:48:49 +00:00
Lorenzo Colitti
af97e51c01 Merge "Load JNI in all classes that have native methods." 2021-02-12 03:19:00 +00:00
Maciej Żenczykowski
c92e8ce636 fix TetheringCoverageTests
Test: atest TetheringCoverageTests now passes, TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I0d83de14784f323400a83ce282cae1a3e7b4b396
2021-02-11 16:06:46 -08:00
Lorenzo Colitti
cdde4d0c32 Add IPv4 counters. am: d561b7f67c am: d2956a1964 am: 17b18ca6c2
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1580287

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I56217d9b73e22372e8bdf61e96fa99593b324c24
2021-02-10 07:45:58 +00:00
Lorenzo Colitti
17b18ca6c2 Add IPv4 counters. am: d561b7f67c am: d2956a1964
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1580287

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ic66884108ae7fde4c1688847f7b2092c8d6e941d
2021-02-10 06:54:53 +00:00
Lorenzo Colitti
6800811597 Load JNI in all classes that have native methods.
The tethering module uses JNI in various classes, but only calls
System.loadLibrary in TetheringService#makeTethering. This means
that:

1. Any test that uses a class that uses JNI must load the
   library itself.
2. Any code that runs before TetheringService#makeTethering could
   potentially crash if it uses JNI. We may never have such code
   though.

Instead, make every class that has a native method load the JNI
library itself at static initialization time. This guarantees
that the class will have the JNI code available in any context
(production, test, etc.)

System.loadLibrary is documented not to do anything if called
more than once with the same library name:
https://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html#loadLibrary(java.lang.String)

and the implementation has a lock so it is safe to call from
multiple threads concurrently.

Test: builds, boots, tethering starts
Test: atest TetheringCoverageTests
Change-Id: I9c0147ae9a28877f416aaff387b426d304ae552d
2021-02-10 15:43:38 +09:00
Lorenzo Colitti
d8f76bb096 Dump counters in "dumpsys tethering bpf". am: 4e92da06fa am: e033a1e543 am: 7081e9f184
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1575051

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I7d74c663b554f5f6f1562d4e6dc2a13f67adb9c0
2021-02-10 06:19:33 +00:00
Lorenzo Colitti
7081e9f184 Dump counters in "dumpsys tethering bpf". am: 4e92da06fa am: e033a1e543
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1575051

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ib449565583901259f0c21764d566637eace5f5f8
2021-02-10 05:31:03 +00:00
Lorenzo Colitti
d561b7f67c Add IPv4 counters.
Test: dumpsys tethering bpf
Change-Id: Ie21fee8ad12430ecd21c3903587d25b8dd2a96c4
2021-02-10 04:44:35 +00:00
Lorenzo Colitti
4e92da06fa Dump counters in "dumpsys tethering bpf".
This CL adds the counters collected by the tethering programs to
the output of "dumpsys tethering bpf". The counter names are
fetched by JNI code at startup and then read by the debugging
code on demand.

Example from my device:

  Forwarding errors:
    TCP_CONTROL_PACKET: 67
    NON_GLOBAL_SRC: 13
    NON_GLOBAL_DST: 17
    LOCAL_SRC_DST: 7

Test: manual (debug-only code)
Change-Id: I7ec7992612556a4bca5f1b6bb52c655d6d870201
2021-02-10 04:43:03 +00:00
Lorenzo Colitti
6281d65f61 Don't leak map fds in BpfCoordinator#dump. am: 555472a186 am: a6c9626b5d am: a47891732f
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1581523

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I7f92f0c2768775ab51018ec76feef9cab6e273c4
2021-02-09 23:43:52 +00:00
Lorenzo Colitti
a47891732f Don't leak map fds in BpfCoordinator#dump. am: 555472a186 am: a6c9626b5d
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1581523

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Id5a3c980a0f9409b9342672935b9567c89422305
2021-02-09 22:50:01 +00:00
Lorenzo Colitti
555472a186 Don't leak map fds in BpfCoordinator#dump.
Currently, the dump methods open BpfMap objects and never close
them. This leaks filedescriptors, and if dump is called often
enough, will crash the networkstack process.

Fix this by using try-with-resources statements that
automatically close the map when exiting the try block.

Change the signature of BpfMap#close from "throws Exception" to
"throws ErrnoException" since it does not throw any other type
of checked exceptions.

Test: "lsof | grep network_st" while running "dumpsys tethering bpf" in a loop
Change-Id: I66c407454c2715bf41bf3a2e81bd582f9ea5a905
2021-02-09 23:30:25 +09:00
Lorenzo Colitti
c0cdf4c0dc Merge "offload - finish ipv4 tethering" am: 4431655a4d am: 76a663683c am: 29f8e3550b
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1562765

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I93b9040903b96f79144cb591677fed22fa9edafc
2021-02-09 13:54:08 +00:00
Lorenzo Colitti
29f8e3550b Merge "offload - finish ipv4 tethering" am: 4431655a4d am: 76a663683c
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1562765

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I386c9e5230fb978856437a9afc0b3920edfcf051
2021-02-09 13:00:08 +00:00
Lorenzo Colitti
4431655a4d Merge "offload - finish ipv4 tethering" 2021-02-09 11:08:06 +00:00
Lorenzo Colitti
e2cecc4349 Improve BPF tethering counters. am: 72ec3ba88a am: 66609d3f3e am: b9b629f273
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1580284

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ic04ac7bf95106f5f1b02ae360f4b90da68fe7e5a
2021-02-09 07:50:47 +00:00