Commit Graph

6981 Commits

Author SHA1 Message Date
Benedict Wong
00ea7edde3 Revert "Take all VPN underlying networks into account when migrating traffic for"
am: 237d3e55cd

Change-Id: Ie9e830962e702c5e66faa7239e6c5037ed3d791d
2019-06-07 02:33:33 -07:00
Benedict Wong
f428a00d1e Revert "NetworkStatsService: Fix getDetailedUidStats to take VPNs into account."
am: d73fa75845

Change-Id: I9bf180aca56a8b5e2c5262beabac3ceaa9b00315
2019-06-07 02:33:30 -07:00
Benedict Wong
2dce717756 Revert "Addressing comments for http://ag/7700679."
am: 01ca66ff03

Change-Id: I56e7736ced431a5dcd78a6a258abfad09745d25e
2019-06-07 02:33:26 -07:00
Benedict Wong
c57fff650e Revert "Add one more test for VPN usage stats."
am: e81acb7351

Change-Id: I72ae3f9575fe954f4f1db4b85b0f19d15448fbbf
2019-06-07 02:33:21 -07:00
Benedict Wong
237d3e55cd 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
2019-06-07 09:18:01 +00:00
Benedict Wong
d73fa75845 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
2019-06-07 09:17:47 +00:00
Benedict Wong
01ca66ff03 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
2019-06-07 09:17:31 +00:00
Benedict Wong
e81acb7351 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
2019-06-07 09:16:48 +00:00
Lorenzo Colitti
89982edb36 Merge "Don't use a high-priority notification on auto-join." am: 4658a44342
am: 3c695c1501

Change-Id: I2da85c5824c9a13c7f17a5872438dbd6490e7d58
2019-06-07 01:44:55 -07:00
Lorenzo Colitti
4658a44342 Merge "Don't use a high-priority notification on auto-join." 2019-06-07 08:26:38 +00:00
Lorenzo Colitti
faee26026f Don't use a high-priority notification on auto-join.
If the device connects to a network automatically and not through
user action, a high-priority notification is intrusive and is
inconsistent with other networking notifications, which are
usually only high priority if the network is manually selected.

Bug: 130766237
Test: see next CL in patch series
Change-Id: I8824f2d1a0efeb6cb75e430ef5159ebce0018779
2019-06-07 12:53:30 +09:00
Lorenzo Colitti
59bd1330a3 Merge "Don't use a high-priority notification on auto-join." into qt-dev
am: 831831c76c

Change-Id: Ie18c89162fd9db72a9f77db3737cb9054a5316b7
2019-06-06 04:15:44 -07:00
Lorenzo Colitti
31b6b56633 Don't use a high-priority notification on auto-join.
If the device connects to a network automatically and not through
user action, a high-priority notification is intrusive and is
inconsistent with other networking notifications, which are
usually only high priority if the network is manually selected.

Bug: 130766237
Test: see next CL in patch series
Change-Id: I8824f2d1a0efeb6cb75e430ef5159ebce0018779
2019-06-06 18:21:34 +09:00
Lorenzo Colitti
a4b5db480f Merge "Always prompt for limited connectivity." am: 19dd9a3f83
am: f1397f3dcf

Change-Id: Ie2a78f4aa747cbfb1b2b51f34df04c6ed0dcae27
2019-06-05 21:57:09 -07:00
Lorenzo Colitti
19dd9a3f83 Merge "Always prompt for limited connectivity." 2019-06-06 04:28:53 +00:00
Lorenzo Colitti
d711f798a8 [automerger skipped] Merge "Allow passing in acceptUnvalidated without explicitlySelected" am: 219512edd0
am: 1ee4d86be7 -s ours
am skip reason: change_id I13465090b7b1c0bf5dc83362387a5428d77b7e1d with SHA1 9a79a6d41e is in history

Change-Id: If6cfacff38eb2038cc41f4caad83440c8b2f64cb
2019-06-05 20:37:15 -07:00
junyulai
ccdb653d59 [automerger skipped] Merge "Fix cannot create Nat-T keepalive on mobile data" am: fa5768a4a3
am: 9ede677bb2 -s ours
am skip reason: SHA1 9ede677bb2 skipped by user junyulai

Change-Id: I08fd510c9613f075f00a0fffb41ee09a2f02f409
2019-06-05 20:26:48 -07:00
Lorenzo Colitti
559503f05e Always prompt for limited connectivity.
Bug: 130766237
Test: See subsequent CL in same patch series.
Change-Id: I45b4a7ba2e21c0be868939d8c7bb78891d69c48b
2019-06-06 11:59:49 +09:00
Lorenzo Colitti
17c15a4210 Merge "Always prompt for limited connectivity." into qt-dev
am: 4a5a129fb2

