Commit Graph

2102 Commits

Author SHA1 Message Date
Hugo Benichi
88a9b54cdf Merge changes Ia28652e0,Id2eaafdc,I9c4c8286 into nyc-mr1-dev am: f5e3481951
am: 0664017da0

Change-Id: I75a518b8909e5cd85c7554ceaa11dc7519717075
2016-06-30 14:17:41 +00:00
Hugo Benichi
0664017da0 Merge changes Ia28652e0,Id2eaafdc,I9c4c8286 into nyc-mr1-dev
am: f5e3481951

Change-Id: Ic853ff8e8e1745821627e796d22daea227bafca2
2016-06-30 14:12:13 +00:00
Tobias Thierer
2df6976bb1 Merge \\\\"Changes for upgrade to OkHttp 2.7.5\\\\" am: a31247bd8d am: f6bcab7f97 am: 6b473f7b67
am: 847fe1668e

Change-Id: I02fe28e773df3b328be8c7ea26b0df065014188a
2016-06-30 13:12:46 +00:00
Tobias Thierer
847fe1668e Merge \\\"Changes for upgrade to OkHttp 2.7.5\\\" am: a31247bd8d am: f6bcab7f97
am: 6b473f7b67

Change-Id: I3a0dc1da2ee96d71c38cab727141efcb686627e1
2016-06-30 13:04:52 +00:00
Tobias Thierer
f6bcab7f97 Merge \"Changes for upgrade to OkHttp 2.7.5\"
am: a31247bd8d

Change-Id: Id79249756929a61dca374f9f1d43d0ea9e6b1280
2016-06-30 12:49:47 +00:00
Hugo Benichi
cfbf7414a1 Record events for RA option lifetimes
This patch defines a new android.net.metrics.RaEvent class carrying
lifetime values contained in RA packets. RaEvent are recorded when
ApfFilter processes a new RA for which there is no match.

Example:
ConnectivityMetricsEvent(15:39:39.808, 0, 0): RaEvent(lifetimes: router=3600s, prefix_valid=2592000s, prefix_preferred=604800s, route_info=-1s, dnssl=-1s, rdnss=3600s)

Change-Id: Ia28652e03ed442d5f2a686ef5b3fafbcb77c503a
2016-06-30 18:26:39 +09:00
Hugo Benichi
647c86d70a Log RA listening statistics
This patch adds a new ApfStats event class that counts RA packet
reception statistics on the RA listener thread of ApfFilter and reports
the maximum program size advertised by hardware.

Statistics are gathered for the lifetime of a network with APF
capabilities and uploaded at network teardown when the listener thread
exits.

Example event:
ConnectivityMetricsEvent(15:44:23.741, 0, 0): ApfStats(284945ms 2048B RA: 2 received, 0 matching, 0 ignored, 0 expired, 0 parse errors, 2 program updates)

Bug: 28204408
Change-Id: Id2eaafdca97f61152a4b66d06061c971bc0aba4c
2016-06-30 18:26:33 +09:00
Hugo Benichi
4fc3ee5be2 Log events at APF program generation
Example:
ConnectivityMetricsEvent(15:24:52.018, 0, 0): ApfProgramEvent(0/0 RAs 121B forever FLAG_MULTICAST_FILTER_ON)
ConnectivityMetricsEvent(15:24:53.036, 0, 0): ApfProgramEvent(1/1 RAs 334B 600s)
ConnectivityMetricsEvent(15:24:53.590, 0, 0): ApfProgramEvent(1/1 RAs 360B 600s FLAG_MULTICAST_FILTER_ON, FLAG_HAS_IPV4_ADDRESS)
ConnectivityMetricsEvent(15:24:58.157, 0, 0): ApfProgramEvent(1/1 RAs 294B 599s FLAG_HAS_IPV4_ADDRESS)

Bug: 28204408
Change-Id: I9c4c82861cf42eb2c7e7bf5471f05e8ff2fc560c
2016-06-30 18:21:09 +09:00
Tobias Thierer
851d806dbd Changes for upgrade to OkHttp 2.7.5
- Use com.android.okhttp.Dns in place of com.android.okhttp.internal.Network
 - Specify TimeUnit.MILLISECONDS for timeouts which 2.7.5 allows and
   brings us closer to 3+

