Commit Graph

2106 Commits

Author SHA1 Message Date
android-build-team Robot
6d08451867 Make change and version bump to r_aml_300802400 for mainline module file: packages/Tethering/apex/manifest.json
Change-Id: If743b76583bc895f11674e468792c0da1b958121
2020-06-23 03:17:14 +00:00
Michael Groover
56169afda7 Merge "Update docs for methods that require subscriberId" into rvc-dev am: 3e045d41e1
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11932150

Change-Id: If66a3a8f31b4f7a2d3e8c9a627dfe33270126361
2020-06-22 19:31:40 +00:00
Michael Groover
3e045d41e1 Merge "Update docs for methods that require subscriberId" into rvc-dev 2020-06-22 19:30:10 +00:00
Michael Groover
3dae8b1b41 Update docs for methods that require subscriberId
In Android 10 additional restrictions were required to access the
subscriberId. The NetworkStatsManager has several methods that accept
a subscriberId of the mobile network for which usage should be queried.
This commit updates the docs for these methods to reference the new
access restrictions and offer null as an option to obtain the usage
for all mobile networks.

Fixes: 157871064
Test: m docs
Change-Id: I95c730c9418fced6312eb3ba4e0d69e6299f3ded
2020-06-19 19:48:07 -07:00
android-build-team Robot
d65875a707 Make change and version bump to r_aml_300801400 for mainline module file: packages/Tethering/apex/manifest.json
Change-Id: I9c9f527416459b38c32ccf5b65f4054cea5b586f
2020-06-12 07:21:50 +00:00
Aaron Huang
8bab3c3984 Merge "Add unit test for NetworkStatsSubscriptionsMonitor" into rvc-dev am: 32f8a56636
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11788484

Change-Id: I147966b0b3480b44fa89aafd652ecfef8d68339b
2020-06-12 02:11:31 +00:00
Aaron Huang
da12e7f732 Add unit test for NetworkStatsSubscriptionsMonitor
Bug: 154080205
Test: atest FrameworksNetTests:com.android.server.net.NetworkStatsSubscriptionsMonitorTest
Change-Id: I4ef3f1ab2e5ea1322133edd80db3ccd0022e9c91
2020-06-09 00:40:36 +08:00
android-build-team Robot
76fc5cf8e0 Snap for 6539570 from b04b04a849eac3c27464bc76d16909fad37bedf5 to mainline-release
Change-Id: I03a57a5f17ac6753aba6153ceb0548dd31d017c7
2020-05-29 07:02:51 +00:00
TreeHugger Robot
d33c271515 Merge changes I289d935f,I0121a4ac,Ie73ba058,I4393afcb,Ifebd946e, ... into rvc-dev am: c119ee1ed2
Change-Id: I22e6b323c80aea7e240872d23d920c851492cd17
2020-05-28 13:33:41 +00:00
Maciej Żenczykowski
dfb05e9fc3 NetworkStats: apply464xlatAdjustments - remove useBpfStats parameter. am: c7d0224c75
Change-Id: Ic80dd8ce332802dc28d3c1db8ecb8359d3f844ad
2020-05-28 13:33:39 +00:00
Maciej Żenczykowski
9c1a8a23d1 NetworkStats - no need for xt_qtaguid clat bw fixups am: 5c9097c9e0
Change-Id: Id43e200e60590222e15327f3220de1f99e94f11c
2020-05-28 13:33:28 +00:00
Maciej Żenczykowski
9d862381bb NetworkStats: apply464xlatAdjustments - don't remove CLAT_UID
This should no longer be needed after all the cleanups.

Test: atest NetworkStatsTest NetworkStatsFactoryTest
Bug: 150738490
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I289d935f84b616ed857ef4c5a7427d57c282d00c
Merged-In: I289d935f84b616ed857ef4c5a7427d57c282d00c
2020-05-28 02:44:20 -07:00
Maciej Żenczykowski
c7d0224c75 NetworkStats: apply464xlatAdjustments - remove useBpfStats parameter.
Test: atest NetworkStatsTest NetworkStatsFactoryTest
Bug: 150738490
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I0121a4ac7ee824adc5930bab786d550b2f00b05b
Merged-In: I0121a4ac7ee824adc5930bab786d550b2f00b05b
2020-05-28 02:44:10 -07:00
Maciej Żenczykowski
5c9097c9e0 NetworkStats - no need for xt_qtaguid clat bw fixups
This is due to the previous addition of the ip6tables raw PREROUTING
drop rules for incoming ipv6 clat traffic pre-translation to ipv4.

