Commit Graph

3186 Commits

Author SHA1 Message Date
Lorenzo Colitti
2d6c1945a0 Update the avoid bad wifi settings on the handler thread. am: 21924545a2 am: 65f957399f am: 409425302b
am: b003ca1ec6

Change-Id: I5af2e404b8830dea2ea39d7e897ca2ce56f94d5a
2016-09-16 17:57:01 +00:00
Lorenzo Colitti
b003ca1ec6 Update the avoid bad wifi settings on the handler thread. am: 21924545a2 am: 65f957399f
am: 409425302b

Change-Id: I02d6cd44bd0588d2a516e65daba811638a2eb0cf
2016-09-16 17:46:19 +00:00
Lorenzo Colitti
65f957399f Update the avoid bad wifi settings on the handler thread.
am: 21924545a2

Change-Id: I595949881353f5779ed2bb55ff05f27b513cd6de
2016-09-16 17:32:09 +00:00
Lorenzo Colitti
21924545a2 Update the avoid bad wifi settings on the handler thread.
Currently, every call to avoidBadWifi fetches the current value
of the config variable and setting whenever it is called. This
means that the score of an unvalidated wifi network can
unpredictably change at any time, creating a data race.

Instead, persist the value and only update it when something
changes.

Bug: 31075769
Change-Id: I0f4e0e742c91ef77fabc95d3ebb494338396aca5
2016-09-17 00:57:38 +09:00
Lorenzo Colitti
1f80a59004 resolve merge conflicts of b62007a to master
Change-Id: Ib09134090aa135d88bb807034b262a23c8b40e5f
2016-09-16 01:45:15 +09:00
Lorenzo Colitti
b62007a830 Unit tests for avoid bad wifi networks setting. am: 83633c897a am: 26b930e3c7
am: f131f80e0a

Change-Id: I1c0f4549545ff9f1836154ef65661395835ad756
2016-09-15 16:20:27 +00:00
Lorenzo Colitti
f23aa46f08 Support displaying a dialog when wifi becomes unvalidated. am: 199ecfc79f am: 2b5b0e027b
am: 56e32083b5

Change-Id: Id908683dce15ffbafc042d506a38ec26d5e9a6ee
2016-09-15 16:18:42 +00:00
Lorenzo Colitti
26b930e3c7 Unit tests for avoid bad wifi networks setting.
am: 83633c897a

Change-Id: I6491f1a93f93f222e23ef6e5e437631556637e44
2016-09-15 16:05:45 +00:00
Lorenzo Colitti
2b5b0e027b Support displaying a dialog when wifi becomes unvalidated.
am: 199ecfc79f

Change-Id: I8b8e2b652510ca75407a9ad3c29ed111367941e0
2016-09-15 16:04:03 +00:00
Hugo Benichi
7c4ffcea6b Support ignoring penalty for bad wifi networks am: c9048bc556 am: 6630a620f9 am: edabb8e617
am: b2229c7168

Change-Id: I995c1adc61263a0536704fd32bd89efe1a8ec42b
2016-09-15 15:45:03 +00:00
Hugo Benichi
b2229c7168 Support ignoring penalty for bad wifi networks am: c9048bc556 am: 6630a620f9
am: edabb8e617

Change-Id: Ib9a60eb528eb62ebf26d5d5a1941bfed0bb21163
2016-09-15 15:36:58 +00:00
Lorenzo Colitti
a3b2cd7abc resolve merge conflicts of bbc1519 to nyc-mr1-dev am: 8121c2d0aa am: 886df309be
am: 9321342942

Change-Id: I81dadfcd629dd4dc5843932f7571d9df9bc3654f
2016-09-15 15:36:43 +00:00
Lorenzo Colitti
9321342942 resolve merge conflicts of bbc1519 to nyc-mr1-dev am: 8121c2d0aa
am: 886df309be

Change-Id: I0fd163898bb51e11bc2a21ae8ba7761691a737ce
2016-09-15 15:30:24 +00:00
Hugo Benichi
6630a620f9 Support ignoring penalty for bad wifi networks
am: c9048bc556

