Commit Graph

3576 Commits

Author SHA1 Message Date
Hugo Benichi
0f96fca5d3 Merge "ConnectivityServiceTest: mark flaky test as such" 2016-10-27 05:21:33 +00:00
Hugo Benichi
144810b6cf ConnectivityServiceTest: mark flaky test as such
This patch extracts into its own independent test a test sub-block looking
for a race condition when not waiting on handlers to become idle:
there is no way to prevent the race from not happening when looking for
it this way. This makes the test flakky.

This new independent test is tagged with @FlakkyTest(tolerance = 3).

Test: ConnectivityServiceTest passes, with higher probability.
Bug: 31479480
Change-Id: Ic0e2ffbe669f2ea8cc62e8a0d4763703368db019
2016-10-27 09:38:54 +09:00
Glen Kuhne
1f0cb8f6ab Move ipconnectivity.proto to services-proto.jar
Moved ipconnectivity.proto from services.core.jar to
framework-protos.jar.
Replaced 'mergeFrom' MessageNano base class calls, with 'parseFrom'
IpConnectivityLog calls.

This solves an issue where the services.jar would conflict with
duplicate nano proto base class definitions in other .jars
(wifi-service.jar).

Bug: 32261442
Test: Existing unit tests pass
Change-Id: I49100935fcae2e85e12eaa7f3462864f3a340b97
2016-10-26 10:18:46 -07:00
Christopher Wiley
4237636ea2 Merge "Add unit tests for Tethering.isTetherProvisioningRequired" am: 836ffa6e1c am: d2b306dee1 am: 0dcc2eccba
am: 2ae41619ae

Change-Id: Iee7c8575ee22a494e2657e15e1aaae9b05a37045
2016-10-25 18:43:16 +00:00
Christopher Wiley
0dcc2eccba Merge "Add unit tests for Tethering.isTetherProvisioningRequired" am: 836ffa6e1c
am: d2b306dee1

Change-Id: Ica704d0a64dde80ae0a9f1cef0250bfbdafcd49a
2016-10-25 18:31:02 +00:00
Christopher Wiley
d2b306dee1 Merge "Add unit tests for Tethering.isTetherProvisioningRequired"
am: 836ffa6e1c

Change-Id: I1dab386e3891c01a2917c32847d2aecdbfa10102
2016-10-25 18:23:02 +00:00
Christopher Wiley
fcc0d9fd8b Add unit tests for Tethering.isTetherProvisioningRequired
Check that we tolerate various dependencies not being available.

Bug: 31946071
Test: These are tests

Change-Id: Ic0a9cd6f255ba9ff4c774dee640df1a0bdf8dc39
2016-10-24 17:07:05 -07:00
TreeHugger Robot
70544b339b Merge changes I1a544a8d,Ie78d3fb0
* changes:
  IpConnectivityMetrics: rate limit ApfProgramEvents
  IpConnectivityMetrics reads buffer size in settings
2016-10-24 14:45:46 +00:00
Hugo Benichi
e3f7299ce2 IpConnectivityMetrics: rate limit ApfProgramEvents
This patch uses the previously introduced TokenBucket to rate limit
ApfProgramEvents, still allowing for burst of ApfProgramEvents when a
new interface is set up (due to ipv4 provisioning, multicast lock, ipv6 RAs
triggering new APF program events in short amounts of time).

Test: new test in IpConnectivityMetricsTest
Bug: 1550402
Change-Id: I1a544a8d62e6b02f0ed0088ab76c4bad338d2f44
2016-10-24 21:54:37 +09:00
Hugo Benichi
6d8c1dfe4b IpConnectivityMetrics reads buffer size in settings
Test: IpConnectivityMetricsTest passes. Also manually changed the new
setting and verified the buffer size is as expected after flushing the
buffer.
Bug: 32198637
Change-Id: Ie78d3fb03cea7883585549dac4f2063f0a8d9f4b
2016-10-24 13:52:41 +09:00
Jeremy Joslin
de4886b1bd VPN network stat accounting changes. am: adaddcd778 am: c63551df8e
am: bc3eed1e5a

Change-Id: I1edec6bf2a590f5b0ff010adfd6f2785a1aaa994
2016-10-21 23:47:35 +00:00
Jeremy Joslin
bc3eed1e5a VPN network stat accounting changes. am: adaddcd778
am: c63551df8e