Since we no longer double account, we no longer need these fixups.

Test: atest bpf_module_test clatd_test libbpf_android_test libnetdbpf_test
  netd_integration_test netd_unit_test netdutils_test
Bug: 150738490
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ia171b7797cdc99367064d0649bf1293c71579941
Merged-In: Ia171b7797cdc99367064d0649bf1293c71579941
2020-05-28 02:43:22 -07:00
TreeHugger Robot
4ae58860e7 Merge "NetworkStatsService - xt_qtaguid non-ebpf - account stacked interface stats" into rvc-dev am: f2b96fb045
Change-Id: I98f63b032a6fb5f5490b590ac75588facad51778
2020-05-28 06:52:44 +00:00
Maciej Żenczykowski
d4ce044ad1 NetworkStatsService - xt_qtaguid non-ebpf - account stacked interface stats
Test: atest bpf_module_test clatd_test libbpf_android_test libnetdbpf_test
  netd_integration_test netd_unit_test netdutils_test
Bug: 150738490
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I297fcad0a83bd8c32c0fa6c6a77d83b42cd8c428
Merged-In: I297fcad0a83bd8c32c0fa6c6a77d83b42cd8c428
2020-05-28 01:57:37 +00:00
android-build-team Robot
cce4b8167c Snap for 6489494 from 73817bc8997d03370d42be20dbb095cf3759d9d5 to mainline-release
Change-Id: I04ac11c5af37d8f50972dde8bbf99ac173964fc2
2020-05-13 07:02:59 +00:00
Junyu Lai
7bffb8a79f Merge "Use CopyOnWriteArrayList to store list of NetworkStatsProviderCb" into rvc-dev am: 358fe14bce
Change-Id: Ibd4e8f4591495895f611dcf737eaea3024ea00ee
2020-05-13 00:49:35 +00:00
Junyu Lai
358fe14bce Merge "Use CopyOnWriteArrayList to store list of NetworkStatsProviderCb" into rvc-dev 2020-05-13 00:42:42 +00:00
TreeHugger Robot
f71250552f Merge changes I37dd459d,I1959f308 into rvc-dev am: d7aa055b61
Change-Id: I73f7aa761e1377dfed0ab234af4a2bc6a73a91a2
2020-05-12 20:41:48 +00:00
Benedict Wong
ea5976d350 Use TransformRecord to get SPI instead of SpiRecord am: 003c5c9807
Change-Id: I4a186a8c098dbad6c0d97d2ee0cdc1a9342b8a19
2020-05-12 20:41:46 +00:00
TreeHugger Robot
d7aa055b61 Merge changes I37dd459d,I1959f308 into rvc-dev
* changes:
  Add tests for Tunnel, Transport mode application with released SPIs
  Use TransformRecord to get SPI instead of SpiRecord
2020-05-12 20:30:03 +00:00
Treehugger Robot
1d4d01a8a8 Use CopyOnWriteArrayList to store list of NetworkStatsProviderCb
In NetworkStatsService, mStatsLock will be held when
iterating through the provider list. This is to protect the list
from concurrent broadcast that triggered by
NetworkPolicyManagerService. This is not good since the binder
call is oneway, it does not make sense to block every
access to the providers.

This change also remove unuse variable and reduce verbose log.

Test: atest FrameworksNetTests TetheringTests
Bug: 150418178
Change-Id: If74e9f2ea597a0d5ae4668c3358bc687f342bbb5
Merged-In: If74e9f2ea597a0d5ae4668c3358bc687f342bbb5
(cherry picked from commit 5d8f96c6967d5b1a42ba374521078e75a9e6f187)
2020-05-12 11:36:03 +00:00
android-build-team Robot
26943af9aa Snap for 6479434 from 83ebcd435886d7df38f064bd0b45e581f078023e to mainline-release
Change-Id: I37e4d979cc751c758e52ce04eb6e68faa39c25b6
2020-05-10 07:11:24 +00:00
Benedict Wong
003c5c9807 Use TransformRecord to get SPI instead of SpiRecord
IpSecService.applyTunnelModeTransform() currently does not take an
SpiRecord instance, yet implicitly requires that the SpiRecord instance
is still alive based on the stored SpiRecord resourceId in
the TransformRecord's IpSecConfig.

