Commit Graph

1512 Commits

Author SHA1 Message Date
Remi NGUYEN VAN
f0f0ccad71 Add ServiceConnectivityResources to in-process APEX
The APK was added to the standard APEX, but is missing in the
in-process APEX.

Bug: 182557971
Ignore-AOSP-First: corresponding change is not yet in AOSP
Change-Id: Ibf982ceb5f0fd61c822399e3eeeb1ef5e500604d
Test: m
2021-03-12 15:08:03 +00:00
Maciej Żenczykowski
546e9fa694 Merge changes from topic "attach_bpfprog_in_mainline" am: 3357388742 am: 5254c0c243 am: e9aa6a316d
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1607973

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ia2c0dc2f0c5b93b9cf339ab6a1716ca57c0b49d5
2021-03-12 02:33:10 +00:00
Hungming Chen
7c1973c98d [NFCT.TETHER.14] Clear the BPF maps in BpfCoordinator ctor am: 499d3cac73 am: 129077bd58 am: 9dba544999
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1623669

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Icc33ff9ddc0306bf58df81ff9f6e9756817a1534
2021-03-12 02:33:07 +00:00
Remi NGUYEN VAN
a5cc2cdee5 Merge "Add ServiceConnectivityResources to tethering" into sc-dev 2021-03-12 02:10:20 +00:00
Maciej Żenczykowski
e9aa6a316d Merge changes from topic "attach_bpfprog_in_mainline" am: 3357388742 am: 5254c0c243
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1607973

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I8db0e2be24559a4b7b9ec51452ccb74ef51ae6a6
2021-03-12 01:37:01 +00:00
Hungming Chen
9dba544999 [NFCT.TETHER.14] Clear the BPF maps in BpfCoordinator ctor am: 499d3cac73 am: 129077bd58
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1623669

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I63ab27a10a04180ac9faf038350c36ff7aec71fe
2021-03-12 01:37:00 +00:00
Hungming Chen
129077bd58 [NFCT.TETHER.14] Clear the BPF maps in BpfCoordinator ctor am: 499d3cac73
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1623669

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I54098527fb72260c01c78d0b49282da4257f4a24
2021-03-12 01:01:36 +00:00
Maciej Żenczykowski
3357388742 Merge changes from topic "attach_bpfprog_in_mainline"
* changes:
  [NFCT.TETHER.15] Attach BPF program in the mainline module
  [NFCT.TETHER.14] Clear the BPF maps in BpfCoordinator ctor
2021-03-12 00:21:01 +00:00
Hungming Chen
3dbd4a1cc4 [NFCT.TETHER.15] Attach BPF program in the mainline module
Migrate Maze's BPF program attaching and detaching functions from
system/netd/server/OffloadUtils.{c, h} to tethering module.

Test: atest TetheringCoverageTests
Test case #1:
Enable WiFi hotspot and check tc filters are added or removed on both
wlan1 and rmnet_data#.

$ adb shell tc filter show dev wlan1 ingress
filter protocol ipv6 pref 1 bpf chain 0
filter protocol ipv6 pref 1 bpf chain 0 handle 0x1
prog_offload_schedcls_tether_upstream6_ether:[*fsobj] direct-action
not_in_hw id 2 tag 7cf020cc09a7c982
filter protocol ip pref 2 bpf chain 0
filter protocol ip pref 2 bpf chain 0 handle 0x1
prog_offload_schedcls_tether_upstream4_ether:[*fsobj] direct-action
not_in_hw id 7 tag 2f87d55b636c082c

$ adb shell tc filter show dev rmnet_data2 ingress;
filter protocol ipv6 pref 1 bpf chain 0
filter protocol ipv6 pref 1 bpf chain 0 handle 0x1
prog_offload_schedcls_tether_downstream6_rawip:[*fsobj] direct-action
not_in_hw id 3 tag 8b3885b75bd261de
filter protocol ip pref 2 bpf chain 0
filter protocol ip pref 2 bpf chain 0 handle 0x1
prog_offload_schedcls_tether_downstream4_rawip:[*fsobj] direct-action
not_in_hw id 6 tag b1c9478c91f8df9a

Test case #2:
Enable USB tethering and check tc filters are added or removed on both
rndis0 and rmnet_data#.

Test case #3:
Enable WiFi and USB tethering and check tc filter are added or removed
on rndis0, wlan1 and rmnet_data#.