Change-Id: I797ac586581f83ada0e94639dd435122c987f1c1
2016-10-21 23:43:06 +00:00
Jeremy Joslin
c63551df8e VPN network stat accounting changes.
am: adaddcd778

Change-Id: I1c65db583cdd1d5b519830e521c633cb8dee449f
2016-10-21 23:37:57 +00:00
Jeremy Joslin
adaddcd778 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-10-21 18:47:57 +09:00
Hugo Benichi
dbac14ba69 Merge "IpConnectivity metrics: add version number" 2016-10-21 04:35:52 +00:00
TreeHugger Robot
650fa1cca6 Merge "ConnectivityManager: use ConnectivityThread looper" 2016-10-21 01:49:46 +00:00
Hugo Benichi
3b41f05d68 ConnectivityManager: use ConnectivityThread looper
This patch removes the static singleton looper used by
ConnectivityManager and instead uses the common ConnectivityThread.

This allows to removes the static atomic counter used to track
the number of registered NetworkCallback in ConnectivityManager, because
the looper is not turned off anymore when no callbacks are registered.

Also an overloaded version of sendRequestForNetwork is added taking as a
new parameter a Handler. This will allow to overload various callback
and request related API calls with user provided Handlers.

Test: ConnectivityServiceTest passes
Bug: 26749700
Bug: 28537383
Bug: 32130437
Change-Id: I431afcee7c7155bd7bac23a2e1e97fd5d6520c74
2016-10-21 08:54:34 +09:00
Hugo Benichi
12498a675e Merge "ConnectivityThread: use lazy holder idiom" 2016-10-20 23:49:03 +00:00
Hugo Benichi
55a1f6ee61 Merge "ConnectivityManager: a simpler CallbackHandler" 2016-10-20 23:46:30 +00:00
Calvin On
d6d4e341e2 Add option to skip and avoid captive portals. am: 5139717c74
am: 4376c759d4

Change-Id: I530ccb95aa97100b27d71186173645031082acc1
2016-10-20 20:26:52 +00:00
Calvin On
4376c759d4 Add option to skip and avoid captive portals.
am: 5139717c74

Change-Id: Id38d5c03d06822f9b20abd65db9dd04c90110b63
2016-10-20 20:18:10 +00:00
Calvin On
5139717c74 Add option to skip and avoid captive portals.
Test: ConnectivityServiceTest updated with test cases.
Test: Manually tested against att-wifi in B42.
Bug: 30222699
Change-Id: Ibe63942da04748ab0406e24e0f44be31d47710a0
(cherry picked from commit be96da11ccb5dd500f920c3ba90d350857293b3d)
2016-10-20 18:50:46 +00:00
Calvin On
dada145a85 Add option to skip and avoid captive portals.
Test: ConnectivityServiceTest updated with test cases.
Test: Manually tested against att-wifi in B42.
Bug: 30222699
Change-Id: Ibe63942da04748ab0406e24e0f44be31d47710a0
2016-10-20 00:51:39 -07:00
Hugo Benichi
3ab84b087a ConnectivityThread: use lazy holder idiom
This patch changes the way that the ConnectivityThread is lazily
instantiated by using the "lazy initialization holder class idiom".

The first code point that tries to obtain a reference to the unique
ConnectivityThread instance will trigger the creation of the Singleton
class, which will guarantee a thread-safe initialization of the static
INSTANCE field inside Singleton according to the language specs.

This is the Item #71 of Effective Java.

The unique static instance of ConnectivityThread is not stored directly
inside ConnectivityThread class but is stored in a static nested class.
This is to avoid triggering the creation of that unique instance when
Zygote does class preloading at phone startup. Otherwise this would lead
to Zygote creating a new OS thread during preloading, which is a fatal
error.

Test: frameworks-wifi tests pass
Bug: 26749700
Bug: 28537383
Bug: 32130437

Change-Id: I4d5672a3195d3af9a0a2c85f871695257abe782b
2016-10-20 09:30:13 +09:00
Hugo Benichi
0b42baf68a ConnectivityManager: a simpler CallbackHandler
This patch simplifies CallbackHandler in the following way:
  - CallbackHandler directly uses the static references to
    sNetworkCallback and sCallbackRefCount. This allows to remove
    instance fields in CallbackHandler.
  - CallbackHandler does not have a reference to ConnectivityManager
    anymore
  - CallbackHandler.getObject() is now generic in a type-safe way.