Change-Id: I95b5d72a94ebe1389f7c2e8d95903aa1aadd944b
2016-06-29 17:41:32 +01:00
Hugo Benichi
186e5b57d3 Refactor IP connectivity event logging am: cfddd68792
am: 17427c9770

Change-Id: If8775031f2a293e94e564dde502d0775d5808fe6
2016-06-29 07:23:19 +00:00
Hugo Benichi
cfddd68792 Refactor IP connectivity event logging
This patch removes static methods for logging IP connectivity events
defined in android.net.metrics and replaces them with a single log()
instance method defined on IpConnectivityLog. Event constructors are
now public also. Every classes logging such events now create an
instance of IpConnectivityLog for logging event objects directly
instantiated with new.

Removing static dependencies allow straightforward testing of logging.

This patch also removes the base IpConnectivityEvent class which is not
needed any more.

Bug: 29035129
Change-Id: I3de700f93f46deaa48a759f938f7d00e1d8bff98
2016-06-29 14:28:51 +09:00
Hugo Benichi
21b6b821df Merge changes I9b4e55c2,I429562a0 into nyc-mr1-dev am: 41a3acc55a
am: ca9a575a79

Change-Id: I948403eb8ff92b2de87d8ce402921b3ede7e0b82
2016-06-29 00:30:17 +00:00
Hugo Benichi
3bba249c47 Tests for IpConnectivityMetricsLog
Bug: 28204408
Bug: 29035129
Change-Id: I429562a00904188947b11da9928ec5c01296ff97
2016-06-28 11:43:03 +09:00
Hugo Benichi
021d635ac6 Merge \\"ConnectivityMetricsLogger subclass for IpConnectivity\\" into nyc-mr1-dev am: ce2c5fa466
am: 71ffd2278d

Change-Id: Ibcdeec246f8d46d72e0eb0979786f6040402818f
2016-06-09 05:25:29 +00:00
Hugo Benichi
623ab7d7a6 ConnectivityMetricsLogger subclass for IpConnectivity
IpConnectivityEvent was using ConnectivityMetricsLogger directly for
logging events. However ConnectivityMetricsLogger keeps track in a
thread-unsafe way of skipped events rejected by MetricsLoggerService.

This patch introduces a subclass of ConnectivityMetricsLogger that
does not track skipped events, for using in IpConnectivityEvent.

It also qualifies the mServiceBlockedTimestampMillis variable as
volatile so that throttling is effective accross concurrent callers
of logEvent.

Bug: 28204408
Bug: 29023888
Change-Id: I33707ba1d07487b42f3ce9a1ad9a66d785e99fa7
2016-06-07 13:55:37 +09:00
Chen Xu
ac5392467a Merge "cold sim clean up" into nyc-mr1-dev am: ba3428f01b
am: 2581d13f25

* commit '2581d13f25878caf6011a2498b869d1dc84115ca':
  cold sim clean up

Change-Id: Ie35dd1dbede46a1ae6f6a1c902e8d54321325500
2016-06-04 05:58:44 +00:00
fionaxu
1bf6ec2f86 cold sim clean up
- add a new field: provisioningNotificationEnabled from NetworkMisc. set
  to false if we want to hide "sign in" notification and placed
  carrier-specific notification instead. it is set on connect, once set,
  it is carrier-app's responsibility to post new UI to users
- rework on the interaction between carrier app and framework
- code cleanup
- unit test support

Bug: 28567303
Change-Id: Ic84db7ffbb920d15344717f104496d3cb82e1a85
2016-06-03 11:45:12 -07:00
Paul Jensen
b569d8bbf9 Merge "Don\'t pass URL path and username/password to PAC scripts" into klp-dev am: af0b4466ff am: 8940d2b0ff am: bb27626141 am: 6c35cf2434 am: 42a5983364 am: 75095e6f02 am: 7c625e1938 am: 54a62d5feb am: a5a2c88fb3 am: 7ff57eaff9 am: 94c8855da6 am: 50615e498e am: fdc53e96d3
am: 257c5b2e9c

