Commit graph android_packages_modules_Co.../tests/net/java/com/android
Message SHA1
Merge changes Ieb8645ac,I6466ec14,I87deb82b,I995b108e,Ib6521459 am: 2d731828cb
am: 48f59a0fdf

Change-Id: I960e94b03b29282ae2b03f78a19ed2692bd88e05

Varun Anand   authored and   android-build-merger   commited 2019-06-17 10:33:53 -07:00
dd947a4fd1
Remove VPN info arrays from NetworkStats(Observer|Recorder)
This change removes the now-unused VPN arrays in the network stats
observer and recorder classes. These are always null values in every
call site.

Bug: 113122541
Bug: 120145746
Bug: 129264869
Bug: 134244752
Test: FrameworksNetTest passing
Test: Manual tests show data usage fixes maintained.
Change-Id: Ieb8645acc400fdaeb0df7092c5369b96f9f35af9

Benedict Wong   commited 2019-06-14 11:41:31 -07:00
255eebc51e
NetworkStatsFactory: Take VPNs into account for network/battery stats
This change fixes detailed UID stats to ensure network and battery stats
both take VPNs into account. NetworkStatsFactory is being made aware of
VPNs enabled, and the full set of underlying networks present.

Since traffic can only be migrated over a NetworkStats delta, NSF
maintains a NetworkStats snapshot across all UIDs/ifaces/tags.

This snapshot gets updated whenever NSF records a new snapshot
(based on various hooks such as VPN updating its underlying networks,
network getting lost, etc.), or NetworkStatsService's
getDetailedUidStats() method being called.

This change widens the scope of the existing mPersistentSnapshot lock,
renaming it to mPersistentDataLock, and ensures that TUN migrations are
not done in parallel. Additionally, mVpnInfos is updated via
pointer-swapping, to reduce the scope of the mPersistentDataLock.

The safety of this change is predicated on:
1. NetworkStatsFactory lock not held, so services cannot deadlock through
the cyclical lock.

2. The broadening of the scope of the lock in NetworkStatsFactory has no
threading implications, as it is always the last (leaf node) lock held,
and therefore is impossible to have lock inversion.

Additionally, to ensure VPNs work with 464xlat, the VPN info passed to
the NetworkStatsFactory includes all underlying interfaces, instead of
only passing the first one.

This (partially) re-applies changes from:
aosp/972848: Add one more test for VPN usage stats.
aosp/972847: Addressing comments for http://ag/7700679.
aosp/885338: NetworkStatsService: Fix getDetailedUidStats to take VPNs
             into account.
Co-developed with: Varun Anand <vaanand@google.com>

Bug: 113122541
Bug: 120145746
Bug: 129264869
Bug: 134244752
Test: FrameworksNetTest passing
Test: Manual tests show data usage fixes maintained.
Change-Id: I6466ec1411fc5ed6954125d27d353b6cd1be719e

Benedict Wong   commited 2019-06-14 11:41:31 -07:00
b98e069317
Remove duplicate line in clat_simple test file
This change removes a redundant line in the xt_qtaguid_with_clat test
file.

Bug: 134244752
Test: FrameworksNetTest passing
Change-Id: I87deb82ba960102b617ab27362e8c5899fa478f8

Benedict Wong   commited 2019-06-14 11:16:03 -07:00
de27c6d055
Revert "Revert "Take all VPN underlying networks into account when migrating traffic for""
This reverts commit 9863ba9f09.

Reason for revert: Fix available for deadlocks.

Bug: 134244752
Change-Id: Ib65214598837289bd39dbf040b56ab7835f893ba

Benedict Wong   commited 2019-06-13 15:36:27 -07:00
b393d28d65
Revert "Take all VPN underlying networks into account when migrating traffic for"
This reverts commit 2dbf6e6978.

Reason for revert: This change has been implicated in 4-way deadlocks as seen in b/134244752.

Bug: 134244752
Change-Id: I2f1839d7776a613ca571af8a542755ddc5fc8760
Merged-In: Ibdaad3a4cbf0d8ef1ed53cfab1e454b9b878bae9