Change-Id: I6666ee45e9a08c02444c6268b2232bbe8aa2adec
2016-09-15 15:23:57 +00:00
Lorenzo Colitti
83633c897a Unit tests for avoid bad wifi networks setting.
Bug: 31075769
Change-Id: I21ba20df59ddce5731ef1ebe8846b3f00578a674
2016-09-15 23:45:07 +09:00
Lorenzo Colitti
199ecfc79f Support displaying a dialog when wifi becomes unvalidated.
Bug: 31075769
Change-Id: I7a6e7580769365bea930f638bd44edcaa28df134
2016-09-15 23:33:34 +09:00
Lorenzo Colitti
8121c2d0aa resolve merge conflicts of bbc1519 to nyc-mr1-dev
Change-Id: Ib1294563c6ae20454e44bfa5fc9fb2797864b8f5
2016-09-15 22:47:08 +09:00
Hugo Benichi
c9048bc556 Support ignoring penalty for bad wifi networks
This patch adds a way to configure devices so that a validated network
that becomes unvalidated is not penalized in the network scoring and
selection logic.

The intent is to prevent devices configured to do so from switching to a
lower scoring network such as cellular networks when a higher scoring
network such as wifi networks loses internet connectivity.

Bug: 31075769
Change-Id: Ie7e0f2607d214a178367fedfbef6c44768fa00a4
2016-09-15 18:34:13 +09:00
Hugo Benichi
bbc15194de Explicitly pass old score to updateCapabilities
This allows simplification of getCurrentScore function in
NetworkAgentInfo and its return value to depend on everValidated and
lastValidated.

Bug: 31075769
Change-Id: I0b3c85e3a61b006733e900e0a231424878317476
2016-09-15 18:33:23 +09:00
Lorenzo Colitti
440aba8c9c Add test coverage for background networks. am: d8a23ad61f am: 815bbf5678
am: 620562c61c

Change-Id: Ibbb14bd30b9b18799d301f023eb6770affbca518
2016-09-14 20:25:59 +00:00
Lorenzo Colitti
242b00f7ed Add a NET_CAPABILITY_FOREGROUND capability. am: 0f04220ffe am: aaec66110d
am: aabaa907de

Change-Id: I08ca73666668ddc6c9bfe002844a9d2e0ecb28e4
2016-09-14 19:22:54 +00:00
Lorenzo Colitti
f2b4b3e4e7 Add a background NetworkRequest type for mobile data always on. am: 2666be8ae7 am: 9396da4e10
am: 350a2fef4a

Change-Id: I9e11b75fe0af8a116593394b151c7fb4d1e167f8
2016-09-14 05:02:12 +00:00
Lorenzo Colitti
31fc3195fb Rematch requests first and listens second. am: 0c38d7c8cd am: 836a5db809
am: 1506251e93

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

Change-Id: Ib73537c95107b1b8d0a223abc053794ad24fcbf5
2016-09-14 03:29:48 +00:00
Lorenzo Colitti
aabaa907de Add a NET_CAPABILITY_FOREGROUND capability. am: 0f04220ffe
am: aaec66110d

Change-Id: I78d6aa21f8e4c6bbd9cefb4a36f1b77f4bbe4104
2016-09-13 16:23:10 +00:00
Lorenzo Colitti
d8a23ad61f Add test coverage for background networks.
Bug: 23113288
Change-Id: Idad62f5f025825f99007ccf7b20f530dc3cf6daa
2016-09-13 12:02:13 +09:00
Lorenzo Colitti
0f04220ffe Add a NET_CAPABILITY_FOREGROUND capability.
Bug: 23113288
Change-Id: I90cb9ffb5751f0d9ec822933f37680c401e49966
2016-09-13 12:02:13 +09:00
Lorenzo Colitti
350a2fef4a Add a background NetworkRequest type for mobile data always on. am: 2666be8ae7
am: 9396da4e10

Change-Id: I4b0e05e8bb87e37bf2564fd255b8be7a2b20118a
2016-09-12 13:48:53 +00:00
Lorenzo Colitti
1506251e93 Rematch requests first and listens second. am: 0c38d7c8cd
am: 836a5db809