* commit '257c5b2e9ce5969e22c88d84213f394953740c64':
  Don't pass URL path and username/password to PAC scripts

Change-Id: If9f1006bd7d4ab2acc3ce3e75a0746f6ca44b01a
2016-05-27 17:42:22 +00:00
Paul Jensen
50615e498e Merge "Don\'t pass URL path and username/password to PAC scripts" into klp-dev am: af0b4466ff am: 8940d2b0ff am: bb27626141 am: 6c35cf2434 am: 42a5983364 am: 75095e6f02 am: 7c625e1938 am: 54a62d5feb am: a5a2c88fb3 am: 7ff57eaff9
am: 94c8855da6

* commit '94c8855da6c1e5800723d1eaeceb1cba841bea6b':
  Don't pass URL path and username/password to PAC scripts

Change-Id: Ic91dc5c4a0a283bcd177daac8cced12a668bf0d9
2016-05-26 17:59:23 +00:00
Paul Jensen
94c8855da6 Merge "Don\'t pass URL path and username/password to PAC scripts" into klp-dev am: af0b4466ff am: 8940d2b0ff am: bb27626141 am: 6c35cf2434 am: 42a5983364 am: 75095e6f02 am: 7c625e1938 am: 54a62d5feb am: a5a2c88fb3
am: 7ff57eaff9

* commit '7ff57eaff95fd4cdb3cc80f8e420b469f0656bb8':
  Don't pass URL path and username/password to PAC scripts

Change-Id: I80187f003e437678786f0740f23e76543890b9bc
2016-05-26 15:22:55 +00:00
Paul Jensen
7ff57eaff9 Merge "Don\'t pass URL path and username/password to PAC scripts" into klp-dev am: af0b4466ff am: 8940d2b0ff am: bb27626141 am: 6c35cf2434 am: 42a5983364 am: 75095e6f02 am: 7c625e1938 am: 54a62d5feb
am: a5a2c88fb3

* commit 'a5a2c88fb3ac43315575de94696c837cb6b88c35':
  Don't pass URL path and username/password to PAC scripts

Change-Id: Ia33d40ae5d4b6ee0cd3cfcdc8587d6002603f128
2016-05-26 15:13:07 +00:00
Paul Jensen
a5a2c88fb3 Merge "Don\'t pass URL path and username/password to PAC scripts" into klp-dev am: af0b4466ff am: 8940d2b0ff am: bb27626141 am: 6c35cf2434 am: 42a5983364 am: 75095e6f02 am: 7c625e1938
am: 54a62d5feb

* commit '54a62d5febc8771f65221db3dd5c6e08f3288eb8':
  Don't pass URL path and username/password to PAC scripts

Change-Id: I1da24c02fbf85a7f0fd3ea7a86ad3a34389000e8
2016-05-26 15:02:46 +00:00
Paul Jensen
54a62d5feb Merge "Don\'t pass URL path and username/password to PAC scripts" into klp-dev am: af0b4466ff am: 8940d2b0ff am: bb27626141 am: 6c35cf2434 am: 42a5983364 am: 75095e6f02
am: 7c625e1938

* commit '7c625e1938f28cf2a455fb1f4ab71dca99341b3d':
  Don't pass URL path and username/password to PAC scripts

Change-Id: If2e068e47e6efd4b8ad7abc7fb358860b188a380
2016-05-26 14:50:37 +00:00
Paul Jensen
7c625e1938 Merge "Don\'t pass URL path and username/password to PAC scripts" into klp-dev am: af0b4466ff am: 8940d2b0ff am: bb27626141 am: 6c35cf2434 am: 42a5983364
am: 75095e6f02

* commit '75095e6f02b13d070bb74b019ab6392f0f7b1105':
  Don't pass URL path and username/password to PAC scripts