Test: ConnectivityServiceTest passes
Bug: 28537383
Bug: 32130437
Change-Id: I5004da5b91498e6ff7f8b05057a9e24b975bb56e
2016-10-20 09:09:02 +09:00
TreeHugger Robot
4320474eb2 Merge "Show notification for always-on app VPN" 2016-10-17 15:33:59 +00:00
Hugo Benichi
f04b01f0a0 IpConnectivity metrics: add version number
This patch adds a version field to ipconnectivity.proto and populates it
to 2, which is the logical version number for NYC-MR2.

Test: IpConnectivity{EventBuilder,Metrics}Test pass
Bug: 32127906
Change-Id: I1439f012b7f9b4211d5d5429c274ad03d2ac9d6b
2016-10-17 16:24:19 +09:00
Michal Karpinski
58a5c98b40 Extending DNS event reporting
This adds hostname, array of addresses, total count of IP addresses
and uid to the existing pipeline.
Currently ignores the new data it receives, further work will be
done in the subsequent CLs.

Test: for now just the benchmarking, in the future unit and CTS

Bug: 29748723
Change-Id: Ice7db208282934e74f0e1808ffbae96d476c4216
2016-10-10 16:49:07 +01:00
Erik Kline
d44ea3ce1e Refactor "avoid bad wifi" logic into a utility class am: 95ecfee674 am: 567fc7861d am: 23d83b031f
am: 18cc602880

Change-Id: Ie3d058d6c9da43763d10b0a2bc96171d07673e9d
2016-10-07 01:03:58 +00:00
Christopher Wiley
a996f42121 Notify NetworkPolicyManagerService on tethering changes am: cfd438e0fd am: deed245740
am: 30a5755afc

Change-Id: I063450c82f80f137cd130d384134a83820d8f084
2016-10-07 00:37:04 +00:00
Erik Kline
18cc602880 Refactor "avoid bad wifi" logic into a utility class am: 95ecfee674 am: 567fc7861d
am: 23d83b031f

Change-Id: I7db61e54c80ec836d00bf4ae087137bb296c30f1
2016-10-06 20:44:56 +00:00
Erik Kline
23d83b031f Refactor "avoid bad wifi" logic into a utility class am: 95ecfee674
am: 567fc7861d

Change-Id: Id670d13b99ab6935b67335e19d2389e5b4f61111
2016-10-06 20:16:57 +00:00
Christopher Wiley
30a5755afc Notify NetworkPolicyManagerService on tethering changes am: cfd438e0fd
am: deed245740

Change-Id: Ic1b99f8bbeffde72dd93d4879aa25954d0d98554
2016-10-06 20:08:44 +00:00
Tony Mak
9ca892f698 Show notification for always-on app VPN
This is the same notification as the one shown during legacy lockdown
mode, sans the 'reset' button.

The notification is only shown during times when VPN has not yet
established or has failed, for example during boot or after a crash.

Bug: 29123115
Change-Id: If0e2eb4f8fb220a21d6d462363a05869e27c7b6e
2016-10-06 19:58:04 +00:00
Christopher Wiley
deed245740 Notify NetworkPolicyManagerService on tethering changes
am: cfd438e0fd

Change-Id: I43b25305c730966da83acdaccb127c27be0e2332
2016-10-06 19:57:15 +00:00
Erik Kline
567fc7861d Refactor "avoid bad wifi" logic into a utility class
am: 95ecfee674

Change-Id: I4a6ad3791ac551b0d64b37dd4e2afef1e8e8ee10
2016-10-04 07:47:52 +00:00
Erik Kline
95ecfee674 Refactor "avoid bad wifi" logic into a utility class
Additionally, add this utility class to IpManager for compatibility
verification.  A follow-on CL will make use of IpManager's local
AvoidBadWifiTracker.

Bug: 31827713
Change-Id: If8c56c3f8076d6a5157ea180e361bbdadc2bc1dd
2016-10-04 15:07:42 +09:00
Christopher Wiley
cfd438e0fd Notify NetworkPolicyManagerService on tethering changes
(cherry-pick of d73faf07606d40d3915d22a72fa14f7ba956d459)