Change-Id: I3f9a65043271bc8f5bf1b82ae505c471625ca9de
2021-03-11 17:49:42 +08:00
Maciej Żenczykowski
ceb0a6e7ba ebpf offload - beginnings of xdp implementation am: 90b81ac174 am: e416c69f76 am: f4404beddc
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1622560

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ief7ff34243272dceb73e2d3ca8c5e19e45c70851
2021-03-10 15:44:11 +00:00
Maciej Żenczykowski
dac9960486 ebpf offload - make it possible to boot on Q era 4.14/4.19 kernels am: acddd4f183 am: 973a01cae3 am: cffaf88a09
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1625739

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Id44cc26be89deeff4c3f6cb816cf794c9abf25d5
2021-03-10 15:42:55 +00:00
Maciej Żenczykowski
1936456537 ebpf offload - noop program reorder am: 2278aed207 am: 4e071fff2a am: b2dc6cfa40
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1625238

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I7058b6b5c320e7fbe7071130e373f9e620b15013
2021-03-10 15:42:53 +00:00
Maciej Żenczykowski
f4404beddc ebpf offload - beginnings of xdp implementation am: 90b81ac174 am: e416c69f76
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1622560

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ib8850fb10af5c8fa80743d51cbc514f67b44ffd0
2021-03-10 14:58:35 +00:00
Maciej Żenczykowski
cffaf88a09 ebpf offload - make it possible to boot on Q era 4.14/4.19 kernels am: acddd4f183 am: 973a01cae3
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1625739

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I4c57851d064079ee668b77949e7cade8eefc8238
2021-03-10 14:58:00 +00:00
Maciej Żenczykowski
f2c7fe1437 ebpf offload - make it possible to boot on Q era 4.14/4.19 kernels am: acddd4f183 am: 973a01cae3
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1625739

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I95c85376c218ca29aee62c0aab5cca097cfa298f
2021-03-10 14:57:59 +00:00
Maciej Żenczykowski
b2dc6cfa40 ebpf offload - noop program reorder am: 2278aed207 am: 4e071fff2a
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1625238

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I47d783a5000bb63ee98886377a577c6229645554
2021-03-10 14:57:58 +00:00
Maciej Żenczykowski
9009cc521d ebpf offload - noop program reorder am: 2278aed207 am: 4e071fff2a
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1625238

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I72e3bcb1733f9c864915e13e0849d8e9773e5c82
2021-03-10 14:57:57 +00:00
Maciej Żenczykowski
90b81ac174 ebpf offload - beginnings of xdp implementation
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I6956e78bd325b63dc6dc813440f9f80c29aada36
2021-03-10 14:02:50 +00:00
Maciej Żenczykowski
acddd4f183 ebpf offload - make it possible to boot on Q era 4.14/4.19 kernels
by marking programs as optional and providing appropriate stub implementations.

Test: TreeHugger
Bug: 181045068
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I021e7bcbfe4236242f517f067f89777fc08ecd8d
2021-03-10 13:59:46 +00:00
Maciej Żenczykowski
2278aed207 ebpf offload - noop program reorder
This is just a cut'n'paste reordering of programs.
Goal is to put rawip programs above ether ones.
This will enable next change to be easier to read.

Test: TreeHugger
Bug: 181045068
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Icebf4bf0505136e97b7b6950fb0b790582eb495e
2021-03-10 13:59:00 +00:00
Aaron Huang
4ad0069d81 Merge "Update sources of Tethering module since it is renamed" into sc-dev 2021-03-10 04:40:56 +00:00
Aaron Huang
e831688645 Update sources of Tethering module since it is renamed
framework-tethering-shared-srcs is named to
framework-connectivity-shared-srcs so update
source section to include correct file group.

Ignore-AOSP-First: changes in topic has conflicts in sc-dev
Bug: 177046265
Test: FrameworksNetTests
Change-Id: I81e2af0cc3b37af16b03c1288eb0591b7ed65cc4
2021-03-10 04:04:03 +00:00
Lorenzo Colitti
b13c85aac7 Make TestConnectivityManager send CONNECTIVITY_ACTION. am: 57957fe8a1 am: 138c2578a8 am: e8937ed7c2
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1611319

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I8a6503f8c6f0abad2dd8862fcdb7b91cbcf533a3
2021-03-09 18:22:34 +00:00
Lorenzo Colitti
e8937ed7c2 Make TestConnectivityManager send CONNECTIVITY_ACTION. am: 57957fe8a1 am: 138c2578a8
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1611319

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I65d61ecc50dc7fc66367a5db52cca07024455ec3
2021-03-09 17:57:31 +00:00
Lorenzo Colitti
52dbfe5394 Make TestConnectivityManager send CONNECTIVITY_ACTION. am: 57957fe8a1 am: 138c2578a8
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1611319

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ifa368ff8aa5b9729406df1ff4c431ca6993c9b09
2021-03-09 17:57:17 +00:00
Remi NGUYEN VAN
affd94b26d Add ServiceConnectivityResources to tethering
The resource package is used by service-connectivity to load its own
resources.