Varun Anand   commited 2019-06-10 16:00:48 -07:00
9863ba9f09
Revert "NetworkStatsService: Fix getDetailedUidStats to take VPNs into account."
This reverts commit 23e1e5e300.

Reason for revert: This change has been implicated in 4-way deadlocks as seen in b/134244752.

Bug: 134244752
Change-Id: I37f75c2b243ea548a88ef1dae88287405c6ef55f
Merged-In: I0c00e8f0e30cee987b71b561079a97bf09d4dae4

Varun Anand   commited 2019-06-10 16:00:38 -07:00
0e62e01524
Revert "Addressing comments for http://ag/7700679."
This reverts commit ab4f831229.

Reason for revert: This change has been implicated in 4-way deadlocks as seen in b/134244752.

Bug: 134244752
Change-Id: I12ab724e2ef8a5c1b42078330ba74713ff86fdd1
Merged-In: I5fbb3443a39a21fc9d96442726cd10d20e8d61cd

Varun Anand   commited 2019-06-10 16:00:28 -07:00
b5be3c22e5
Revert "Add one more test for VPN usage stats."
This reverts commit e13b3791a0.

Reason for revert: This change has been implicated in 4-way deadlocks as seen in b/134244752.

Bug: 134244752
Change-Id: I87ddc0af9ff6fbd9b7afd6d4d24985b9b7205416
Merged-In: I64b48d575f2e6ec4cb7d2d100a859a30af0501dc

Varun Anand   commited 2019-06-10 15:59:58 -07:00
a79856d603
Revert "Take all VPN underlying networks into account when migrating traffic for"
am: 237d3e55cd

Change-Id: Ie9e830962e702c5e66faa7239e6c5037ed3d791d

Benedict Wong   authored and   android-build-merger   commited 2019-06-07 02:33:33 -07:00
00ea7edde3
Revert "NetworkStatsService: Fix getDetailedUidStats to take VPNs into account."
am: d73fa75845

Change-Id: I9bf180aca56a8b5e2c5262beabac3ceaa9b00315

Benedict Wong   authored and   android-build-merger   commited 2019-06-07 02:33:30 -07:00
f428a00d1e
Revert "Addressing comments for http://ag/7700679."
am: 01ca66ff03

Change-Id: I56e7736ced431a5dcd78a6a258abfad09745d25e

Benedict Wong   authored and   android-build-merger   commited 2019-06-07 02:33:26 -07:00
2dce717756
Revert "Add one more test for VPN usage stats."
am: e81acb7351

Change-Id: I72ae3f9575fe954f4f1db4b85b0f19d15448fbbf

Benedict Wong   authored and   android-build-merger   commited 2019-06-07 02:33:21 -07:00
c57fff650e
Revert "Take all VPN underlying networks into account when migrating traffic for"
This reverts commit ee48ac4abd.

Reason for revert: This change has been implicated in 4-way deadlocks as seen in b/134244752.

Bug: 134244752
Change-Id: Ibdaad3a4cbf0d8ef1ed53cfab1e454b9b878bae9

Benedict Wong   authored and   Lorenzo Colitti   commited 2019-06-07 09:18:01 +00:00
237d3e55cd
Revert "NetworkStatsService: Fix getDetailedUidStats to take VPNs into account."
This reverts commit df34063a17.

Reason for revert: This change has been implicated in 4-way deadlocks as seen in b/134244752.

Bug: 134244752
Change-Id: I0c00e8f0e30cee987b71b561079a97bf09d4dae4

Benedict Wong   authored and   Lorenzo Colitti   commited 2019-06-07 09:17:47 +00:00
d73fa75845
Revert "Addressing comments for http://ag/7700679."
This reverts commit 8031acad0e.

Reason for revert: This change has been implicated in 4-way deadlocks as seen in b/134244752.

Bug: 134244752
Change-Id: I5fbb3443a39a21fc9d96442726cd10d20e8d61cd