Change-Id: I41177562415409ec69b9116caa8f3f2cad03b38e
2019-06-05 12:55:31 -07:00
Lorenzo Colitti
619744ab5a Always prompt for limited connectivity.
Bug: 130766237
Test: See subsequent CL in same patch series.
Change-Id: I45b4a7ba2e21c0be868939d8c7bb78891d69c48b
2019-06-06 00:32:57 +09:00
Lorenzo Colitti
219512edd0 Merge "Allow passing in acceptUnvalidated without explicitlySelected" 2019-06-05 05:00:14 +00:00
Lorenzo Colitti
72792e2f8f Allow passing in acceptUnvalidated without explicitlySelected
This will allow wifi to tell ConnectivityService that partial
connectivity is acceptable even if the network is not explicitly
selected.

This is needed when the user selects a partial connectivity
network and tells the system to connect to the network, and never
to ask again. In such cases, the system must switch to the
network even if it is not explicitly selected.

Bug: 130766237
Test: atest FrameworksNetTests
Test: unit tests in an upcoming CL
Change-Id: I13465090b7b1c0bf5dc83362387a5428d77b7e1d
Merged-In: I13465090b7b1c0bf5dc83362387a5428d77b7e1d
(cherry picked from commit 9a79a6d41e)
2019-06-05 11:12:18 +09:00
Lorenzo Colitti
27c3d9c177 Merge "Allow passing in acceptUnvalidated without explicitlySelected" into qt-dev
am: f09098bacb

Change-Id: Ifd9dbc9c83e426e66417247cbf1fa594193e000f
2019-06-04 18:29:51 -07:00
TreeHugger Robot
f09098bacb Merge "Allow passing in acceptUnvalidated without explicitlySelected" into qt-dev 2019-06-04 18:00:31 +00:00
junyulai
0b8e9b043e Merge "Fix cannot create Nat-T keepalive on mobile data" into qt-dev
am: eabafd5ceb

Change-Id: I580b4dd2e493430e8420ca0907f9cf7d1d5a8773
2019-06-04 08:48:21 -07:00
Lorenzo Colitti
9a79a6d41e Allow passing in acceptUnvalidated without explicitlySelected
This will allow wifi to tell ConnectivityService that partial
connectivity is acceptable even if the network is not explicitly
selected.

This is needed when the user selects a partial connectivity
network and tells the system to connect to the network, and never
to ask again. In such cases, the system must switch to the
network even if it is not explicitly selected.

Bug: 130766237
Test: atest FrameworksNetTests
Test: unit tests in an upcoming CL
Change-Id: I13465090b7b1c0bf5dc83362387a5428d77b7e1d
2019-06-04 14:35:22 +00:00
junyulai
6b7cf0f2a9 Fix cannot create Nat-T keepalive on mobile data
Currently phone process fail to unparcel NattKeepalivePacketData
since it is not in framework. Moves NattKeepalivePacketData to
framework to make it can be utilized by telephony.

This change also removes the error feedback triggered by calling
add keepalive packet filter to an unsupported network agent. This
is misinterpreted by KeepaliveTracker that start keepalive is
failing.

Bug: 134048171
Test: 1. atest android.net.cts.ConnectivityManagerTest#testSocketKeepaliveLimitTelephony
      2. atest android.net.cts.ConnectivityManagerTest
      3. atest FrameworksNetTests
      4. atest FrameworksTelephonyTests

Merged-In: If630d5b339aa722717258c721daa8ead8c431e2d
Change-Id: Ic0f168be6f5a6263a5e0565b6381dcb5c645660f
(cherry picked from commit 9ede677bb2c081ccdc41c8c3c19c949114bcc138)
2019-06-04 20:44:29 +08:00
Treehugger Robot
fa5768a4a3 Merge "Fix cannot create Nat-T keepalive on mobile data" 2019-06-04 12:09:00 +00:00
junyulai
38c0624caf Fix cannot create Nat-T keepalive on mobile data
Currently phone process fail to unparcel NattKeepalivePacketData
since it is not in framework. Moves NattKeepalivePacketData to
framework to make it can be utilized by telephony.

This change also removes the error feedback triggered by calling
add keepalive packet filter to an unsupported network agent. This
is misinterpreted by KeepaliveTracker that start keepalive is
failing.

Bug: 134048171
Test: 1. atest android.net.cts.ConnectivityManagerTest#testSocketKeepaliveLimitTelephony
      2. atest android.net.cts.ConnectivityManagerTest
      3. atest FrameworksNetTests
      4. atest FrameworksTelephonyTests
