Commit Graph

1968 Commits

Author SHA1 Message Date
Hugo Benichi
cc92c6e877 Split network monitoring and portal probe events
This patches changes how captive portal tests and network lifecycle
events are logged as connectivity events:
  - it splits NetworkMonitorEvent into two event classes:
      - ValidationProbeEvent for logging individual probe events.
      - NetworkEvent for logging network connection, validation,
        lingering, and disconnection.
  - it removes the redundant CaptivePortalCheckResultEvent class.
    The information logged in CaptivePortalCheckResultEvent was already
    logged by NetworkMonitorEvent, but missing the evaluation durations.
    It is now logged by ValidationProbeEvent.
  - it removes the CaptivePortalStateChangeEvent class, which is now
    redundant with NetworkEvent, but missing evaluation durations.

In addition, it adds event logging when ConnectivityService puts a
network into lingering or removes a network from lingering.

Bug: 28204408
Change-Id: I8f9752e4d36175ecfcbd1545a01a41bad6e06ea4
2016-04-22 17:08:56 +09:00
TreeHugger Robot
b99d6af3ab Merge "Expand NetworkMonitor metrics" into nyc-dev 2016-04-21 05:24:40 +00:00
Hugo Benichi
7261fb27de Merge "Some fixes in ConnectivityService event logging" into nyc-dev 2016-04-21 04:02:55 +00:00
Erik Kline
a488c23dd5 Expand NetworkMonitor metrics
- add netid to CaptivePortalStateChangeEvent
    - add NetworkMonitorEvent for simple duration measurements

Bug: 28204408
Change-Id: I62035e07d64013878a0bce30c67c929c2c7e7a85
2016-04-21 13:02:55 +09:00
Hugo Benichi
5f16f760ad Some fixes in ConnectivityService event logging
Bug: 28204408
Change-Id: I44ed9539bb213a845c2bcc2861c947af7c3c9ef4
2016-04-21 11:03:08 +09:00
Hugo Benichi
25bf8f5d56 Various fixes in IpReachability event logging
- fold IpReachabilityMonitor* classes into a single IpReachabilityEvent.
- only log an event for NUD_FAILED Netlink answers.
- distinguish between NUD_FAILED with or without lost of provisioning.
- do not record host ip addresses.
- record interface name instead of interface index when losing
  provisioning.

- also return an error code when probeNeighbor fails, and log this error
  code in IpReachability events.

Bug: 28204408
Change-Id: I5f0def0ab1ace7e467a0c69b3b82d07ef2252307
2016-04-21 09:18:50 +09:00
TreeHugger Robot
9724fba835 Merge "Added onRestrictBackgroundWhitelistChanged callback." into nyc-dev 2016-04-20 17:44:56 +00:00
Robin Lee
c6184685d8 Merge "Move UidRange aidl declaration to system/netd" into nyc-dev 2016-04-19 19:19:43 +00:00
Felipe Leme
019fcd2bec Added onRestrictBackgroundWhitelistChanged callback.
When users add or remove an app to the Data Saver Mode whitelist, the
app is notified through a
ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED. But besides this
broadcast, it's also necessary to notify internal apps such Settings,
hence a new method is being added to INetworkPolicyListener.

BUG: 27481520
Change-Id: I1537a77becf6b7da1535ed5faabdc894fd9f7084
2016-04-19 12:06:00 -07:00
Pavel Zhamaitsiak
6e08a629c4 Merge "Add wrappers for IConnectivityMetricsLogger functions" into nyc-dev 2016-04-19 17:41:42 +00:00
Hugo Benichi
23e0e805c5 Remove unused DHCP timeout event tag.
DHCP timeouts should not be logged at DHCPClient level but as a timeout
event in IpManager.

Bug: 28204408
Change-Id: Ia12619e3bf71102cf289cbbcdec53fd5e7e8efff
2016-04-19 14:26:53 +09:00
Pavel Zhamaitsiak
c2c39e28f3 Add wrappers for IConnectivityMetricsLogger functions
Bug: 25691077
Change-Id: I51fa34a4815fb04e33d3b02f0134e3555afc3900
2016-04-18 17:41:19 -07:00
Robin Lee
106069412d Move UidRange aidl declaration to system/netd
Which owns the native UidRange.cpp, so it makes more sense for the
declaration to live there since frameworks/base depends on netd but not
vice versa.

Bug: 26694104
Change-Id: I0efda77713ee6f0ec8070fb0e09a694b95f6cd25
2016-04-18 15:26:47 +01:00
Hugo Benichi
4b6dfc2ef5 Make android.net.metrics Event classes @SystemApi
Bug: 28204408
Change-Id: I8ffe833213bbc03a7f70c51789f4899ee08f6e08
2016-04-18 11:36:42 +09:00
Hugo Benichi
627b42494d Fixes fatal linter errors in android.net.metrics
This patch changes how Event classes are organized:
 - Base IpConnectivityEvent class does not implement Parcelable because
   it cannot be final (has children). It also becomes abstract because
   it is not supposed to be instantiated and logged directly.
 - All children classes becomes final because they are Parcelable.
 - All constructors of all children classes become private, because they
   are supposed to be instantiated with their associated logEvent()
   methods.
 - All instance fields of all children classes become public final.
      Rational: if private, the ConnectivityMetrics app cannot read
      their data.