Change-Id: Ia57cd548b2920efaee733f5cb0df66139a6e55e6
2016-09-12 13:46:48 +00:00
Lorenzo Colitti
2666be8ae7 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
0c38d7c8cd 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
8badb5756f Merge "Refactored INetworkPolicyListener callbacks." 2016-09-07 17:42:27 +00:00
Etan Cohen
1139704122 [NAN] Add transport type for NAN. [DO NOT MERGE] am: e7395027cf -s ours am: e3efe944fd -s ours am: 0890f0175a
am: 4ba6a728a7  -s ours

Change-Id: Ied593d01655d3b39dfff52990f209bf3179f5be7
2016-09-07 04:42:56 +00:00
Etan Cohen
4ba6a728a7 [NAN] Add transport type for NAN. [DO NOT MERGE] am: e7395027cf -s ours am: e3efe944fd -s ours
am: 0890f0175a

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

Change-Id: I439ed5ac5b70f6e693a441d8b6000f208351a3f7
2016-09-07 04:33:21 +00:00
Etan Cohen
e7395027cf [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 7473bc20ad)

Bug: 26564277
Change-Id: I975ebc72d8f97a592d18038b3d6465b7a40efa75
2016-09-06 15:54:10 -07:00
Felipe Leme
3d417283a9 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
34de7a3e55 Network switch notifications: rate & daily limits am: 9bf6fef270 am: 858499b2c0 am: 2c535a4f7c
am: e6c813b201

Change-Id: I0c067ec355eb2a50af3c828b1fe3ee8a78e44536
2016-08-31 23:31:56 +00:00
Hugo Benichi
6d2cb61e35 Network Switching Notifications: add unit tests am: 01f7228f5c am: 56f1281888 am: cf5f5785c9
am: 7ded0138f0

Change-Id: Idf4986df6f0f2b232aeaa5e43feb51615089dc71
2016-08-31 23:30:34 +00:00
Lorenzo Colitti
ff6b602a75 Don't notify on network switch if source network is validated. am: fde640e59d am: b301283d57 am: a0a41b1e3d
am: bed9b4583d

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

Change-Id: I166dd693345ed9a63411f5f1ed6bdf33015b1957
2016-08-30 20:32:52 +00:00
Hugo Benichi
7ded0138f0 Network Switching Notifications: add unit tests am: 01f7228f5c am: 56f1281888
am: cf5f5785c9

Change-Id: I978e49ba1302ca3d791c59555b5a143cefb62c06
2016-08-30 20:31:34 +00:00
Lorenzo Colitti
9bf6fef270 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
01f7228f5c Network Switching Notifications: add unit tests
BUG: 31132499
Change-Id: I9c50a59fe48efdcb51d2517f0a756691700c3ebe
2016-08-31 00:35:16 +09:00
Lorenzo Colitti
bed9b4583d Don't notify on network switch if source network is validated. am: fde640e59d am: b301283d57
am: a0a41b1e3d

Change-Id: I047a0040798223c163d333996e6bc06e206129a0
2016-08-30 11:02:33 +00:00
Lorenzo Colitti
fde640e59d 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
4f1ea3a36b Support notifying network switches via notifications and toasts. am: ddc5fd88fe am: 4549d8b4aa am: 10acdf7ad1
am: 6881182916

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

Change-Id: I0324cfdb7c070464c2caa73fa5fad8d1031c1e76
2016-08-25 09:36:13 +00:00
Lorenzo Colitti
ddc5fd88fe Support notifying network switches via notifications and toasts.
Bug: 31025214
Change-Id: If1578f422f38a1dcfaec529882aed01ae5e8d53c
2016-08-25 18:14:18 +09:00
Lorenzo Colitti
fe48243627 Refactor NetworkNotificationManager. am: c5391028ec am: a6dcb89e6d am: 4e0916b416
am: 2f063e3065

Change-Id: I1249d019ce449f8721541c138f89b98230a67b57
2016-08-23 18:34:58 +00:00