Commit Graph

513 Commits

Author SHA1 Message Date
Hungming Chen
41c971a024 [BOT.5] Move class Ipv6ForwardingRule from IpServer to the coordinator am: 810a381cd4
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11818380

Change-Id: Ibd36f70caf5980c575958f141116bda380fda04a
2020-06-10 06:54:50 +00:00
Hungming Chen
a2f02c617e [BOT.3] Add unit test for polling network stats in the coordinator am: 6442858f9d
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11818379

Change-Id: I9817b26a7e53dcc018fe52c632276bea2f523b68
2020-06-10 06:54:48 +00:00
Hungming Chen
81d15877d4 [BOT.2] Create a coordinator and stats provider to provide tether stats am: d50f53b58a
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11818539

Change-Id: Ic87b80f2856282e30fbba93a85cdfd3e8edb9fad
2020-06-10 06:54:39 +00:00
Hungming Chen
3b29ab8c1b [BOT.1] Add a class ForwardedStats in TetheringUtils am: 020cb554f5
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11818818

Change-Id: I9ec4b9f4018c2c96c1e4ff3c0da9a7509c39ee44
2020-06-10 06:54:36 +00:00
Hungming Chen
810a381cd4 [BOT.5] Move class Ipv6ForwardingRule from IpServer to the coordinator
This is a preparation for moving adding/removing forwarding rules from
IpServer to BpfCoordinator.

Bug: 150736748
Test: atest IpServerTest
Original-Change: https://android-review.googlesource.com/1317234
Merged-In: I85316ef09ff3c9389ded11dcc384493d699da48e
Change-Id: I85316ef09ff3c9389ded11dcc384493d699da48e
2020-06-10 03:11:41 +00:00
Hungming Chen
6442858f9d [BOT.3] Add unit test for polling network stats in the coordinator
Verify that the coordinator could fetch tether stats from BPF maps and
report the network stats to the service.

Bug: 150736748
Test: atest BpfCoordinatorTest
Original-Change: https://android-review.googlesource.com/1305574
Merged-In: Ib1756159a2047c5db7d31359b0f288f840bd1bb1
Change-Id: Ib1756159a2047c5db7d31359b0f288f840bd1bb1
2020-06-10 03:10:48 +00:00
Hungming Chen
d50f53b58a [BOT.2] Create a coordinator and stats provider to provide tether stats
Make BPF tethering offload coordinator, BpfCoordinator,
registers a network stats provider, BpfTetherStatsProvider, and
provide the tethering stats from the BPF map.

Bug: 150736748
Test: new test BpfCoordinatorTest

Original-Change: https://android-review.googlesource.com/1256189
Merged-In: I22e71f87b67668f7e733e4f215d93bf5b2c9380d
Change-Id: I22e71f87b67668f7e733e4f215d93bf5b2c9380d
2020-06-10 03:10:13 +00:00
Lorenzo Colitti
38fa7123d2 Merge "Use the latest stable netd AIDL interface in Tethering." into rvc-dev am: c76256c1ed
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11807347

Change-Id: Ifd88be2016a986ac473ec963e032bda0128261e7
2020-06-10 03:09:52 +00:00
Hungming Chen
020cb554f5 [BOT.1] Add a class ForwardedStats in TetheringUtils
Used to record offload transmitted/received forwarded bytes/packets.

Bug: 150736748
Test: new test BpfTetheringCoordinatorTest
Original-Change: https://android-review.googlesource.com/1306257
Merged-In: Ie8725f95c3ddd5fb3811d479de32d2c1f7dcb493
Change-Id: Ie8725f95c3ddd5fb3811d479de32d2c1f7dcb493
2020-06-10 03:09:36 +00:00
Lorenzo Colitti
601971d2d2 Use the latest stable netd AIDL interface in Tethering.
This is required to use the new BPF tethering APIs that set data
usage limits.

AOSP and master are already using -unstable instead of -V3.
In order not to change master, the Merged-In tag is set to the CL
that switched AOSP (and master) to -unstable.