Benedict Wong   authored and   Lorenzo Colitti   commited 2019-06-07 09:17:31 +00:00
01ca66ff03
Revert "Add one more test for VPN usage stats."
This reverts commit 54bb4f4608.

Reason for revert: This change has been implicated in 4-way deadlocks as seen in b/134244752.

Bug: 134244752
Change-Id: I64b48d575f2e6ec4cb7d2d100a859a30af0501dc

Benedict Wong   authored and   Lorenzo Colitti   commited 2019-06-07 09:16:48 +00:00
e81acb7351
Add one more test for VPN usage stats.
(cherry picked from commit 54bb4f4608)

Covers the case where the majority of traffic through the VPN is
caused by the VPN app itself, and ensures that that traffic is
correctly attributed to the VPN app as opposed to spread between
the other apps that use the VPN.

Bug: 120145746
Test: atest NetworkStatsServiceTest
Change-Id: Ibd7646dc088fa4180abd696e89c3148ff34ce190
Merged-In: Iffd3f95fc2e11d311691a797b010edb38d2ef3c6

Lorenzo Colitti   authored and   Varun Anand   commited 2019-05-30 15:59:28 +00:00
e13b3791a0
Addressing comments for http://ag/7700679.
(cherry picked from commit 8031acad0e)

Note, that its in a separate CL so we could cherry-pick this CL to aosp.
http://ag/7700679 is already in aosp (http://aosp/865073).

Bug: 113122541
Bug: 120145746
Test: atest FrameworksNetTests

Change-Id: Ic1767bc8bf1460e4223f86465fc72344428e6055
Merged-In: I7cfda226b4ed11b67002b83b38fba0f5caf96718

Varun Anand   commited 2019-05-30 15:59:07 +00:00
ab4f831229
Always give VPN the INTERNET capability.
Split-tunnel VPN (which are the only ones affected by this change)
always fall through to the default network for routes they don't
handle, and even if the underlying network(s) don't provide access
this may be a pinhole that can actually reach the broader network.

In practice this behaves like the original release of P and is the
safest thing to do for Q. In R we should evaluate giving the VPN
app the ability to simply tell the network stack whether it does
provide Internet access or not.

Bug: 119216095
Test: FrameworksNetTests NetworkStackTests
Change-Id: I262ca41fe0225660551c9a421562405366b6acac
Merged-In: I262ca41fe0225660551c9a421562405366b6acac
(cherry picked from commit 6d5a4a3b1d1c69eb8a542fecf5e8a306822c19b7)

Chalard Jean   authored and   Lorenzo Colitti   commited 2019-05-30 08:54:35 +00:00
5215c21ec5
Merge "Always give VPN the INTERNET capability." am: a24f3216be
am: 6d5a4a3b1d

Change-Id: I144939e7197deec403d6c91f83b414d357190bd4

Chalard Jean   authored and   android-build-merger   commited 2019-05-30 01:54:33 -07:00
bbaf737c55
Merge "Always give VPN the INTERNET capability."
Chalard Jean   authored and   Gerrit Code Review   commited 2019-05-30 08:36:19 +00:00
a24f3216be
Always give VPN the INTERNET capability.
Split-tunnel VPN (which are the only ones affected by this change)
always fall through to the default network for routes they don't
handle, and even if the underlying network(s) don't provide access
this may be a pinhole that can actually reach the broader network.

In practice this behaves like the original release of P and is the
safest thing to do for Q. In R we should evaluate giving the VPN
app the ability to simply tell the network stack whether it does
provide Internet access or not.

Bug: 119216095
Test: FrameworksNetTests NetworkStackTests
Change-Id: I262ca41fe0225660551c9a421562405366b6acac

Chalard Jean   commited 2019-05-30 16:11:14 +09:00
16da69ea0e
Merge "NetworkStatAccess Should checkCarrierPrivileges cross all subscriptions" into qt-dev
TreeHugger Robot   authored and   Android (Google) Code Review   commited 2019-05-30 01:00:44 +00:00
fdfe0c850a
Merge "NetworkStatAccess Should checkCarrierPrivileges cross all subscriptions" am: 43b5e55334
am: 4d206af049

