Commit Graph

391 Commits

Author SHA1 Message Date
Treehugger Robot
734076036d Merge "Address comment from aosp/1232197" am: 7e6ff1bde1 am: a87d030207 am: 5a18fd3d2c am: 30543064b5 am: 99a9f03255
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1318288

Change-Id: Ib1c65c3f9880792b49813bb6871f0eb8f0dcb880
2020-06-09 18:28:16 +00:00
Treehugger Robot
5a18fd3d2c Merge "Address comment from aosp/1232197" am: 7e6ff1bde1 am: a87d030207
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1318288

Change-Id: Iabdcc3b95239019a625e9823f70c30a9bded706a
2020-06-09 17:59:03 +00:00
Treehugger Robot
7e6ff1bde1 Merge "Address comment from aosp/1232197" 2020-06-09 17:19:33 +00:00
Treehugger Robot
23d3edbde9 Merge "[BOT.6] Make BpfCoordinator to support data limit" am: 73dd6f71f8 am: 3e58ec268b am: fe3f85ba3d am: b3debb2fd2 am: 6384a7e2c2
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1302436

Change-Id: I67c81b00045b747e2b976e4d1017d88c7bb2d024
2020-06-09 14:09:14 +00:00
Treehugger Robot
fe3f85ba3d Merge "[BOT.6] Make BpfCoordinator to support data limit" am: 73dd6f71f8 am: 3e58ec268b
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1302436

Change-Id: Icf64d856318173ad599a4f48295c9bdf591967f1
2020-06-09 13:28:38 +00:00
Treehugger Robot
73dd6f71f8 Merge "[BOT.6] Make BpfCoordinator to support data limit" 2020-06-09 12:58:20 +00:00
Hungming Chen
269c0886ed [BOT.6] Make BpfCoordinator to support data limit
The BPF tethering coordinator listens to the forwarding rule
changes for updating data limit which is applied in the following
conditions.
- After adding the first rule on a given upstream, add data limit.
- After removing the last rule on a given upstream, clear data limit.
- The service applies a new data limit on current upstream.

The reason for relying on rule changes is because the Tethering and
IpServer objects have multi-internal state machines. It is hard to
synchronize all of their states.

Note that the data limit cleanup for stopping or switching upstream
relies on offload rules are all removed as well.

Bug: 150736748
Test: manual
Change-Id: I829d36339973f9473fe6b616c48aa288f18d1c46
2020-06-09 17:33:03 +08:00
Automerger Merge Worker
6cb4fb6f50 Merge "Merge "[BOT.4] Make BpfCoordinator to support data warning" am: cdf210fd71 am: 74b81e046c am: 4ac4347e8b" into rvc-d1-dev-plus-aosp am: 8b2df8df35 am: dfee3092f5
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1302435

Change-Id: I312f88e60e9c85e1f3b48e6c251dc0bd38fbb2d5
2020-06-09 03:14:54 +00:00
Lorenzo Colitti
4ac4347e8b Merge "[BOT.4] Make BpfCoordinator to support data warning" am: cdf210fd71 am: 74b81e046c
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1302435

Change-Id: I686b01c362ed61d7333279f4c951039afa9a2fbd
2020-06-09 02:55:01 +00:00
Lorenzo Colitti
cdf210fd71 Merge "[BOT.4] Make BpfCoordinator to support data warning" 2020-06-09 02:22:43 +00:00
Paul Hu
dfec1d719f Merge "Make tether settings intent explicit" am: 51241a168c am: 913cd757d5 am: 98a32f115d am: aca14f6f73 am: 0b985506fa
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1318286

Change-Id: I289182fb29004e4364b1b01316b5abd0cd426b10
2020-06-08 17:39:28 +00:00
Paul Hu
98a32f115d Merge "Make tether settings intent explicit" am: 51241a168c am: 913cd757d5
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1318286

Change-Id: I7eafc623fcd88b9544756295d84c936c2ab2507a
2020-06-08 16:20:55 +00:00
Paul Hu
51241a168c Merge "Make tether settings intent explicit" 2020-06-08 10:31:21 +00:00
Hungming Chen
c42a0ffc0d [BOT.4] Make BpfCoordinator to support data warning
Invoke the existing polling thread to update data alert statistics.
Once the data alert limit has reached, trigger the notification.