This check is unnecessary, as the SpiRecord has been subsumed into the
TransformRecord, and the kernel resources are kept alive whether or
not the SpiRecord is still held by the user.

This allows users of the IpSecManager API to allocate short-lived SPIs
during the creation of an IpSecTransform, without having to keep track
of both of them (even though the SPI is no longer usable).

The TransformRecord.getSpiRecord() call is already used in
multiple other places in the same method.

Bug: 142072071
Test: New tests added, passing.
Change-Id: I1959f3080946267243564459ff4207647922566e
Merged-In: I1959f3080946267243564459ff4207647922566e
(cherry picked from commit 5258b1b82f39bf17e0751bcb94479464250aaec5)
2020-05-08 00:01:45 -07:00
Lucas Lin
55119e823e Broadcast ACTION_NETWORK_STATS_UPDATED in NetworkStatsHandler
There is a corner case which may cause the deadlock:
When NetworkStatsService tried to broadcast the intent,
NetworkStatsService was waiting for a lock which was hold by
ActivityManagerService. In the same time, ActivityManagerService
was waiting for ActiveService#startServiceInnerLocked() to get a
lock which was hold by ConnectivityService. ConnectivityService
was waiting for a lock which was hold by BatteryStatsImpl.
BatteryStatsImpl was waiting for a lock which was hold by
NetworkStatsService, and the lock was locked by
NetworkStatsService when NetworkStatsService tried to broadcast
the intent.

To prevent deadlock when broadcasting the intent in
performPollLocked(), move the intent broadcasting from
performPollLocked() to NetworkStatsHandler.

Bug: 150418178
Bug: 155155473
Test: 1. Create the second user and see if the device will
         do factory reset or not.
      2. Factory reset manually and see if there is a deadlock.

Change-Id: I80569cb4388beb3fd6cbf64a7885bccee8b1c53c
Merged-In: Icf88d3e7a38562ab15187f6c71bc8fb0486d37c0
(cherry picked from commit 3f8ab0350450202910ea702799570c538e96d5cd)
2020-05-08 02:59:28 +00:00
android-build-team Robot
6dd7ce6793 Snap for 6450912 from 6b639d3eb3fc417ba2279b2265255b9e8c1d1157 to mainline-release
Change-Id: Ica89f4b346997c4a37ab5664a54383ac4c63c472
2020-05-01 07:00:38 +00:00
Chiachang Wang
abfadbefef Filter debug entries for each vpn
NetworkStats calculation needs to filter out debug entries to
prevent over counting. While NetworkStatsFactory migrates data
usage over a VPN to the TUN network, NetworkStatsFactory does
not filter out debug entries per vpn which will cause debug
entries left and cause exception.

Bug: 152678151
Test: atest com.android.server.net.NetworkStatsFactoryTest
      and verify no exception
Change-Id: I3525edc385b07858b48c7add2d331c4b5a2e84ad
Merged-In: I3525edc385b07858b48c7add2d331c4b5a2e84ad
2020-04-30 02:39:15 +00:00
android-build-team Robot
f12ae56815 Snap for 6441286 from 014b5e780901cd622855bb889ebd423d6efeeb7f to mainline-release
Change-Id: I7d17005e20e06ea6b6f497952d8fab33c45e1bcc
2020-04-29 07:09:39 +00:00
TreeHugger Robot
0f3164c79d Merge "Enforce permission check in getUidStats function" into rvc-dev 2020-04-28 09:13:32 +00:00
Chenbo Feng
d80a6ed9e2 Enforce permission check in getUidStats function
The NetworkStatsService.getUidStats() currently doesn't have any
permission check to make sure unpriviledged apps cannot read the stats
of a different uid. It will protentially have security problem since
apps with ACCESS_NETWORK_STATS permission can directly calling into
NetworkStatsService and bypass the check in TrafficStats. Move the uid
check from TrafficStats to NetworkStatsService to fix the problem.

Bug: 129151407
Test: atest AppSecurityTests#testAppFailAccessPrivateData_full
Test: atest AppSecurityTests#testAppFailAccessPrivateData_instant
Test: atest android.app.usage.cts.NetworkUsageStatsTest
Test: atest NetworkStatsBinderTest