Change-Id: Ib2d02bd3936ae112f62861c301d99582e0b998b0

Chen Xu   authored and   android-build-merger   commited 2019-05-29 10:43:06 -07:00
4742297e96
NetworkStatAccess Should checkCarrierPrivileges cross all subscriptions
Bug: 133236378
Test: Manual
Change-Id: I49fbde1fe73b33aadcf8fd23ad224f363b137bf3
Merged-in: I49fbde1fe73b33aadcf8fd23ad224f363b137bf3

chen xu   authored and   Chen Xu   commited 2019-05-29 17:16:54 +00:00
cf1fec61c3
Merge "NetworkStatAccess Should checkCarrierPrivileges cross all subscriptions"
Chen Xu   authored and   Gerrit Code Review   commited 2019-05-29 17:15:41 +00:00
43b5e55334
Merge changes from topic "vpn_data_accounting" into qt-dev
am: 1dd3666360

Change-Id: I234eb2b20f47bde94b4aba89867e9d1c7e9ee7d5

Varun Anand   authored and   android-build-merger   commited 2019-05-29 09:44:04 -07:00
85db585c52
Merge changes from topic "vpn_data_accounting" into qt-dev
* changes:
  Add one more test for VPN usage stats.
  Addressing comments for http://ag/7700679.
  NetworkStatsService: Fix getDetailedUidStats to take VPNs into account.
  Take all VPN underlying networks into account when migrating traffic for VPN uid.

Varun Anand   authored and   Android (Google) Code Review   commited 2019-05-29 16:34:14 +00:00
1dd3666360
Merge "Add a common test library." am: aa6821b805
am: 4343cf32aa

Change-Id: I6104a1a677cb2e4978f11be32dfc604ee431d009

Chalard Jean   authored and   android-build-merger   commited 2019-05-29 05:38:21 -07:00
861af75ef0
Add one more test for VPN usage stats.
Covers the case where the majority of traffic through the VPN is
caused by the VPN app itself, and ensures that that traffic is
correctly attributed to the VPN app as opposed to spread between
the other apps that use the VPN.

Bug: 120145746
Test: atest NetworkStatsServiceTest
Change-Id: Iffd3f95fc2e11d311691a797b010edb38d2ef3c6

Lorenzo Colitti   commited 2019-05-29 19:57:43 +09:00
54bb4f4608
Addressing comments for http://ag/7700679.
Note, that its in a separate CL so we could cherry-pick this CL to aosp.
http://ag/7700679 is already in aosp.

Bug: 113122541
Bug: 120145746
Test: atest FrameworksNetTests

Change-Id: I7cfda226b4ed11b67002b83b38fba0f5caf96718

Varun Anand   authored and   Lorenzo Colitti   commited 2019-05-29 18:15:34 +09:00
8031acad0e
NetworkStatsService: Fix getDetailedUidStats to take VPNs into account.
(cherry picked from commit 23e1e5e300)

This API is similar to one provided by NetworkStatsFactory with the
difference that NSS also migrates traffic from VPN UID to other apps.

Since traffic can only be migrated over NetworkStats delta, NSS
therefore maintains NetworkStats snapshot across all UIDs/ifaces/tags.

This snapshot gets updated whenever NSS records a new snapshot
(based on various hooks such as VPN updating its underlying networks,
network getting lost, etc.), or getDetailedUidStats API is invoked by
one of its callers.

Bug: 113122541
Bug: 120145746
Test: atest FrameworksNetTests
Test: manually verified that battery stats are migrating traffic off of
TUN (after patching above CL where we point BatteryStats to use this
API).

Change-Id: I4b8d7c5b6905a4a12c1806dfd35c2c4c63610404

Varun Anand   authored and   Lorenzo Colitti   commited 2019-05-29 18:15:24 +09:00
df34063a17
Take all VPN underlying networks into account when migrating traffic for
VPN uid.