Test: m
Bug: 150736748
Merged-In: I2d2cedf560319653f67f6b06f7abb0bf66eba91a
Change-Id: Idba29b0fe428ac6552a025dcbe15729739088e9e
2020-06-10 01:07:29 +09:00
TreeHugger Robot
07f6ff7138 Merge "Stop reducing RA advertised ipv6 mtu by 16 - not needed." into rvc-dev am: 36ff42e508
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11620914

Change-Id: I36ff80bcb8e6d9f576c87084fc6feb79001bf594
2020-06-03 04:23:34 +00:00
TreeHugger Robot
36ff42e508 Merge "Stop reducing RA advertised ipv6 mtu by 16 - not needed." into rvc-dev 2020-06-03 04:15:32 +00:00
TreeHugger Robot
2f6b53c989 Merge "Gate exemptFromEentitlementCheck by Network_STACK permission" into rvc-dev am: 905ad0070d
Original change: undetermined

Change-Id: Ie82e3bf2716730f6532e3deb267da3f469f3ab6b
2020-06-02 15:21:44 +00:00
TreeHugger Robot
905ad0070d Merge "Gate exemptFromEentitlementCheck by Network_STACK permission" into rvc-dev 2020-06-02 15:09:56 +00:00
Paul Duffin
23926cc12a Merge "Switch to standard naming scheme" into rvc-dev am: f94d682a9b
Original change: undetermined

Change-Id: Ia56347e16ba637bbd4e23cfa664a7b78fe4aa52f
2020-06-02 11:58:45 +00:00
Paul Duffin
6812c1b1ee Switch to standard naming scheme
Removes use of the special framework-modules naming scheme.

Bug: 155164730
Test: m java
Exempt-From-Owner-Approval: Build cleanup.
Change-Id: I3b78fcbcacc3df787e171d6eedeef1e51b087615
Merged-In: I0c31e2183353dfb5bd49f04f3455cb7b10be6866
(cherry picked from 8b864fb45ce79051437f13c2a19510718ea3b7aa)
2020-06-02 06:53:53 +00:00
markchien
03b52fcfd5 Gate exemptFromEentitlementCheck by Network_STACK permission
Shell has TETHER_PRIVILEGED permission. To avoid any service to adopt
shell identity by lunching service with Shell process, gate
exemptFromEentitlementCheck by NETWORK_STACK.

Bug: 157702014
Test: atest TetheringCoverageTests
Change-Id: I6ddfda23d36ea9981e3e1eb5a87767f452a65852
Merged-In: I6ddfda23d36ea9981e3e1eb5a87767f452a65852
2020-06-02 14:46:06 +08:00
Paul Duffin
408914d348 Merge "Clean up the visibility rules for framework modules" into rvc-dev am: 07555b53a5
Change-Id: I43891381685098f03005500e9049972c1a3c1b39
2020-05-31 14:25:06 +00:00
Paul Duffin
a17cf677b5 Clean up the visibility rules for framework modules
Switching from java_library to java_sdk_library switched the meaning
of the module name from referring to the implementation library to
referring to the stubs. This change updates the visibility rules to
reflect that new meaning.

Visibility rules that were previously set for the java_library have
been moved to the impl_library_visibility property and the special
//visibility:override value has been prepended to prevent it from
inheriting the values from the visibility property.

Visibility rules set for the stubs (via stubs_library_visibility)
property have been moved to the visibility property.

Bug: 155164730
Test: m nothing
Exempt-From-Owner-Approval: Build cleanup
Change-Id: Icc9bc5a9ef86cf7ba0f15c2b2a4abd596ec9f640
2020-05-31 13:45:51 +01:00
Mark Chien
8b5a29a30f Merge "Tethering: ensure downstream prefix do not conflict with upstream" into rvc-dev am: 495145fa63
Change-Id: I87c8cc92a78ba7bd17581c23e1603ac47391e96e
2020-05-30 14:47:07 +00:00
Mark Chien
2ecd333f59 Tethering: ensure downstream prefix do not conflict with upstream
- Add New class PrivateAddressCoordinator to coordinate the private
  address conflict problem.
- Downstream prefix would be random in 192.168.0.0/24 ~
  192.168.255.0/24.