No longer do this in ConnectivityService#tether/untether.
Instead, have Tethering do it when an interface is actually
tethered.

Bug: 31405407
Test: Toggling hotspot now disables data saver

Change-Id: I9910a2e488c30c92d45f817c8f5df0fac5510de6
2016-09-30 10:33:19 -07:00
Hugo Benichi
90d1ffdcd8 New Settings symbols for captive portal detection am: e8b7aea6bb am: 4710228e81
am: 9fc1b97ca5

Change-Id: Iad6840b4edd243a77fe65a69a2f4dcba28e0a7cb
2016-09-29 06:09:56 +00:00
Hugo Benichi
8b5dcafc44 Captive portal detection uses 3rd fallback probe am: 6767b7a40a am: 580194d336
am: 82d7d36a22

Change-Id: I221cf47aa43105d4094ec724f8d6f4f6c98d0757
2016-09-29 06:07:53 +00:00
Hugo Benichi
9fc1b97ca5 New Settings symbols for captive portal detection am: e8b7aea6bb
am: 4710228e81

Change-Id: I6e965696ed03b0eb4a49db3b21ad6a382ba1d081
2016-09-29 01:23:59 +00:00
Hugo Benichi
82d7d36a22 Captive portal detection uses 3rd fallback probe am: 6767b7a40a
am: 580194d336

Change-Id: Iec8ccdbcd433d8b2f5538d7b4bed5c945b5b688a
2016-09-29 01:22:01 +00:00
Hugo Benichi
4710228e81 New Settings symbols for captive portal detection
am: e8b7aea6bb

Change-Id: Id8c19f16c50b22034278c00b55c5431d892f8a95
2016-09-29 01:15:17 +00:00
Hugo Benichi
580194d336 Captive portal detection uses 3rd fallback probe
am: 6767b7a40a

Change-Id: I15607fbfae9dc127b72b6f299b69d6b648117338
2016-09-29 01:13:59 +00:00
Hugo Benichi
e8b7aea6bb New Settings symbols for captive portal detection
This patch defines new Settings symbols for
  - setting the probe urls for captive portal detection.
  - setting which User-Agent to use for captive portal detection.

The existing default values for these settings are not changed, i.e:
  - HTTP and HTTPS probes urls are unchanged.
  - the fallback probe is not used.
  - User-Agent is empty by default.

Bug: 29367974
Change-Id: I6e4b3b172e56b8b67fffa4b51f776d68d5851f25
2016-09-28 23:13:25 +09:00
Hugo Benichi
6767b7a40a Captive portal detection uses 3rd fallback probe
This patch adds the possitibility to send a 3rd fallback validation
probe in sendParallelHttpProbes when neither the 1st http probe nor the
https probe came back with a conclusive answer.

This 3rd probe is only used for trying again captive portal detection
and does not return success, so that network validation always fails if
the https probe fails.

In addition, the url reveals a captive portal is now sent to the
CaptivePortalLoginActivity so that all three probes can use different
urls.

Bug: 29367974

Change-Id: I7385fde1aa1316d94aac350af0e956cb193aa4ee
2016-09-28 23:12:31 +09:00
Christopher Wiley
2894388f94 Merge "Notify NetworkPolicyManagerService on tethering changes" am: 4062bec04e am: 8d7e3b0205 am: 8402cf5078
am: 15d636e8d2

Change-Id: I6075604795f97992d02bef28bb5cef85eb31d589
2016-09-27 14:24:33 +00:00
Christopher Wiley
15d636e8d2 Merge "Notify NetworkPolicyManagerService on tethering changes" am: 4062bec04e am: 8d7e3b0205
am: 8402cf5078

Change-Id: I4d1081c832c1d3bff9a0946c670929eca4f0f695
2016-09-27 14:18:46 +00:00
Christopher Wiley
8402cf5078 Merge "Notify NetworkPolicyManagerService on tethering changes" am: 4062bec04e
am: 8d7e3b0205

Change-Id: I9595856421a848a570f4894fa55523a72a7fec44
2016-09-27 13:32:06 +00:00
Michal Karpinski
0f846e6106 Fix naming of the service in NetdEventListenerServiceTest
am: 7a8d38a62e

Change-Id: If4b50bf104dddcaf14fd6b138239cfc94967f389
2016-09-26 11:38:37 +00:00