(cherry picked from commit 2dbf6e6978)

Bug: 113122541
Bug: 120145746
Test: atest FrameworksNetTests
Test: Manually verified on device that stats from VPN UID are moved
      appropriately based on its declared underlying network set.
Test: vogar --mode app_process --benchmark NetworkStatsBenchmark.java

Change-Id: I7f368c5970b2dcb969fe0daf5ef44edb1f51d09d

Varun Anand   authored and   Lorenzo Colitti   commited 2019-05-29 18:15:17 +09:00
ee48ac4abd
NetworkStatAccess Should checkCarrierPrivileges cross all subscriptions
Bug: 133236378
Test: Manual
Change-Id: I49fbde1fe73b33aadcf8fd23ad224f363b137bf3

chen xu   commited 2019-05-28 23:28:56 -07:00
38b98ab27c
Let the system server have CONNECTIVITY_USE_RESTRICTED_NETWORKS.
Also :
- Fix testUidFilteringDuringVpnConnectDisconnectAndUidUpdates that
  was failing on devices with a first released SDK >= Q
- Add a test actually tests that the system has the permission, as
  the test was only testing what's in the mock

Bug: 119770201
Test: New test making sure this stays true
Merged-In: I74cf5f0fa17fcf818f1fed78c7e3e4375c20152e
Change-Id: I0daa644fbad8e389ad7cfa66c0e3b3480c8bb50a
(cherry picked from commit 629b49d58fe8d108a3d7d47a21471aff913c6b34)

Chalard Jean   commited 2019-05-28 13:30:14 +00:00
15337bf80d
Add a common test library.
This is the most common test library for Connectivity tests. It is
meant to be usable in framework tests, network stack tests, CTS,
GTS. To achieve that, it can only depend on framework classes.

Bug: none
Test: NetworkMonitorTest
Test: NsdManagerTest
Test: ConnectivityServiceTest
Test: OffloadControllerTest
Test: NetworkStatsObserversTest
Test: NetworkStatsServiceTest
(all the touched classes)

Change-Id: Ic47cbe7ba0e407145fa6bc49bb2adb3c5937dbc4

Chalard Jean   commited 2019-05-28 22:20:51 +09:00
d5cae6a6e4
Merge "Let the system server have CONNECTIVITY_USE_RESTRICTED_NETWORKS." am: 2ada647c37
am: c008c062fb

Change-Id: Ie70b2e7ce28e8e8c070d5b0929f1a6beb855da46

Chalard Jean   authored and   android-build-merger   commited 2019-05-28 05:47:17 -07:00
d7c5be3363
Merge "Let the system server have CONNECTIVITY_USE_RESTRICTED_NETWORKS."
Chalard Jean   authored and   Gerrit Code Review   commited 2019-05-28 12:26:10 +00:00
2ada647c37
Let the system server have CONNECTIVITY_USE_RESTRICTED_NETWORKS.
Also :
- Fix testUidFilteringDuringVpnConnectDisconnectAndUidUpdates that
  was failing on devices with a first released SDK >= Q
- Add a test actually tests that the system has the permission, as
  the test was only testing what's in the mock

Bug: 119770201
Test: New test making sure this stays true
Change-Id: I74cf5f0fa17fcf818f1fed78c7e3e4375c20152e

Chalard Jean   commited 2019-05-27 16:35:22 +09:00
030a3c7c37
Clean up for multiple validation result update
This is a follow-up commit for aosp/955431 to update commets
and minor updates in unit test.

Test: atest com.android.server.ConnectivityServiceTest#testCaptivePortalOnPartialConnectivity
Bug: 130683832
Change-Id: I581eae8daeddd2c4c186e7b40e27fef2aaa7ab43
Merged-In: I9087ef791b3fee5399ba8e83ef9d8a544845a4dd
Merged-In: I4424663292c5ad29eb7a888fa6975835721a5d2e
(cherry picked from commit 3d3a9fff7b7fa0df4ee627cb082668e642d6f754)

