Commit Graph

2917 Commits

Author SHA1 Message Date
Lorenzo Colitti
bc0e0459da Add test coverage for background networks. am: 9e89c280e8 am: 815bbf5678
am: eaf5cb4dcd

Change-Id: Ibbb14bd30b9b18799d301f023eb6770affbca518
2016-09-14 20:25:59 +00:00
Lorenzo Colitti
af4519b4ac Add a NET_CAPABILITY_FOREGROUND capability. am: 32237c7a69 am: aaec66110d
am: 27e1fd3169

Change-Id: I08ca73666668ddc6c9bfe002844a9d2e0ecb28e4
2016-09-14 19:22:54 +00:00
Lorenzo Colitti
1befb3406e Add a background NetworkRequest type for mobile data always on. am: b5b725df0c am: 9396da4e10
am: 18328033db

Change-Id: I9e11b75fe0af8a116593394b151c7fb4d1e167f8
2016-09-14 05:02:12 +00:00
Lorenzo Colitti
b053dffaca Rematch requests first and listens second. am: 5d8b6bdb6e am: 836a5db809
am: 6fb1ebeb50

Change-Id: I87d20179025aabc44cb5b2e51f3dcb960b042c50
2016-09-14 05:00:13 +00:00
Lorenzo Colitti
eaf5cb4dcd Add test coverage for background networks. am: 9e89c280e8
am: 815bbf5678

Change-Id: Ib73537c95107b1b8d0a223abc053794ad24fcbf5
2016-09-14 03:29:48 +00:00
Lorenzo Colitti
27e1fd3169 Add a NET_CAPABILITY_FOREGROUND capability. am: 32237c7a69
am: aaec66110d

Change-Id: I78d6aa21f8e4c6bbd9cefb4a36f1b77f4bbe4104
2016-09-13 16:23:10 +00:00
Lorenzo Colitti
9e89c280e8 Add test coverage for background networks.
Bug: 23113288
Change-Id: Idad62f5f025825f99007ccf7b20f530dc3cf6daa
2016-09-13 12:02:13 +09:00
Lorenzo Colitti
32237c7a69 Add a NET_CAPABILITY_FOREGROUND capability.
Bug: 23113288
Change-Id: I90cb9ffb5751f0d9ec822933f37680c401e49966
2016-09-13 12:02:13 +09:00
Lorenzo Colitti
18328033db Add a background NetworkRequest type for mobile data always on. am: b5b725df0c
am: 9396da4e10

Change-Id: I4b0e05e8bb87e37bf2564fd255b8be7a2b20118a
2016-09-12 13:48:53 +00:00
Lorenzo Colitti
6fb1ebeb50 Rematch requests first and listens second. am: 5d8b6bdb6e
am: 836a5db809

Change-Id: Ia57cd548b2920efaee733f5cb0df66139a6e55e6
2016-09-12 13:46:48 +00:00
Lorenzo Colitti
b5b725df0c Add a background NetworkRequest type for mobile data always on.
Like a normal (foreground) request, a background request is only
satisfied by one network and will keep that network up. Unlike a
foreground request, when a network only has background requests,
it will linger, and after lingering is complete, it will become
a background network.

Future CLs will cause the system to treat background networks
differently, e.g., by requiring different permissions.

Bug: 23113288
Change-Id: I40f735269dad1042eb04fea15e64584fc903ccb3
2016-09-09 18:49:24 +09:00
Lorenzo Colitti
5d8b6bdb6e Rematch requests first and listens second.
This CL splits rematching in two parts: first rematch requests,
then rematch listens. This will allow us to change a network's
capabilities depending on what requests are on that network, and
properly dispatch callbacks depending on those capabilities.

The behaviour changes are as follows:

- Before this CL, callbacks for requests and listens were sent
  intermingled. After this CL, all request callbacks will be
  grouped together, and all listen callbacks will be grouped
  together.
- Before this CL, the order was:
    1. Send onLost callbacks.
    2. If applicable, switch the default network.
    3. Send onAvailable callbacks.
  After this CL, the order is:
    1. Send onLost callbacks for requests.
    2. If applicable, switch the default network.
    3. Send onLost callbacks for listens.
    4. Send onAvailable callbacks for listens.
    5. Send onAvailable callbacks for requests.

These changes shouldn't affect any apps because:

1. The order of callbacks continues to be first all onLost,
   then all onAvailable.
2. Both the old and the new code send callbacks in no particular
   order. Thus, the possible ordering combinations of callbacks
   in the new code are a strict subset of the possible ordering
   combinations of the old code.