- If new upstream prefix is conflict with existing downstream prefix,
  downstream would be kicked out and it would request a new one.
- The last conflict upstream prefixes would be blacklist. Avoid to
select downstream prefix which is conflict with prefixes in blacklist.

Bug: 130879722
Test: -build, flash, boot
      -atest TetheringTests

Merged-In: Ib45b87bcd9eeb5da03fb7ec90b1af9ca53998cf5
Change-Id: Ib45b87bcd9eeb5da03fb7ec90b1af9ca53998cf5
2020-05-30 03:42:57 +00:00
Maciej Żenczykowski
b5898ad53a Stop reducing RA advertised ipv6 mtu by 16 - not needed.
This effectively reverts:

  commit da0fb1bca8
  Author: Maciej Żenczykowski <maze@google.com>
  Date:   Wed Feb 19 01:24:39 2020 -0800

      Reduce advertised ipv6 mtu by 16 to fit ethernet header

      This is a temporary hack to workaround the inability of current
      kernel's ebpf bpf_skb_change_mode() function to prefix a 14-byte
      ethernet header on to a packet without going over the upstream
      (source, rawip) interface's mtu *before* we bpf_redirect() to
      the downstream (destination, ethernet) interface.

      Test: build, atest, atest TetheringTests
      Bug: 149816401

Test: flashed a flame with new kernel and it works at 1500 mtu
Bug: 149816401
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I76a75a16fa27b47d78816b2f9379ef4bb68beb00
2020-05-30 03:04:11 +00:00
Chalard Jean
04fb018acc Merge "Use Class#getSimpleName instead of KClass#getSimpleName" into rvc-dev am: 88c69840cd
Change-Id: I085ccc0a27d07489daeb91e13c23ccf58e3f7bc0
2020-05-29 09:25:22 +00:00
Chalard Jean
88c69840cd Merge "Use Class#getSimpleName instead of KClass#getSimpleName" into rvc-dev 2020-05-29 09:16:28 +00:00
Mark Chien
86780d3db9 Merge "Extend timeout for requesting tethered interface" into rvc-dev am: 40a9eb779b
Change-Id: I762c9ac79b181a409e6aa2b362665a9f94a62a6d
2020-05-29 06:25:08 +00:00
Mark Chien
40a9eb779b Merge "Extend timeout for requesting tethered interface" into rvc-dev 2020-05-29 06:11:12 +00:00
Paul Duffin
0135bd56b3 Merge "Switch framework-tethering to use java_sdk_library" into rvc-dev am: 5e988a656f
Change-Id: I509bba81369d935cb869e313ac7ae9930fbadbf4
2020-05-28 21:23:58 +00:00
Paul Duffin
cbac8e0b63 Switch framework-tethering to use java_sdk_library
The names of the individual modules do not quite follow the pattern
that java_sdk_library uses so this temporarily sets the following:
    naming_scheme: "frameworks-modules"

That causes java_sdk_library to use a naming scheme that matches the
one used by the individual modules of this. It will be cleaned up
later.

Part of the purpose of the java_sdk_library is to hide the
implementation code and force users of the library to depend on stubs
for a well defined API. Ideally, it would allow access to the
implementation in those cases where it is safe, e.g. from within the
same APEX, or from tests for the implementation. Unfortunately, due to
limitations in the build it does not yet have enough information to
make that decision correctly which means that any code that needs to
compile against the implementation is broken which would prevent us
from converting the module to java_sdk_library.

However, the only way to provide the additional information to allow
the implementation to be correctly exposed is to convert the modules
to java_sdk_library; a cycle.

In order to break that cycle the java_sdk_library creates a special
<module>.impl target which is used directly by tests and any other code
that needs it. Once all the modules have been converted to a
java_sdk_library then we can resolve the limitations in the build and
remove the direct references to <module>.impl.

Test: m Tethering InProcessTethering checkapi
Bug: 155164730
Merged-In: If5c115f482751f9f4b5f047e9e401a18e36799ef
Change-Id: Id1c2e848430c49a2da7402244814cd084f5da77c
2020-05-28 12:50:04 +01:00
paulhu
6c633de59e Use Class#getSimpleName instead of KClass#getSimpleName
KClass#getSimpleName need refer to kotlin-reflect.jar which need
include it in Andorid.bp. However, it's not necessary to use
KClass#getSimpleName but use Class#getSimpleName instead.