Change-Id: If630d5b339aa722717258c721daa8ead8c431e2d
2019-06-04 18:22:15 +08:00
Lorenzo Colitti
94a2282db1 Merge "Don't auto-connect to networks that have no/limited connectivity." into qt-dev
am: 5c355b31ea

Change-Id: Ic988e284f12b8b54c760d17cd6c6aa93e84f1721
2019-06-03 17:12:14 -07:00
TreeHugger Robot
5c355b31ea Merge "Don't auto-connect to networks that have no/limited connectivity." into qt-dev 2019-06-03 23:58:17 +00:00
Lorenzo Colitti
3f2a87d59b [automerger skipped] Merge "Re-notify if the network goes to PARTIAL." into qt-dev
am: ad3e86a742 -s ours
am skip reason: change_id I1b79d3faf96ffe792738935088e4ebbdfcc0d878 with SHA1 aa0cfad484 is in history

Change-Id: Ifa6185f3daa9087e9d2a6ecffb31c6029db331e0
2019-06-03 07:28:46 -07:00
Lorenzo Colitti
51dc90343c Re-notify if the network goes to PARTIAL.
If NetworkMonitor detects partial connectivity before
EVENT_PROMPT_UNVALIDATED arrives, show the partial
connectivity notification immediately. Re-notify
partial connectivity silently if no internet
notification already there.

Bug: 130683832
Bug: 130766237
Test: atest com.android.server.ConnectivityServiceTest
Change-Id: I7d4eddc643ec795c3961097dc1bdd314d168f6c7
Merged-In: I1b79d3faf96ffe792738935088e4ebbdfcc0d878
(cherry picked from commit 58d4e7304cfce68e338ab34022a0b29d45f42c38)
2019-06-03 13:19:22 +00:00
Lorenzo Colitti
aa0cfad484 Merge "Re-notify if the network goes to PARTIAL." am: 57fd4bd182
am: 58d4e7304c

Change-Id: I1b79d3faf96ffe792738935088e4ebbdfcc0d878
2019-06-03 06:10:10 -07:00
Lorenzo Colitti
57fd4bd182 Merge "Re-notify if the network goes to PARTIAL." 2019-06-03 12:50:11 +00:00
Chiachang Wang
ca5ee390f9 Re-notify if the network goes to PARTIAL.
If NetworkMonitor detects partial connectivity before
EVENT_PROMPT_UNVALIDATED arrives, show the partial
connectivity notification immediately. Re-notify
partial connectivity silently if no internet
notification already there.

Bug: 130683832
Bug: 130766237
Test: atest com.android.server.ConnectivityServiceTest
Change-Id: I7d4eddc643ec795c3961097dc1bdd314d168f6c7
2019-06-03 12:49:53 +00:00
Lorenzo Colitti
93ea6c7847 [automerger skipped] Merge changes Ib9a15fec,I9f3f2588 into qt-dev
am: f4a435aca0 -s ours
am skip reason: change_id Ib9a15fececd8579fc5b139fe0341275a45512e0f with SHA1 260d998775 is in history

Change-Id: I2aa4637ae7a48afbf7b4ad953837762262bd94b8
2019-05-31 08:58:13 -07:00
Lorenzo Colitti
e96d9fc909 Merge "Don't crash ConnectivityService if the network stack crashes." am: 55d1b0500a
am: ac29a97d10

Change-Id: Idae97f7dc29fd95ede722fe34dc20b941002a41c
2019-05-31 07:22:43 -07:00
Lorenzo Colitti
98504571be Don't crash ConnectivityService if the network stack crashes.
When the network stack crashes, the system will rebind to it.
Existing references are no longer useful (they just throw
RemoteException) but if the system is still up, then the user
can at least recover the situation by taking actions such as
going into airplane mode, toggling wifi, etc.

This CL stops ConnectivityService from crashing the system when
it cannot talk to NetworkMonitor. This is arguably better than
crashing the system, because crashing the system is disruptive
and carries the serious risk of a bootloop from which it is not
possible to recover.

NetworkStackClient already contains code to crash the system
when the network stack crashes. This change help ensure that
if a crash occurs, it is the result of an explicit decision by
that code instead of an unchecked exception in one of the callers
of the network stack.

Bug: 133725814
Test: builds, boots
Test: atest FrameworksNetTests NetworkStackTests
Change-Id: Ib9a15fececd8579fc5b139fe0341275a45512e0f
Merged-In: Ib9a15fececd8579fc5b139fe0341275a45512e0f
(cherry picked from commit ac29a97d10fe8ea0720763f4ca4657cac85732a1)
2019-05-31 14:19:36 +00:00
Lorenzo Colitti
260d998775 Don't crash ConnectivityService if the network stack crashes.
When the network stack crashes, the system will rebind to it.
Existing references are no longer useful (they just throw
RemoteException) but if the system is still up, then the user
can at least recover the situation by taking actions such as
going into airplane mode, toggling wifi, etc.