Change-Id: Iae85676cfe5f114da69ec278afc2c904bc907234
2020-04-27 18:38:56 +08:00
android-build-team Robot
5036472f72 Snap for 6410067 from 23b52c4f47eced4dca86093f5c48419bef3103f5 to mainline-release
Change-Id: Ic8cf0fcd7ffdfd54385982bb890d0ebd3c485181
2020-04-20 07:15:41 +00:00
TreeHugger Robot
fdbc50b386 Merge "Narrow access to getDataLayerSnapshotForUid()." into rvc-dev 2020-04-18 00:42:17 +00:00
android-build-team Robot
3f84f5d9d7 Snap for 6399349 from d1f82dd3d84c78f230177d0c8935f03b6e7df3dc to mainline-release
Change-Id: Iab1e25b6719b5aeec2027b7e86413e42fc65ce9e
2020-04-16 07:12:34 +00:00
junyulai
f0fcc339c3 [SM10] Adopt helper class to monitor RAT type change per sub
Test: atest NetworkStatsServiceTest
Bug: 146415925
Change-Id: I45c3aa9046b316c8cd0943543d620a22e4afefd1
Merged-In: I45c3aa9046b316c8cd0943543d620a22e4afefd1
(cherry picked from commit 219faff07bdc58c14fe58fc525e86383db1f8167)
2020-04-15 10:30:49 +00:00
Jeff Sharkey
7bab8e86df Narrow access to getDataLayerSnapshotForUid().
This method is used in TrafficStats to obtain the snapshot for the
calling UID, so narrow it to only return data for that specific case.

We might be tempted to throw an exception or adjust the method
signature, but apps are using the raw AIDL in the greylist, so we
return them an empty NetworkStats if they ask about other UIDs.

Bug: 119672472
Test: manual
Change-Id: I3064630039f1d8473d6425dd663f17813a4ae3a1
2020-04-10 13:54:45 -06:00
android-build-team Robot
a260c33fe5 Snap for 6379507 from c14806197cb453e8e26558adf8c02db9567c036a to mainline-release
Change-Id: I2ddc68634a691db6c6321d47e2ac69e6f6637ead
2020-04-09 07:10:02 +00:00
junyulai
5d0d638f54 [SM09] Add helper class to monitor RAT type change per sub
In current design, Rat type change in NSS is only for default
subscription. This is only correct for single sim project.
However, it does not correct for multi-sim scenarios such as
CBRS or DSDS, given that all data usage will be attributed
to the Rat type of default sub.

Thus, add a helper class to monitor subscription change event,
and register/unregister dynamically for Rat type change for
every subscription.

Note that unit test of the helper class will be addressed
in follow-up patch.

Test: m -j
Bug: 146415925
Change-Id: I0055f6b55c209a073ce997fc7a144477f9db7069
Merged-In: I0055f6b55c209a073ce997fc7a144477f9db7069
(cherry picked from commit 306de26c138ec135846f2a74a952464cf00dce54)
2020-04-08 08:50:22 +00:00
android-build-team Robot
2f8d37e38b Snap for 6371019 from 6f2fc99fbd543302f40049fd6c493a676cda4406 to mainline-release
Change-Id: I077942e37c7aa4ca802240ecbe1b0237249b97ba
2020-04-07 07:12:22 +00:00
junyulai
d81034383d [SP26.2] add a method in NetworkStats that removes empty entries
In current design, entries with zeros are preserved after
addition/subtraction. These entries are not very useful
and lead to difficulty of verifying the result of
addition/subtraction.

However, change the behavior in the original NetworkStats
is considered risky in current stage.

Thus, this change provide a function that could remove these
empty entries in tests.

Test: atest FrameworksNetTests
Bug: 152827872
Bug: 150644692