Test: atest TetheringTests
Bug: 157527499
Change-Id: I49bc336a276d30152402eba926cc583bc81e8e5c
2020-05-28 19:17:45 +08:00
Treehugger Robot
9c9c600c16 Extend timeout for requesting tethered interface
Extend the timeout to lower the EthernetTetheringTest flaky.

Besides, also explicitly exempt entitlement check in
EtetherntTetheringTest because it do not test tethering upstream
currently. Thus, the tests would not be interrupted by entitlement
check if test SIM is entitlement required.

Bug: 156713866
Test: TetheringCoverageTests, CtsTehteringTest

Merged-In: I45e8e8d737486def9d0de8943ec7f09ca0942a0b
Change-Id: I45e8e8d737486def9d0de8943ec7f09ca0942a0b
2020-05-28 09:17:28 +00:00
Mark Chien
362c4cf543 Merge "Remove platform cert from Tethering tests" into rvc-dev am: 041f00f991
Change-Id: I760c52e95b3eaaf820ba3ddc1d91cf0c7adb16e0
2020-05-27 12:17:26 +00:00
Treehugger Robot
369fd25f79 Remove platform cert from Tethering tests
Bug: 156866746
Test: atest TetheringTests, TetheringCoverageTests
Merged-In: I7c539f1f4a447b5913164b222601c6113c6fe645
Change-Id: I7c539f1f4a447b5913164b222601c6113c6fe645
2020-05-27 09:27:27 +00:00
Mark Chien
d82cfdd7c5 Merge "Adjust TTL for ipv6 tethering" into rvc-dev am: d0355d7d40
Change-Id: Ieab4a987aa056af29491c3d9080257ff7d4e119a
2020-05-26 01:38:23 +00:00
Mark Chien
cd309138ce Adjust TTL for ipv6 tethering
If upstream is cellular, set the TTL in Router Advertisements to
"network-set TTL - 1" for carrier requirement. For other non-cellular
upstream, set TTL as "network-set TTL + 1" to preventing arbitrary
distinction between tethered and untethered traffic.

Bug: 154776299
Test: atest TetheringTests

Merged-In: I7f2696a642f96c6aafb5613b980bf5bcdd08bbda
Change-Id: I7f2696a642f96c6aafb5613b980bf5bcdd08bbda
2020-05-25 13:27:35 +00:00
Mark Chien
e1104843bc Merge "TetheringServiceTest: test caller permission" into rvc-dev am: 5026370372
Change-Id: I222b17b982f9d9aa9bc39ab0285cfce5accab221
2020-05-25 10:52:23 +00:00
Mark Chien
5026370372 Merge "TetheringServiceTest: test caller permission" into rvc-dev 2020-05-25 10:40:03 +00:00
Xiao Ma
5ac55156f5 Merge "Support MirrorLink DHCPDECLINE." into rvc-dev am: 3ab17953c6
Change-Id: I265e59acabf695b2386defc0938d7386c8fe5270
2020-05-25 09:18:48 +00:00
markchien
5232658de2 TetheringServiceTest: test caller permission
Bug: 154869719
Test: atest TetheringTests
Original-Change: https://android-review.googlesource.com/1288503

Fix TetheringServiceTest test WRITE_SETTINGS permission failure

AdoptShellPermissionIdentity can not pass permission check by
Settings#checkAndNoteWriteSettingsOperation. It would compare the caller
uid and its package name. See error below:
1. java.lang.SecurityException:
Specified package com.android.shell under uid 10239 but it is really 2000
2. java.lang.SecurityException:
uid 10245 does not have android.permission.UPDATE_APP_OPS_STATS.

Override the method and test if caller hold WRITE_SETTINGS directly.

Bug: 154869719
Test: TetheringTests, TetheringCoverageTests, NetworkStackNextTests,
NetworkStackCoverageTests
Original-Change: https://android-review.googlesource.com/1313806