This CL stops ConnectivityService from crashing the system when
it cannot talk to NetworkMonitor. This is arguably better than
crashing the system, because crashing the system is disruptive
and carries the serious risk of a bootloop from which it is not
possible to recover.

NetworkStackClient already contains code to crash the system
when the network stack crashes. This change help ensure that
if a crash occurs, it is the result of an explicit decision by
that code instead of an unchecked exception in one of the callers
of the network stack.

Bug: 133725814
Test: builds, boots
Test: atest FrameworksNetTests NetworkStackTests
Change-Id: Ib9a15fececd8579fc5b139fe0341275a45512e0f
2019-05-31 19:30:36 +09:00
Chalard Jean
76f4832cf0 [automerger skipped] Merge "Prevent a 4-way binder interlock leading to a leak." into qt-dev
am: f3eaec257a -s ours
am skip reason: change_id Ide2428dab3fcd6d7cd00aa2a9fd99d6c99b815a4 with SHA1 1534719964 is in history

Change-Id: I08e37b4458b3c6242a1cca8aab913b09642a9e53
2019-05-31 02:26:51 -07:00
Varun Anand
bc873ced49 [automerger skipped] Merge changes from topic "vpn_data_accn_tests" am: b50e778fa7
am: 9561790069 -s ours
am skip reason: change_id Iffd3f95fc2e11d311691a797b010edb38d2ef3c6 with SHA1 54bb4f4608 is in history

Change-Id: I86c99de74590e3ad54055a16b5c349b6ba3659ab
2019-05-30 13:26:09 -07:00
Luke Huang
8878d767e8 Merge "Fix issue for DnsResolver#query" into qt-dev
am: 055eae2809

Change-Id: Ia1ce7b84f4ae4984e1b940760f02901c88fade48
2019-05-30 09:18:02 -07:00
Chiachang Wang
07b37664dd [automerger skipped] Merge "Replace limited connectivity notification after detecting it" into qt-dev
am: dbf5525b47 -s ours
am skip reason: change_id I004e78a33689e2208918d4316bcf9a8f50a0bac3 with SHA1 0bad04b8ef is in history

Change-Id: I11daaf075229a2891eb2d8b3df54a91a285d52fb
2019-05-30 09:16:54 -07:00
Chalard Jean
2478588d17 [automerger skipped] Merge "Always give VPN the INTERNET capability." into qt-dev
am: bc16cf3d72 -s ours
am skip reason: change_id I262ca41fe0225660551c9a421562405366b6acac with SHA1 16da69ea0e is in history

Change-Id: I367d5afaa5ee254064d61f7f807af838b37583fe
2019-05-30 09:15:23 -07:00
Lorenzo Colitti
e13b3791a0 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
2019-05-30 15:59:28 +00:00
Varun Anand
ab4f831229 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
2019-05-30 15:59:07 +00:00
Chalard Jean
ba0dfecf78 Prevent a 4-way binder interlock leading to a leak.
System server             |        NetworkStack
                              |
NetworkMonitorCallbacks  ←----|--- NetworkMonitorCallbacks$Stub$Proxy
         ↓                    |           ↑
  NetworkAgentInfo            |      NetworkMonitor
         ↓                    |           ↑
NetworkMonitor$Stub$Proxy ----|---→ NetworkMonitorImpl

Bug: b/133174607
Test: Manual. The simplest artifact is observed by watching the output of
adb shell dumpsys meminfo -d com.android.networkstack | grep 'Proxy Binders'
while connecting and disconnecting multiple times to any network.
This will display the number of binder proxies. Before this, the binder
proxy count increases by 1 with each connection and never goes down (there
is some noise, as proxy objects are sometimes created for other reasons,
and get GC'd eventually). After this, the binder proxy count is always
eventually stable at 27 + connected network count.

See the bug for the complete analysis.

Merged-In: Ide2428dab3fcd6d7cd00aa2a9fd99d6c99b815a4
Change-Id: I6b74cf12bdbc72c0593d2a4d6f39c895d1ef3534
(cherry picked from commit eb43884fee35102a7fc886750d6a7e891a82ce33)
2019-05-30 14:46:45 +00:00
TreeHugger Robot
055eae2809 Merge "Fix issue for DnsResolver#query" into qt-dev 2019-05-30 13:37:38 +00:00
TreeHugger Robot
dbf5525b47 Merge "Replace limited connectivity notification after detecting it" into qt-dev 2019-05-30 12:52:33 +00:00