Bug: 182125649
Test: atest FrameworksNetTests
Ignore-AOSP-First: Need to merge manually in relevant branches

Change-Id: I3c7fc6285f10318ecef05a64e1179054bb831d99
2021-03-09 17:47:49 +09:00
Hungming Chen
499d3cac73 [NFCT.TETHER.14] Clear the BPF maps in BpfCoordinator ctor
Needed while the system server has recovered from crash.

Test: atest TetheringCoverageTests
Change-Id: Idbed4887f5396537f0d0df97de8b482266dffbb7
2021-03-09 16:11:22 +08:00
Lorenzo Colitti
57957fe8a1 Make TestConnectivityManager send CONNECTIVITY_ACTION.
The tethering code still depends on CONNECTIVITY_ACTION for
upstream selection. Make TestConnectivityManager send these
broadcasts.

Bug: 173068192
Test: atest TetheringTests
Change-Id: I6a32e99fafef9d6d2abec438ffc68164ab4c5bdf
2021-03-09 01:16:35 +09:00
Maciej Żenczykowski
cb7d5bd200 Merge "bpf offload - add a new 'tether_xdp_devmap'" am: b908e0c867 am: f5a9d32a73 am: b6cf0d8785
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1612879

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I5b47fb6df05d41232eddcf41989d1b19d05dc1d8
2021-03-05 07:27:32 +00:00
Lorenzo Colitti
ae0e48cd66 Merge changes I968bfa76,Id46f1e5b,Iff9b6212,I6bdb090a am: bc87f8a9d9 am: 69b2de6e5a am: d1ea11ed6a
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1611318

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I337ec1a2b440f81a3e54a6a79e58b46d9d7e4def
2021-03-05 07:26:47 +00:00
Maciej Żenczykowski
b6cf0d8785 Merge "bpf offload - add a new 'tether_xdp_devmap'" am: b908e0c867 am: f5a9d32a73
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1612879

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: If362ffe9a8ed9018e4b6a9349987f7abe6d7338a
2021-03-05 07:02:21 +00:00
Maciej Żenczykowski
993ede170f Merge "bpf offload - add a new 'tether_xdp_devmap'" am: b908e0c867 am: f5a9d32a73
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1612879

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ia43b04a9974288f6447e453cd645831b8efe6ca6
2021-03-05 07:02:16 +00:00
Lorenzo Colitti
d1ea11ed6a Merge changes I968bfa76,Id46f1e5b,Iff9b6212,I6bdb090a am: bc87f8a9d9 am: 69b2de6e5a
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1611318

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I0260aa93cbf2e8179de8bb7a13b65ca47fb0493d
2021-03-05 07:02:12 +00:00
Lorenzo Colitti
4d89e4899b Merge changes I968bfa76,Id46f1e5b,Iff9b6212,I6bdb090a am: bc87f8a9d9 am: 69b2de6e5a
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1611318

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ief6f2a603bdc60b45f791a2d8f0b97befec44f7a
2021-03-05 07:02:11 +00:00
Maciej Żenczykowski
b908e0c867 Merge "bpf offload - add a new 'tether_xdp_devmap'" 2021-03-05 06:03:02 +00:00
Lorenzo Colitti
66287d3551 Use TestConnectivityManager in TetheringTest.
The changes required are:
- Change all usages of when(mCm.method()).thenReturn(...) to
  doReturn(...).when(mCm).method() because spies must use the
  latter syntax.
- In setDataSaverEnabled, set the mocked return value before
  sending the broadcast. Otherwise, the first time the method is
  called, the spy will attempt to send the broadcast, and will
  crash because it does not have permission to do so.

This does not do anything useful yet, but it will be used in
future CLs.

Bug: 173068192
Test: atest TetheringTests
Change-Id: I968bfa76ead25b2d45ed1c0e8ede32df81401579
2021-03-04 23:06:52 +09:00
Lorenzo Colitti
b424a2794e Support building different UpstreamNetworkState test objects.
TetheringTest is only able to build UpstreamNetworkState objects
for mobile Internet networks. Support building wifi and dun
versions as well.