Change-Id: I7beea3f011d930e433443ed62d772a3f8cce5d78
Merged-In: I7beea3f011d930e433443ed62d772a3f8cce5d78
2020-05-25 12:07:06 +08:00
Xiao Ma
654013479b Support MirrorLink DHCPDECLINE.
Add the specific implementation of onNewPrefixRequest callback
on IpServer side, also refactor some common code.

Bug: 130741856
Test: atest TetheringTests
Merged-In: If2871bf899cb5890bbfee18063a194c92b6f474e
Change-Id: If2871bf899cb5890bbfee18063a194c92b6f474e
2020-05-18 14:23:13 +00:00
Mark Chien
8efcb8817e Merge "Fix READ_DEVICE_CONFIG permission denied problem in TetheringTests" into rvc-dev am: 1c65357c4b
Change-Id: I7e85c0d8cdcca92943e81f6d08520c8b9e6d6bb3
2020-05-15 00:07:48 +00:00
Treehugger Robot
91b2bda682 Fix READ_DEVICE_CONFIG permission denied problem in TetheringTests
Bug: 156557122
Test: atest TetheringTests

Merged-In: Id9c0397306f3872fc23520d1354f338035a96dc9
Change-Id: Id9c0397306f3872fc23520d1354f338035a96dc9
2020-05-14 17:16:39 +00:00
Mark Chien
b83de9ff49 Merge "Make members final in TetheringService" into rvc-dev am: 73260a5564
Change-Id: I7ec8dbc97ea3ccceac7e2fafc4ab5d53ccd7a630
2020-05-14 05:59:11 +00:00
Mark Chien
73260a5564 Merge "Make members final in TetheringService" into rvc-dev 2020-05-14 05:48:24 +00:00
Nucca Chen
9aba72f7b8 Merge "A minor followup change for BPF offload device option stuff" into rvc-dev am: 8517d037e5
Change-Id: I92b45a1b7d3cb6b05bfb8abd28111d9f0ad3e1a4
2020-05-13 15:19:42 +00:00
Nucca Chen
8517d037e5 Merge "A minor followup change for BPF offload device option stuff" into rvc-dev 2020-05-13 14:58:34 +00:00
Paul Duffin
a6fe2f4797 Merge "Cleanup packages/Tethering/common/TetheringLib" into rvc-dev am: 85f2c79461
Change-Id: I5d84b91a5aa123db4d988beb9ee287e52186e8d8
2020-05-13 14:47:57 +00:00
markchien
c96e106d68 Make members final in TetheringService
1. Move isTetheringSupport logic from TetheringService to Tethering.
2. Small readability improvement in TetheringTest. Also change
config_tether_upstream_automatic from false to true in TetheringTest.
So TetheringTests would default run automatic select upstream flow
instead of selecting by legacy perferred network type list.

Bug: 153609486
Test: atest TetheringTest
Change-Id: I5a82a6347f62d3a7031db5c56e8e0c8530dafd8f
Merged-In: I5a82a6347f62d3a7031db5c56e8e0c8530dafd8f
2020-05-13 22:12:15 +08:00
Paul Duffin
b016744a1a Cleanup packages/Tethering/common/TetheringLib
Merge the otherwise unused tethering-aidl-interfaces into
framework-tethering.

This is in preparation for converting to use java_sdk_library.

Bug: 155164730
Test: m droid
Merged-In: I4583539d11ba69320aa5a0dfcfee072c81affac2
Change-Id: I4583539d11ba69320aa5a0dfcfee072c81affac2
(cherry picked from commit 267dd95c3e93f75c42c3f4e5cf576829b528f6c2)
2020-05-13 13:57:12 +01:00
Mark Chien
ed6b8c51fa Merge "Add test for OffloadHardwareInterface" into rvc-dev am: 5d846418a7
Change-Id: I021c6d8b33c68ac72988233075bce37f61c2c926
2020-05-13 12:30:08 +00:00
Nucca Chen
acc87c875d Merge "Add tether BPF offload config to device config and resource" into rvc-dev am: 224b8bf27e
Change-Id: I93453a575a7d28ba9d5116acc9357afea0f100fe
2020-05-13 10:12:44 +00:00