Chiachang Wang   commited 2019-05-27 00:54:53 +00:00
2a8695a2dd
Merge "Clean up for multiple validation result update" am: 7a5b9c2d0a
am: 0d018cdaec

Change-Id: I4424663292c5ad29eb7a888fa6975835721a5d2e

Chiachang Wang   authored and   android-build-merger   commited 2019-05-25 02:53:44 -07:00
10ccb3c19f
Update multiple validation result to ConnectivityService
Once a network is determined to have partial connectivity, it
cannot go back to full connectivity without a disconnect. This
is because NetworkMonitor can only communicate either
PARTIAL_CONNECTIVITY or VALID, but not both. Thus, multiple
validation results allow ConnectivityService to know the real
network status.

Bug: 129662877
Bug: 130683832
Test: atest FrameworksNetTests
Test: atest NetworkStackTests
Test: atest --generate-new-metrics 50
NetworkStackTests:com.android.server.connectivity.NetworkMonitorTest
Test: Simulate partial connectvitiy
Change-Id: I406c9368617c03a2dd3ab15fb1f6dbf539d7c714
Merged-In: I243db4c406cca826e803c8035268bc0c6e6e01e2
(cherry picked from commit 4532abd4d2af9ad118873a63cafc6028ed87c52e)

Chiachang Wang   commited 2019-05-24 06:15:25 +00:00
75387c9ced
Merge "Update multiple validation result to ConnectivityService" am: 7eff27b409
am: a0e9af113c

Change-Id: I243db4c406cca826e803c8035268bc0c6e6e01e2

Chiachang Wang   authored and   android-build-merger   commited 2019-05-23 22:57:18 -07:00
adb166e018
Clean up for multiple validation result update
This is a follow-up commit for aosp/955431 to update commets
and minor updates in unit test.

Test: atest com.android.server.ConnectivityServiceTest#testCaptivePortalOnPartialConnectivity
Bug: 130683832
Change-Id: I581eae8daeddd2c4c186e7b40e27fef2aaa7ab43

Chiachang Wang   commited 2019-05-24 03:29:56 +00:00
59d7d2957f
Merge "Update multiple validation result to ConnectivityService"
Chiachang Wang   authored and   Gerrit Code Review   commited 2019-05-24 02:50:54 +00:00
7eff27b409
Merge "[CM] Fix NPE due to unvalidated callback value" am: 96d3d20f43
am: cc65a628eb

Change-Id: I5a6e2e92852f76251e8c1bfcd3c06c6773ec1fe4

Etan Cohen   authored and   android-build-merger   commited 2019-05-23 09:42:00 -07:00
e004325c7e
[CM] Fix NPE due to unvalidated callback value
Fix flaky test resulting from the above fix.

Bug: 132950880
Test: atest ConnectivityServiceTest
Merged-In: Ia2cc04b42288ea987483e5ab0e0a10093dc49502
Change-Id: Ia2cc04b42288ea987483e5ab0e0a10093dc49502
(cherry picked from commit cc65a628eb1172dc7b942d7f51b702099c15c23b)

Etan Cohen   commited 2019-05-23 16:23:13 +00:00
3f8c6019f3
[CM] Fix NPE due to unvalidated callback value
When unregistering callback due to ON_UNAVAILABLE did not check for
a non-null callback.

Bug: 132950880
Test: atest ConnectivityServiceTest
Merged-In: Ib3fde31d88c36469cdee1e3578606d130a9817cb
Change-Id: Ib3fde31d88c36469cdee1e3578606d130a9817cb
(cherry picked from commit 51ddc176abd23bd3ddbc26124e5541a983a1db07)

Etan Cohen   commited 2019-05-23 16:20:15 +00:00
3ad9eba8ad
[CM] Fix NPE due to unvalidated callback value
Fix flaky test resulting from the above fix.

Bug: 132950880
Test: atest ConnectivityServiceTest
Change-Id: I1ddf3bb016239bf88cdd8843a71dcb5e582e83ac

Etan Cohen   commited 2019-05-23 08:16:20 -07:00
bcf0006ff7