3. The default network is switched before any onAvailable
   callback is sent.
4. Even though the new code does not send all onLost callbacks
   before switching the default network, even before this CL
   there was no guarantee that those callbacks would be received
   before the default network switch anyway, because callbacks
   are asynchronous.

Bug: 23113288
Change-Id: Ia08900c50db9ff43895047e2f4f36b6c6c31a1f9
2016-09-09 18:28:00 +09:00
TreeHugger Robot
9834d1c3a8 Merge "Refactored INetworkPolicyListener callbacks." 2016-09-07 17:42:27 +00:00
Etan Cohen
d468e52264 [NAN] Add transport type for NAN. [DO NOT MERGE] am: b91435ad22 -s ours am: e3efe944fd -s ours am: 7749cc7072
am: e93e5348bb  -s ours

Change-Id: Ied593d01655d3b39dfff52990f209bf3179f5be7
2016-09-07 04:42:56 +00:00
Etan Cohen
e93e5348bb [NAN] Add transport type for NAN. [DO NOT MERGE] am: b91435ad22 -s ours am: e3efe944fd -s ours
am: 7749cc7072

Change-Id: Ie40c480b45fcb5a660335eb42a71afcf8a8cebb5
2016-09-07 04:38:37 +00:00
Etan Cohen
7749cc7072 [NAN] Add transport type for NAN. [DO NOT MERGE] am: b91435ad22 -s ours
am: e3efe944fd  -s ours

Change-Id: I439ed5ac5b70f6e693a441d8b6000f208351a3f7
2016-09-07 04:33:21 +00:00
Etan Cohen
b91435ad22 [NAN] Add transport type for NAN. [DO NOT MERGE]
Add TRANSPORT_WIFI_NAN - specifies a peer-to-peer Wi-Fi NAN data
connectivity request.

While NAN uses Wi-Fi L1 PHY and part of the MAC - it is a different
protocol and constitutes a different transport.

(cherry-pick of commit 5b2641ee62)

Bug: 26564277
Change-Id: I975ebc72d8f97a592d18038b3d6465b7a40efa75
2016-09-06 15:54:10 -07:00
Felipe Leme
0a732d872b Refactored INetworkPolicyListener callbacks.
Methods onRestrictBackgroundWhitelistChanged() and
onRestrictBackgroundBlacklistChanged() were replaced by a more generic
onUidPoliciesChanged().