Bug: 28204408
Change-Id: I1a4689c422230c6ed034307dec54a61daf8a6598
2016-04-18 11:29:03 +09:00
Hugo Benichi
2677b1957b Fix spurious DHCP parse error logging.
This patch moves the event logging of DHCP response packet parse errors
to DHCPClient in a single place. It also logs receive IO errors as
DHCPErrors instead of DHCPClientEvents.

BUG=28197345

Change-Id: I7ad666cff4d8b97915880477347fbb3f588fdb2a
2016-04-18 11:27:35 +09:00
Pavel Zhamaitsiak
74870c441f Merge "Make ConnectivityMetricsLogger and related classes @SystemApi" into nyc-dev 2016-04-15 18:45:06 +00:00
Lorenzo Colitti
43724734d7 Metrics logging for DNS queries.
Bug: 28204408
Change-Id: I05fc9b580aa20d99e8766057e17a38b5eb6267e8
2016-04-15 16:54:39 +09:00
Lorenzo Colitti
88bc0bbb13 Disambiguate NetworkCallback JavaDoc.
The JavaDoc for many of the requestNetwork and
[un]registerNetworkCallback APIs incorrectly mentions the
PendingIntent version of the APIs instead of the NetworkCallback
version.

Also fix a minor issue in the registerDefaultNetworkCallback
JavaDoc: the default network request is an implementation detail,
so don't mention it. Instead, talk about the "system default
network".

Change-Id: Id94d98261daa2bd768c10e033cb8092729b21c91
2016-04-15 16:24:13 +09:00
Pavel Zhamaitsiak
f6f24c03f3 Make ConnectivityMetricsLogger and related classes @SystemApi
Bug: 25691077
Change-Id: Ia98d0a52a9541d9ae773be2b0e962d609f9dd7ee
2016-04-14 19:15:23 -07:00
Chad Brubaker
439525a993 Merge "Fix isUserAddedCertificate" into nyc-dev 2016-04-14 20:48:53 +00:00
TreeHugger Robot
0628d324d0 Merge "Also log IPv4 and IPv6 connectivity of any previous default network" into nyc-dev 2016-04-14 10:14:20 +00:00
Erik Kline
48f12f2ad6 Also log IPv4 and IPv6 connectivity of any previous default network
Change-Id: I07595c0a131fea21914f524949cd64af87403b88
2016-04-14 17:54:46 +09:00
Hugo Benichi
fc18b6f360 Merge "Add DHCP error event class and record DHCP errors." into nyc-dev 2016-04-14 08:01:31 +00:00
Pierre Imai
1feca76bd4 Merge changes Ia71865a9,I40b6de54 into nyc-dev
* changes:
  Log an event whenever we lose the default network.
  Record the transport types for connectivity events.
2016-04-14 07:25:34 +00:00
Hugo Benichi
6241874355 Add DHCP error event class and record DHCP errors.
This patch adds an event class derived from IpConnectivityEvent that
records parsing errors of DHCP response packets.

Change-Id: I19516cf05e3419c4262e3236899e52987e5f2264
2016-04-14 15:40:10 +09:00
Pierre Imai
6b4e15b155 Record the transport types for connectivity events.
BUG: 25691077
Change-Id: I40b6de5446325e717c0356603fd66cd395db9acb
2016-04-14 15:38:17 +09:00
Erik Kline
5b25a0f796 Add some more metrics: IpManager, IpReachabilityMonitor
Change-Id: Ibb7150c849715a42fc2c879589eaaf86e8a007e7
2016-04-14 10:53:30 +09:00
Chad Brubaker
00a4e29969 Fix isUserAddedCertificate
Check if the CA is in the user store directly instead of delegating to
the TrustManager. This removes one more reflection dependency between
X509TrustManagerExtensions and the default X509TrustManager.

Bug: 28138736
Change-Id: I16c17bf6230becdc0a1948b1d184212f83ee25f0
2016-04-13 10:20:08 -07:00
Pierre Imai
11a888faaf Merge "Fix a memory leak in ConnectivityManager." into nyc-dev 2016-04-13 06:37:33 +00:00
Paul Jensen
3e6a6fc60e Merge "If Internet probe is redirected, pass redirect destination to NetworkAgent." into nyc-dev 2016-04-13 01:33:37 +00:00
Jeff Sharkey
cadfc77d03 Merge "Fix broken javadoc." into nyc-dev 2016-04-12 23:37:38 +00:00
Jeff Sharkey
f82c2f0854 Fix broken javadoc.
Change-Id: I9f2050fd6040234bb1d759ab346f79fc41247aa9
2016-04-12 15:22:57 -06:00
Chad Brubaker
5116ac0d22 Add implemention for isSameTrustConfiguration
Bug: 27672565
Change-Id: Id5291a4a5f2ca75fdf84db4d51363735f1a76845
2016-04-12 13:04:43 -07:00
Paul Jensen
2324373124 If Internet probe is redirected, pass redirect destination to NetworkAgent.
Transport may use the redirect to make additional determination about network
state.