Bug: 173068192
Test: atest TetheringTests
Change-Id: Id46f1e5b65dbe04e84a5f56343821af260e2539e
2021-03-04 23:02:40 +09:00
Lorenzo Colitti
bf69824479 Change TetheringTest's UpstreamNetworkMonitor from mock to spy.
This allows future tests that want to exercise the interactions
between Tethering and UNM to do so.

Also verify what happens when UNM is initialized, and in setUp,
capture the NetworkCallback it files to track the default
network, so tests can send it NetworkCallbacks. (This callback
is only ever filed once.)

Test: test-only change
Change-Id: Iff9b62120cced41cc61263bfd4fa34f575d0ac00
2021-03-04 23:02:40 +09:00
Lorenzo Colitti
d025c562f0 Make TestConnectivityManager usable by other tethering tests.
Currently, this class is a static inner class of
UpstreamNetworkMonitorTest. Extract it to its own top-level class
so it can be used by other tests.

Bug: 173068192
Test: atest TetheringTests
Change-Id: I6bdb090a99781ac2530b3924ac5c4cf78de315b0
2021-03-04 23:02:40 +09:00
Maciej Żenczykowski
db2cff5cdf bpf offload - add a new 'tether_xdp_devmap'
It will map device ifindex to itself (but note that internally in the
kernel this is optimized into a map from ifindex to direct device
pointer), but only for xdp transmit capable devices (other devices
will not have an entry).

This will allow the use of bpf_redirect_map() from xdp tethering programs.

Test: atest, TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I29684e6761727d1115e9b4d75486eccbca3d5e33
2021-03-01 23:42:43 -08:00
Remi NGUYEN VAN
86301b1ae1 Merge "Add dependency on system API in connectivity" am: bc1bdf4a85 am: 68b759c2c1
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1552320

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I98afe8d83f2a111b0a0bc3bc1081fb35ea31a328
2021-03-01 02:25:13 +00:00
Remi NGUYEN VAN
bc1bdf4a85 Merge "Add dependency on system API in connectivity" 2021-03-01 01:07:19 +00:00
Remi NGUYEN VAN
cede7f6032 Merge "Add flag to force choosing upstreams automatically" am: e43c960d50 am: a474b9edfa am: 62a1ba2d1b
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1596352

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Id88654e5344f3be87885d4214189d5c90f66ae6d
2021-02-26 11:13:39 +00:00
Treehugger Robot
7eab6c5c9f Merge "ebpf offload: bump size of ipv4 tethering maps" am: fcd5ec1971 am: f1a420808c am: f14f0783aa
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1608893

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Icabf533dee7e6f9d57e23f4e4e58d40e8a714aa5
2021-02-26 11:13:33 +00:00
Treehugger Robot
bf45229ed9 Merge "ebpf offload: mark as critical for tethering not netd" am: 4945772ba7 am: 9ea87036a8 am: 0057b06d90
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1607252

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I7cf9212f5d8e0c35303406876ff7e772725dd7c0
2021-02-26 11:13:17 +00:00
Remi NGUYEN VAN
74b274424a Add dependency on system API in connectivity
The system API are moved to the connectivity module: add dependency on
the stubs from framework-tethering.

This only allows tethering to depend on system API defined by the
connectivity classes, not on any private code, even if they are
eventually bundled in the same APEX.

Bug: 171540887
Test: m

Merged-In: Iebfb3e01c5d2480e84edcfc76cf489520bd60237
Merged-In: Ic2491f04880ff66abc3b2d3aaee6168e18f6d68a
(clean cherry-pick from internal branch)

Change-Id: Iebfb3e01c5d2480e84edcfc76cf489520bd60237
2021-02-26 19:36:06 +09:00
Remi NGUYEN VAN
af4b10e326 Merge "Add flag to force choosing upstreams automatically" am: e43c960d50 am: a474b9edfa
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1596352

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ib53feb1dce0a6f2c84d493fc5cbfa248320ecea1
2021-02-26 10:02:30 +00:00
Remi NGUYEN VAN
62a1ba2d1b Merge "Add flag to force choosing upstreams automatically" am: e43c960d50 am: a474b9edfa
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1596352

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Iaef23446e43ef557521785a23e5dcf81655d7f05
2021-02-26 10:01:35 +00:00
Remi NGUYEN VAN
77bb91ce04 Merge "Add dependency on system API in connectivity" into sc-dev 2021-02-26 09:20:23 +00:00
Treehugger Robot
c6551d73b7 Merge "ebpf offload: bump size of ipv4 tethering maps" am: fcd5ec1971 am: f1a420808c
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1608893

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I325505e6f5431134e6b5dc336a5e120479157d29
2021-02-26 09:15:06 +00:00