Test: m javac-check RUN_ERROR_PRONE=true
Test: m -j32 FrameworksServicesTests && adb install -r -g ${ANDROID_PRODUCT_OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk && adb shell am instrument -e class "com.android.server.NetworkPolicyManagerServiceTest" -w "com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner"

BUG: 28791717
Change-Id: I18b2ee4af06802e0d23822b153d1be9b429d5811
2016-09-06 12:49:48 -07:00
Lorenzo Colitti
d4b621255f Network switch notifications: rate & daily limits am: e5ebb71a81 am: 858499b2c0 am: 2c535a4f7c
am: 20a701cbc6

Change-Id: I0c067ec355eb2a50af3c828b1fe3ee8a78e44536
2016-08-31 23:31:56 +00:00
Hugo Benichi
7a34d54ff6 Network Switching Notifications: add unit tests am: 550ad8d1d0 am: 56f1281888 am: cf5f5785c9
am: ed9a34a936

Change-Id: Idf4986df6f0f2b232aeaa5e43feb51615089dc71
2016-08-31 23:30:34 +00:00
Lorenzo Colitti
096bed4a12 Don't notify on network switch if source network is validated. am: 673e80f021 am: b301283d57 am: a0a41b1e3d
am: 1b5c43a0d3

Change-Id: I150cbafb6ab3fce4800241bfacec4bf4ee73db31
2016-08-31 22:40:41 +00:00
Lorenzo Colitti
20a701cbc6 Network switch notifications: rate & daily limits am: e5ebb71a81 am: 858499b2c0
am: 2c535a4f7c

Change-Id: I166dd693345ed9a63411f5f1ed6bdf33015b1957
2016-08-30 20:32:52 +00:00
Hugo Benichi
ed9a34a936 Network Switching Notifications: add unit tests am: 550ad8d1d0 am: 56f1281888
am: cf5f5785c9

Change-Id: I978e49ba1302ca3d791c59555b5a143cefb62c06
2016-08-30 20:31:34 +00:00
Lorenzo Colitti
e5ebb71a81 Network switch notifications: rate & daily limits
This patch adds a daily limit to the maximum number of notifications
shown when switching networks.

It also adds a rate limit to prevent rapid successive notifications in
flapping scenarios.

Bug: 31132499
Change-Id: Iccb6d0899646ea6df3cfad32a421922263e0eb85
2016-08-31 00:36:11 +09:00
Hugo Benichi
550ad8d1d0 Network Switching Notifications: add unit tests
BUG: 31132499
Change-Id: I9c50a59fe48efdcb51d2517f0a756691700c3ebe
2016-08-31 00:35:16 +09:00
Lorenzo Colitti
1b5c43a0d3 Don't notify on network switch if source network is validated. am: 673e80f021 am: b301283d57
am: a0a41b1e3d

Change-Id: I047a0040798223c163d333996e6bc06e206129a0
2016-08-30 11:02:33 +00:00
Lorenzo Colitti
673e80f021 Don't notify on network switch if source network is validated.
Sometimes we switch away from a network to another (e.g., wifi to
cell data) not because the old network is unvalidated, but
because the score is lowered by a low signal strength.

In this case, don't notify the user of a network switch.

Bug: 31132499
Change-Id: I996a6e00096f8cb864fa9b00b36921725a4edb53
2016-08-29 16:30:21 +09:00
Lorenzo Colitti
5c458be7f6 Support notifying network switches via notifications and toasts. am: b268f9f554 am: 4549d8b4aa am: 10acdf7ad1
am: 9c231f7179

Change-Id: Ic2031d00a24a6fd7ad1969a962360920fac9afd1
2016-08-26 22:21:10 +00:00
Lorenzo Colitti
9c231f7179 Support notifying network switches via notifications and toasts. am: b268f9f554 am: 4549d8b4aa
am: 10acdf7ad1

Change-Id: I0324cfdb7c070464c2caa73fa5fad8d1031c1e76
2016-08-25 09:36:13 +00:00
Lorenzo Colitti
b268f9f554 Support notifying network switches via notifications and toasts.
Bug: 31025214
Change-Id: If1578f422f38a1dcfaec529882aed01ae5e8d53c
2016-08-25 18:14:18 +09:00
Lorenzo Colitti
23d1c6706a Refactor NetworkNotificationManager. am: eb166f447b am: a6dcb89e6d am: 4e0916b416
am: 9a0d4e6590

Change-Id: I1249d019ce449f8721541c138f89b98230a67b57
2016-08-23 18:34:58 +00:00
Lorenzo Colitti
3b61fef572 Move notification code out of ConnectivityService. am: 7d31cc0021 am: 622b5fbbf5 am: 28707247f4
am: 2caa412d20

Change-Id: I4263c2051e654588dab98e53e3015e59576fb987
2016-08-23 18:34:18 +00:00
Lorenzo Colitti
9a0d4e6590 Refactor NetworkNotificationManager. am: eb166f447b am: a6dcb89e6d
am: 4e0916b416

Change-Id: I548b311ab8dc1d7e08f17a6b31573262c8a4518e
2016-08-23 17:21:39 +00:00
Lorenzo Colitti
2caa412d20 Move notification code out of ConnectivityService. am: 7d31cc0021 am: 622b5fbbf5
am: 28707247f4

Change-Id: I6e3290891f322c1caca3ff70a3aa39dd140d6256
2016-08-23 17:20:59 +00:00
Lorenzo Colitti
eb166f447b Refactor NetworkNotificationManager.
1. Move from deprecated network types to transport types.
2. Rename and simplify (by passing in a NetworkAgentInfo object)
   the call signature of the method that displays notifications.
3. Add a method to clear notification, and unindent lots of code.
4. Move the legacy DcTracker-issued notification code to
   NetworkNotificationManager.

Bug: 31025214
Change-Id: Ie49c60126d0ed5bac620bc47e84fe038791b2d6c
2016-08-23 17:57:46 +09:00
Lorenzo Colitti
7d31cc0021 Move notification code out of ConnectivityService.
Bug: 31025214
Change-Id: I4190be6b57f92298b79bea8868f1876ecbfd2d75
2016-08-23 15:31:59 +09:00
TreeHugger Robot
e551e40377 Merge "Refactored NetworkStatsServiceTest to use Mockito instead of EasyMock." 2016-08-22 21:46:29 +00:00
Felipe Leme
39e1923fbb Refactored NetworkStatsServiceTest to use Mockito instead of EasyMock.
Test: m -j32 FrameworksServicesTests && adb install -r -g ${ANDROID_PRODUCT_OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk && adb shell am instrument -e class "com.android.server.net.NetworkStatsServiceTest" -w "com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner"

BUG: 30943463
Change-Id: I3fbdb0918f1d0e68f32afe07ca38d4ef217025df
2016-08-22 13:14:21 -07:00
Felipe Leme
2b54780c88 Use @Ignore to explicitly disable a @Test method.
BUG: 30839080
BUG: 31007021
Change-Id: Ia93f6b3c8fd1d2d2826c3b04b05f66339672a7e6
2016-08-22 09:02:12 -07:00
Felipe Leme
34634f9339 Fixed NetworkStatsServiceTest and converted it to JUnit4.
Most tests were failing because due to a null NetworkCapabilities.
Example:

1) testNetworkStatsWifi(com.android.server.net.NetworkStatsServiceTest)
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.net.NetworkCapabilities.hasCapability(int)' on a null object reference
	at
	com.android.server.net.NetworkStatsService.updateIfacesLocked(NetworkStatsService.java:983)

BUG: 30839080

Change-Id: Ib81d81df2828fc573c40b26c23af9d80ae43d3f6
2016-08-18 15:45:09 -07:00
Erik Kline
735ab8a858 Support timeouts for requestNetwork() invocations. [DO NOT MERGE]
am: 8616c69985  -s ours

Change-Id: Ia98ec84e1c9e691c58ebb79f516b62b229dda5fe
2016-08-17 17:51:52 +00:00
Etan Cohen
1b47629b49 Merge "Support timeouts for requestNetwork() invocations." 2016-08-17 17:15:46 +00:00
Jeremy Joslin
52a7d52cc5 VPN network stat accounting changes.
Properly account for VPN apps that make heavy use of the tun
interface. Prior to this change a VPN app could be incorrectly charged
for more data than it actually used if it sent more traffic through
the tun interface than the underlying interface.

This change excludes VPN app traffic on the tun interface from the
adjustment pool and doesn't redistribute traffic to the VPN app.
Instead all of the redistributed traffic is deducted from the VPN app
which effectively represents any overhead incurred by the VPN app.

BUG: 30557871
Change-Id: I62a75a0c0c0111e052b7903baa9f5d6d94ef57fd
2016-08-16 15:53:57 -07:00
Erik Kline
66721821df Support timeouts for requestNetwork() invocations.
(cherry-pick of 06c3ef1367e850746eef0a5462bdce8674d74c30)

Bug: 21414325
Change-Id: I08118be8e8cf92fc406d431e99a6c9191a863ff3
2016-08-15 10:19:45 -07:00
Erik Kline
8616c69985 Support timeouts for requestNetwork() invocations. [DO NOT MERGE]
Bug: 21414325
Change-Id: I08118be8e8cf92fc406d431e99a6c9191a863ff3
2016-08-15 17:18:11 +00:00
Winson
ebc8e3fc17 Defaulting wallpaper offset to edge of the screen. am: 4b4ba90d66 am: 18faeaa5fa
am: 89218fdd83

Change-Id: I86d0616df8f938b1b80651be83802796a24250b9
2016-07-31 02:12:44 +00:00
Hugo Benichi
89218fdd83 IpConnectivityMetrics: no metrics upload in tests am: 638621a1f9
am: ae048d8363

Change-Id: I4171f72e27f39f2c10e4607b84934676337c1b4e
2016-07-29 09:34:35 +00:00
Hugo Benichi
638621a1f9 IpConnectivityMetrics: no metrics upload in tests
Similarly to ApfTest, this patch changes ConnectivityServiceTest to use
a mock object instead of IpConnectivityLog so that running
ConnectivityServiceTest does not generate android.net.metrics events.

Bug: 30450301
Change-Id: Ibc0479f381f26e60baefbae15407c62aecbf6666
2016-07-29 16:58:35 +09:00
Hugo Benichi
61f1063650 resolve merge conflicts of c489935 to nyc-mr1-dev-plus-aosp
am: 8850477c85

Change-Id: Ia0a4544784592ac857e5bd652fee47eec621f3a0
2016-07-26 15:18:51 +00:00
Hugo Benichi
8850477c85 resolve merge conflicts of c489935 to nyc-mr1-dev-plus-aosp
Change-Id: Ib1c01241fece36f660d27f3450ba8059b3b2809f
2016-07-26 13:08:14 +09:00