Bug: 150736748
Test: BpfCoordinatorTest
Change-Id: Ibf25560ca2e9f003d8eba01361dc7d35ec1b1627
2020-06-08 17:31:34 +08:00
paulhu
3fe5434d19 Make tether settings intent explicit
Currently tethering notification is sending a pending intent for
redirecting user to tether settings page. However, this intent
is implicit that only create with
Settings.ACTION_TETHER_SETTINGS. For security reasons, this
intetnt should specify an explicit component to be delivered to.
Thus, specify the settings package name to this intent.

Test: atest TetheringTests
Bug: 156353008
Change-Id: I49187aee8a004caa890e2a73c0a28d280215c7d4
2020-06-08 06:04:19 +00:00
Maciej Żenczykowski
cfacebd651 Merge "Stop reducing RA advertised ipv6 mtu by 16 - not needed." 2020-06-03 05:21:45 +00:00
Maciej Żenczykowski
f99d2a103d 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
Merged-In: I76a75a16fa27b47d78816b2f9379ef4bb68beb00
2020-06-02 22:20:39 -07:00
TreeHugger Robot
8fd83ed9e5 Merge "Stop reducing RA advertised ipv6 mtu by 16 - not needed." into rvc-dev am: 36ff42e508 am: 07f6ff7138 am: 35f1bf6357 am: e98255490e
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11620914

Change-Id: Iaa11e91aea7f37c513ee96c108a1bc14128a7536
2020-06-03 05:05:17 +00:00
TreeHugger Robot
e98255490e Merge "Stop reducing RA advertised ipv6 mtu by 16 - not needed." into rvc-dev am: 36ff42e508 am: 07f6ff7138 am: 35f1bf6357
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11620914

Change-Id: I3fe08b0644b62b05987c4eb628264645b09a9e12
2020-06-03 04:49:49 +00:00
TreeHugger Robot
2ab13c6e54 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: I16f122fb61de1f03fa7bf163be8f5fea70ab59d7
2020-06-03 04:23:26 +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
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
Treehugger Robot
4649fb629f Merge "Gate exemptFromEentitlementCheck by Network_STACK permission" am: 650c23fdc2 am: dc1e33c9b3 am: 507e5320f1 am: c6f11fabb8 am: 888c83f429
Original change: undetermined

Change-Id: I20853b306b089d64f77b0d6b168df2a1aad4a646
2020-06-02 04:45:16 +00:00
Treehugger Robot
507e5320f1 Merge "Gate exemptFromEentitlementCheck by Network_STACK permission" am: 650c23fdc2 am: dc1e33c9b3
Original change: undetermined

Change-Id: Ic64b4551e70338bb1b81f9d9471f85cfa1c30bf3
2020-06-02 04:01:09 +00:00
Treehugger Robot
650c23fdc2 Merge "Gate exemptFromEentitlementCheck by Network_STACK permission" 2020-06-02 03:31:24 +00:00
Hungming Chen
d51d313c47 [BOT.5] Move class Ipv6ForwardingRule from IpServer to the coordinator am: b150b87fa9 am: b0f59dbbdf am: 0a7c8f1ec0 am: 5caae63ca9 am: 5c4d6d671e
Original change: undetermined

Change-Id: I60b51f494b564ed111eb386965601a4ec26975f9
2020-06-02 00:58:11 +00:00
Hungming Chen
04500cfab8 [BOT.3] Add unit test for polling network stats in the coordinator am: 7997d691fe am: 5fd9fcce13 am: a3c8a7503c am: a665eaf548 am: 8e266536ce
Original change: undetermined

Change-Id: I1813874d67e06058c2b5b8b61ea237e3c4ba53e1
2020-06-02 00:57:59 +00:00
Hungming Chen
2e2f624665 [BOT.2] Create a coordinator and stats provider to provide tether stats am: 68f1c2a63f am: eba638f4a9 am: 8bebb8eaa5 am: 585394e243 am: 7fe350dff7
Original change: undetermined

Change-Id: Icedd939ed918db1cde56addfd9843a52f3ee67cd
2020-06-02 00:57:45 +00:00
Hungming Chen
66e5bc0700 [BOT.1] Add a class ForwardedStats in TetheringUtils am: d0216998a4 am: e624037dd3 am: e5682257be am: 23a6cb16b6 am: 17bbcb6d3a
Original change: undetermined