Change-Id: I0da4c878a1bd78837abc40a3ab332c6a1e781d3e
2016-05-26 14:35:08 +00:00
Paul Jensen
75095e6f02 Merge "Don\'t pass URL path and username/password to PAC scripts" into klp-dev am: af0b4466ff am: 8940d2b0ff am: bb27626141 am: 6c35cf2434
am: 42a5983364

* commit '42a59833648243a8ac3aec7adf7f4ca0d3babdd1':
  Don't pass URL path and username/password to PAC scripts

Change-Id: Id92ff5deed707c029fc6d5806aff2a324961c2ec
2016-05-26 14:13:16 +00:00
Paul Jensen
42a5983364 Merge "Don\'t pass URL path and username/password to PAC scripts" into klp-dev am: af0b4466ff am: 8940d2b0ff am: bb27626141
am: 6c35cf2434

* commit '6c35cf2434ca373196b16620455f8f234b63d594':
  Don't pass URL path and username/password to PAC scripts

Change-Id: I9bbca312129011822fc5ea95682bac5ca4258ced
2016-05-26 14:01:19 +00:00
Paul Jensen
6c35cf2434 Merge "Don\'t pass URL path and username/password to PAC scripts" into klp-dev am: af0b4466ff am: 8940d2b0ff
am: bb27626141

* commit 'bb2762614181a0ee03554a96c070ea1006d7263c':
  Don't pass URL path and username/password to PAC scripts

Change-Id: I9e4d3282765dec1554955b9f72484e9d7e2d6594
2016-05-26 13:44:37 +00:00
Paul Jensen
bb27626141 Merge "Don\'t pass URL path and username/password to PAC scripts" into klp-dev am: af0b4466ff
am: 8940d2b0ff

* commit '8940d2b0ff2fb5a9cc9e12be8a7959670e4390ac':
  Don't pass URL path and username/password to PAC scripts

Change-Id: I03d6273d7ddaecac071ab3d1207d3d684e80159e
2016-05-26 13:37:24 +00:00
Jeff Sharkey
e3f4aaf57f Merge "API council feedback: hide and document." into nyc-dev am: dfe232c763 am: 19e2f49181
am: e2c9ed48ba

* commit 'e2c9ed48ba5eed95c7fdf45744e7fbeb4597cbd1':
  API council feedback: hide and document.

Change-Id: I002236f584ddc7a5f479b8936e4b5f5ed61759eb
2016-05-25 21:06:41 +00:00
TreeHugger Robot
dfe232c763 Merge "API council feedback: hide and document." into nyc-dev 2016-05-25 20:43:56 +00:00
TreeHugger Robot
e1b53d7cab Merge "Add missing @Deprecated annotations." 2016-05-25 17:46:40 +00:00
Hugo Benichi
bf3ca8a94b Merge "Fix default network transition event recording" into nyc-dev am: 9d4e66ece6 am: bfbf55fcbd
am: 06facea297

* commit '06facea297bfad572d4354e528d5ea81081e5239':
  Fix default network transition event recording

Change-Id: I37d885e48268e43944fe8afe4dca3f4322d508ac
2016-05-25 03:41:14 +00:00
Hugo Benichi
1654b1d11c Fix default network transition event recording
When disconnecting from a default network X and falling back on another
connected network Y as the new default, ConnectivityService was
attempting to record this event as a X -> Y "atomic" transition.

In practice the default network connectivity is actually lost and
recovering default network takes some non-zero time.

This patch changes the event recording to always record disconnection as
X -> 0 events. At the same time, if there is a fallback network that is
elected as the new default ConnectivityService will also record a 0 -> Y
event.

This patch also improves pretty-printing of DefaultNetworkEvent.

Extract from $ adb shell dumpsys connectivity_metrics_logger --events
17:51:00.086: DefaultNetworkEvent(0 -> 100:CELLULAR)
17:51:25.232: DefaultNetworkEvent(100:IPv4 -> 101:WIFI) # wifi goes on
17:51:44.064: DefaultNetworkEvent(101:DUAL -> 0)        # wifi goes off
17:51:44.187: DefaultNetworkEvent(0 -> 100:CELLULAR)