Change-Id: I40a76935d55712b8083ee1e17e137a8a4ef5e029
Merged-In: I40a76935d55712b8083ee1e17e137a8a4ef5e029
(cherry picked from commit 6c7bef3064dbe949b7b213036b8e70c125ddd343)
2020-04-06 02:18:50 +00:00
android-build-team Robot
6170705614 Snap for 6357740 from 4c6e6b9c5a4fb640da0daf20bb42cfa158d961aa to mainline-release
Change-Id: I8e3b3b8da0b0dac54ffc8c632d75ea2261968136
2020-04-02 07:10:37 +00:00
android-build-team Robot
4dd3f945ff Snap for 6353135 from 79b40a2f164a9238f3aa5a30817e8d07c2265cf5 to mainline-release
Change-Id: Idb07acb34245ee84804340740357b081538e2e72
2020-04-01 07:09:35 +00:00
TreeHugger Robot
8444a9440f Merge "[SM06] Collect mobile NetworkStats metrics by collapsed rat type" into rvc-dev 2020-04-01 01:12:41 +00:00
junyulai
eba72cd4ef [SM06] Collect mobile NetworkStats metrics by collapsed rat type
Test: adb shell cmd stats pull-source 10000~10003
      adb shell dumpsys netstats --uid
Bug: 129082217

Change-Id: I726e74f5c63a6ed456cb13ea259b58c7a33bec76
Merged-In: I726e74f5c63a6ed456cb13ea259b58c7a33bec76
(cherry picked from commit c82dfeb4225e1a8a17eedc969a90f921e0bf845c)
2020-03-31 09:25:27 +00:00
android-build-team Robot
6d31d03ee0 Snap for 6349563 from 366b79483cc59e01723e782ce103d94db7feda72 to mainline-release
Change-Id: Ic45dcd2ecb2f15642261f4aeed488e0550f749fb
2020-03-31 07:09:36 +00:00
Benedict Wong
3fafd684c5 Automatically set IPsec tunnel interface as up
This change makes IPsec tunnel interfaces automatically get brought up
once they are created. Originally this was considered to be an
additional safety check, as they would not be start routing traffic
until explicitly brought up. However, in the intervening time, the
NetworkManagementController now requires the NETWORK_STACK permission to
set an interface as up. Additionally, that call is a hidden API, and
thus not usable for use cases such as IWLAN.

Bug: 149348618
Test: FrameworksNetTests, CtsNetTestCases passing.
Change-Id: I55b63a748463a388e1e2991d2d5d6b3023545e60
Merged-In: I55b63a748463a388e1e2991d2d5d6b3023545e60
(cherry picked from commit 7c5704d177a903034ae1b6ae4800cc3b8457977a)
2020-03-25 06:14:13 +00:00
Automerger Merge Worker
fd266f85b6 Relax IPsec resource count restrictions.
IPsec resource counts were selected to be conservative, due to unknowns
about device capabilities. Since then, it appears that we no longer need
such stringent quotas, and this can be relaxed.

Bug: 152368091
Test: FrameworksNetTest passing
Change-Id: Id53d14e5698e5fcc410868424176b00350c7ae79
Merged-In: Id53d14e5698e5fcc410868424176b00350c7ae79
(cherry picked from commit 224699fc0b485dd75e6157a88f66a53d64e5a6fd)
2020-03-25 06:07:24 +00:00
android-build-team Robot
63bf691794 Snap for 6315035 from f7d2d9ea601092c7a4c233fefc0ac2cd7d0b9c75 to mainline-release
Change-Id: Ib791564e5501a27725b0618e203fe53edba3a2cb
2020-03-20 07:01:46 +00:00
Lorenzo Colitti
8723291cee Make Ethernet interfaces more testable.
This CL adds a setIncludeTestInterfaces method to EthernetManager
that, when called, causes the Ethernet service to recognize and
manage test interfaces created by TestNetworkManager.

Bug: 150644681
Test: Tested by EthernetTetheringTest in same topic
Change-Id: I86eef7a93267f800dbfc8eafd307effa76a344ca
Merged-In: I86eef7a93267f800dbfc8eafd307effa76a344ca
(cherry picked from commit 3410fb0aa92bbd4f9d7dc031e89f6f528ff34245)
2020-03-19 12:30:39 +00:00
junyulai
1e30781571 [SM07] Make combine subtype configurable from Settings
Note that enabling/disabling would not take effect until device
reboot. This will be addressed in follow-up patch.

Test: 1. atest NetworkStatsServieTest SettingsBackupTest
      2. adb shell settings put global netstats_combine_subtype_enabled 1|0
Bug: 146415925

Change-Id: Ic94da540afa479ed18f1b6fbda4ae3216c37476b
Merged-In: Ic94da540afa479ed18f1b6fbda4ae3216c37476b
(cherry picked from commit c4f77ac90bf2e48a655ad19b162fe74a23bf3fb0)
2020-03-19 01:40:55 +00:00