Change-Id: I9c27e66ab12938221aaa463163f3cf4c0f050e05
2020-06-02 00:57:39 +00:00
Hungming Chen
0a7c8f1ec0 [BOT.5] Move class Ipv6ForwardingRule from IpServer to the coordinator am: b150b87fa9 am: b0f59dbbdf
Original change: undetermined

Change-Id: I3b54b2e2c0f9353367c6a096ccfebf17a47f5bc6
2020-06-02 00:13:45 +00:00
Hungming Chen
a3c8a7503c [BOT.3] Add unit test for polling network stats in the coordinator am: 7997d691fe am: 5fd9fcce13
Original change: undetermined

Change-Id: Ib9ad6e1ab139295ef603e7c8ec86d689ea9801af
2020-06-02 00:13:40 +00:00
Hungming Chen
8bebb8eaa5 [BOT.2] Create a coordinator and stats provider to provide tether stats am: 68f1c2a63f am: eba638f4a9
Original change: undetermined

Change-Id: Ic7fe1a8c0d16c8b435269a1973687655a9c7412b
2020-06-02 00:13:26 +00:00
Hungming Chen
e5682257be [BOT.1] Add a class ForwardedStats in TetheringUtils am: d0216998a4 am: e624037dd3
Original change: undetermined

Change-Id: Ia1847c5b25a429b16ce1d2bae265b299ec31a8a9
2020-06-02 00:13:20 +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
Mark Chien
c4060a16d2 Merge "Tethering: ensure downstream prefix do not conflict with upstream" am: 7bf51619d8 am: 3cefc6e048 am: 0e1a1f4c68 am: df94b648c8 am: a37347cae9
Change-Id: Ie4a4e389c3f0bc5754eec0ae489833b8cd2fdb83
2020-05-29 22:56:13 +00:00
Mark Chien
0e1a1f4c68 Merge "Tethering: ensure downstream prefix do not conflict with upstream" am: 7bf51619d8 am: 3cefc6e048
Change-Id: Ib70a471603d850069aae029dea7fc09a9b28f4bc
2020-05-29 22:07:37 +00:00
Hungming Chen
b150b87fa9 [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
Change-Id: I85316ef09ff3c9389ded11dcc384493d699da48e
2020-05-29 20:23:40 +08:00
Hungming Chen
7997d691fe [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
Change-Id: Ib1756159a2047c5db7d31359b0f288f840bd1bb1
2020-05-29 20:23:31 +08:00
Hungming Chen
68f1c2a63f [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

Change-Id: I22e71f87b67668f7e733e4f215d93bf5b2c9380d
2020-05-29 20:23:22 +08:00
Hungming Chen
d0216998a4 [BOT.1] Add a class ForwardedStats in TetheringUtils
Used to record offload transmitted/received forwarded bytes/packets.

Bug: 150736748
Test: new test BpfTetheringCoordinatorTest
Change-Id: Ie8725f95c3ddd5fb3811d479de32d2c1f7dcb493
2020-05-29 20:23:14 +08:00
markchien
9e790873d9 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
2020-05-29 06:46:22 +00:00
markchien
df503d4bd1 Address comment from aosp/1232197
1. Call maybeRemoveDeprecatedUpstreams from Tethering rather than inside
PrivateAddressCoordinator because the building logic of this method based
on implementation details of Tethering.
2. Fix typo

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

Change-Id: I7584253b728bc17fc648fc19e492ca9f7ad2ff46
2020-05-29 11:24:08 +08:00
markchien
c9daba32f7 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

Change-Id: Ib45b87bcd9eeb5da03fb7ec90b1af9ca53998cf5
2020-05-27 21:36:01 +08: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
5026370372 Merge "TetheringServiceTest: test caller permission" into rvc-dev 2020-05-25 10:40:03 +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
Mark Chien
099aa75c00 Merge "Adjust TTL for ipv6 tethering" am: 6d0a178a6b am: 23450e1fd1 am: 916f0d9420 am: 8a59938ea6 am: b537f0832c
Change-Id: I342f33076b1b02b940fda8d47de963ba13d3942b
2020-05-25 02:49:44 +00:00
Mark Chien
916f0d9420 Merge "Adjust TTL for ipv6 tethering" am: 6d0a178a6b am: 23450e1fd1
Change-Id: I73c02d9ad80080a76e8d04d1d61467b434a68732
2020-05-25 02:04:59 +00:00
Mark Chien
6d0a178a6b Merge "Adjust TTL for ipv6 tethering" 2020-05-25 01:42:36 +00:00