Bug: 28204408
Change-Id: I63252633235bf6ba833b9ac431a80dda75a93e67
2016-05-25 10:03:38 +09:00
Aurimas Liutikas
514c5ef8d5 Add missing @Deprecated annotations.
Add missing @Deprecated annotations for methods with @deprecated tag
in javadoc.

Change-Id: I35b78ccb97832d86b914c21a300444ba29e33844
2016-05-24 15:22:55 -07:00
Jeff Sharkey
d21cad13a6 API council feedback: hide and document.
Hide isMetered() and clarify moveDatabaseFrom() docs.

Bug: 28870582, 28775585
Change-Id: Iabe63045c39ce7f662488f4224b56387c3c59519
2016-05-20 11:34:55 -06:00
Erik Kline
f26088c8c2 Merge "DHCPv4: lease expiration is fatal, renew failures are not" into nyc-dev am: c21f84dddb am: 8958153ac7
am: f99efa7e75

* commit 'f99efa7e758e00101fbc19be68b8552a946c21a3':
  DHCPv4: lease expiration is fatal, renew failures are not

Change-Id: I4a0be195dab4525258b455330ce6212987b0e6c0
2016-05-19 04:27:26 +00:00
Erik Kline
acda32c35f DHCPv4: lease expiration is fatal, renew failures are not
Bug: 24837343

Change-Id: Ib330864f8376b0907390d581b48cff5446b3392b
2016-05-18 16:17:03 +09:00
Felipe Leme
b206fa10e7 Merge "Added a onRestrictBackgroundBlacklistChanged() callback." into nyc-dev am: 2c6a450fa2 am: 3b91df7ccf
am: 8b297e554d

* commit '8b297e554df11ee874e01e4bfaa2b64d9af2bc11':
  Added a onRestrictBackgroundBlacklistChanged() callback.

Change-Id: Ieb58dda8f4749ccf5218be5913beb488fd3247cf
2016-05-17 19:07:18 +00:00
TreeHugger Robot
2c6a450fa2 Merge "Added a onRestrictBackgroundBlacklistChanged() callback." into nyc-dev 2016-05-17 18:28:22 +00:00
Robin Lee
01b9528983 Merge "Make some of the UID-based VPN code reusable" into nyc-dev am: 4920698e17 am: 607fa836b2
am: 45d4f351ba

* commit '45d4f351ba79e658cb9abc6633b4d7de62e78ffc':
  Make some of the UID-based VPN code reusable

Change-Id: I75d9871f8039d14f8d83be4696c3c4d4e864f9c0
2016-05-17 17:59:59 +00:00
TreeHugger Robot
4920698e17 Merge "Make some of the UID-based VPN code reusable" into nyc-dev 2016-05-17 17:30:01 +00:00
Felipe Leme
708cf59ce6 Merge "Documented return value of getRestrictBackgroundStatus()." into nyc-dev am: 522787f39a am: b811d4ede8
am: 00463970fe

* commit '00463970fe2ac55533a763af8b565d76cb65b496':
  Documented return value of getRestrictBackgroundStatus().

Change-Id: Ia86cbc0d7b0be02f7dad7446127c2c711bb9f771
2016-05-16 22:35:23 +00:00
Felipe Leme
c9c7be58a5 Documented return value of getRestrictBackgroundStatus().
Change-Id: I2c15a6d5e23cbc3c9b59c975196c1c04c1294471
Fixes: 28775490
2016-05-16 13:57:19 -07:00
Felipe Leme
99d5d3d775 Added a onRestrictBackgroundBlacklistChanged() callback.
When an UID is added / removed to the Data Saver blacklist, it's
necessary to notify internal components such as the Settings UI (which
was erroneously listening to UID rules changes instead).

BUG: 28743623
BUG: 28791717

Change-Id: I11c85e141dfe074ad390fd324309d2412bfbbd45
2016-05-16 13:30:57 -07:00
Felipe Leme
5118db67f7 Merge "Fixed connectivity state in some power saving scenarios." into nyc-dev am: 25018d41f4 am: cc02a95cbd
am: 6e12f9d36d