Bug: 25203607
Change-Id: I07d8918f13fdcbe0b6fd757536bfc1850a2a244f
2016-04-12 08:54:36 -04:00
Pierre Imai
b290c0a2cb Fix a memory leak in ConnectivityManager.
Remove callbacks from the internal storage when they are being unregistered.

Change-Id: Ia42ed7aefaebd8caf3eada8e42b6cb7a940d7647
2016-04-12 15:00:28 +09:00
Jack Yu
2e062ab8de Merge "Excluded certain APNs (e.g. IMS) from mobile data usage." into nyc-dev 2016-04-09 03:30:31 +00:00
Jack Yu
66a6be3a4c Excluded certain APNs (e.g. IMS) from mobile data usage.
Added not_metered capability to a mobile network if none
of its associated APN types are metered. Also used not_metered
capability to determine if a network should be accounted for
data usage or not instead of using network type, which is
always MOBILE after refactoring. Will add VT usage support
in next phase.

bug: 20888836
Change-Id: Id692cb856be9a47d0e918371112630128965b1bb
2016-04-07 10:07:31 -07:00
Robin Lee
1b83651e7f Merge "Internal API for system apps to determine default network for other apps" into nyc-dev 2016-04-07 16:43:15 +00:00
Robin Lee
d2baf792f8 Internal API for system apps to determine default network for other apps
Callers with CONNECTIVITY_INTERNAL permission can read off the netId
that an application is assigned to by default.

Necessary for making connections as the default network for a client
app eg. when downloading stuff on its behalf.

Bug: 27074270
Change-Id: I8d35e8e99126875f55f3c545090326f3e9be43fb
2016-04-07 14:55:59 +00:00
Erik Kline
f46600d074 Make public the registerDefaultNetworkCallback API
Change-Id: I89d7a6f49f5d6a0da3402a07407b0f8d93181b4f
2016-04-06 12:22:47 +09:00
Erik Kline
49e2db1b10 Merge "Delete unused DnsPinger" into nyc-dev 2016-04-06 02:07:02 +00:00
Jeremy Joslin
b770ed1328 Merge "Have the NetworkScoreService bind to the scorer." into nyc-dev 2016-04-05 22:27:11 +00:00
Erik Kline
a91307b240 Delete unused DnsPinger
Change-Id: I1912603f2dabf70bcad19a055651e33e9247bd31
2016-04-05 13:05:52 +09:00
Jeremy Joslin
dd251ef495 Have the NetworkScoreService bind to the scorer.
If the current active scorer provides a service that can handle the
android.net.scoring.SCORE_NETWORKS action then the NetworkScoreService
will bind to that service to keep the scorer alive. If no service is
discovered then no attempt to bind will be made.

BUG: 27612145
Change-Id: I3f6ed0cbd83e658f1533c3e37b0cac2692c01761
2016-04-04 18:13:29 -07:00
Pavel Zhamaitsiak
ce13079ab3 resolve merge conflicts of 20ebbb3 to nyc-dev
Change-Id: I31d76a02456b3f09a6bdac11c6dbc5e913f5f7df
2016-04-04 17:42:05 -07:00
Pavel Zhamaitsiak
20ebbb3349 Merge "ConnectivityMetricsLogger: Switch to "pull" model" into mm-wireless-dev 2016-04-05 00:13:18 +00:00
Pavel Zhamaitsiak
d1cb256b3e ConnectivityMetricsLogger: Switch to "pull" model
If subscriber is in external app, its process can be killed. This would
lead to loss of events. To avoid that, we will be storing events in the
logger service. Clients can periodically pull data from it.

Another option for client apps is to register PendingIntent which will be
sent when certain number of new events has been received.

If events are logged at unexpectedly high rate from particular component,
then throttling mechanism will activate and new events will be blocked for
some time from that component.

Change-Id: I710409626eb5a42bcd3fe8126eac6b756fa1ab8b
2016-03-31 18:43:14 -07:00
Lorenzo Colitti
f5120236c4 Merge "Honour the DHCP MTU option." into nyc-dev 2016-04-01 00:55:08 +00:00
Lorenzo Colitti
77fdf23d6f Honour the DHCP MTU option.
Bug: 25590369
Bug: 27719279
Change-Id: I473b5ec9c13f0d74e1ddd55e9d4abcff374a83ef
2016-03-31 23:51:32 +09:00