* commit '6e12f9d36da3214367fc4ad5510220a397970aa2':
  Fixed connectivity state in some power saving scenarios.

Change-Id: Idd27e581b208a0d80d8fa6a4d7cf75eac82a32fd
2016-05-13 17:31:58 +00:00
Robin Lee
4d03abcd49 Make some of the UID-based VPN code reusable
By changing some member refs into arguments and having one of the
functions create the UID range instead of adding to mVpnUsers.

This will be useful for other layers of UID filtering like having
UIDs explicitly blocked from the VPN.

Deleted one broken line of code that cleared the status intent when
a restricted profile is removed. Other than that, this commit shouldn't
change any behaviour. If it does, that's a bug.

Bug: 26694104
Change-Id: Ieb656835d3282a8ba63cc3f12a80bfae166bcf44
2016-05-13 16:03:11 +00:00
Felipe Leme
781ba14af2 Fixed connectivity state in some power saving scenarios.
NetworkPolicyManagerService (NPMS) manages 4 type of network restriction
when apps are running on background:

- Data Saver Mode (data usage restriction on metered-networks)
- Battery Saver Mode (power restriction on all networks)
- Doze Mode (power restriction on all networks)
- App Idle (power restriction on all networks)

These restrictions affects 2 parts of the system:

- Internal framework state on NPMS which is propagated to other internal
  classes.
- External firewall rules (managed by netd).

Although each of the power-related restrictions have their own external firewall
rules, internally apps are whitelisted to them through the same
whitelist, and the current code is only updating the internal state (and
notifying the internal listeners) when Battery Saver Mode is on.

As a consequence of this problem, there are scenarios where an app
correctly does not have internet access (because the firewall rules are
properly set), but the NetworkInfo state returns the wrong state (like
CONNECTED / CONNECTED).

This CL fixes this problem by splitting the power-related logic from
updateRulesForRestrictBackgroundLocked() into its own
method (updateRulesForPowerRestrictionsLocked()), and making sure such
method is called whenever the firewall rules are updated.

Externally to this change, the CTS tests were also improved to verify
the apps get the proper connection state; it can be verified by running:

cts-tradefed run commandAndExit cts -m CtsHostsideNetworkTests \
    -t com.android.cts.net.HostsideRestrictBackgroundNetworkTests

BUG: 28521946
Change-Id: Id5187eb7a59c549ef30e2b17627ae2d734afa789
2016-05-12 12:33:23 -07:00
Antonio Cansado
f8be7f2a5d Merge "Addressing API council comments on NetworkStatsManager." into nyc-dev am: dc5f558640 am: 7598ac2aa7
am: 8b2dd44f2f

* commit '8b2dd44f2f30a9dd22799ee30dd4b9c5a093aae5':
  Addressing API council comments on NetworkStatsManager.

Change-Id: Ie6455799758f0bdb67440f72c266effaf412e22f
2016-05-10 21:14:09 +00:00
Antonio Cansado
6965c1869a Addressing API council comments on NetworkStatsManager.
Callbacks
 - DataUsageCallback renamed to UsageCallback
 - DataUsagePolicy removed; passing in params directly to register method
 - making it an abstract class
 - passing in (networkType, subscriberId) that reached its threshold
 - renaming onLimitReached to onThresholdReached to match existing naming
 - only monitor single network,subscriberId
 - no monitoring of specific uids; using device or user wide instead

Tags
 - only owner uid can read its tags
 - exposing only TAG_NONE to match service side

BUG: 27530098

Change-Id: I2b2664da71806868a1e937d2bf4d1f234637509b
2016-05-10 13:24:16 -07:00
Felipe Leme
22d3b8586c Merge "Fixed connectivity state in some restricted network scenarios." into nyc-dev am: 638a6e8140 am: 87d20317bf
am: 9f144cb395

* commit '9f144cb3952c6367d113c8f77cc01394bd3751c0':
  Fixed connectivity state in some restricted network scenarios.

Change-Id: I1bc51c4a06dad9245ce0ed884707855b2c04edf1
2016-05-06 23:48:47 +00:00