Commit Graph

1956 Commits

Author SHA1 Message Date
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
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
Philip P. Moltmann
312c61edab Parse and validate txt records.
Bug: 27696905
Change-Id: I9affcf02a51c92a2be1c2bfc5efbd09065e100bc
2016-03-30 20:33:31 -07:00
Felipe Leme
70c57c2810 Uses bw_happy_box and bw_penalty_box for Data Saver.
bw_penalty_box is a blacklist-based firewall chain used to determine
which UIDs do not have access to metered interfaces. It can be used
alone or with bw_happy_box, which is a whitelist-based chain: when
bw_happy_box is enabled, it's included in the bw_penalty_box chain.

Currently, NMPS and NMS uses just bw_penalty_box for both blacklist and
whitelist, so when Data Saver is turned on, it has to build a extensive
list of UIDs to be blacklisted, which can take seconds (since it makes
dozens of iptables, and which forks an iptables process)

This CL changes this behavior so it uses both chain (plus a new
bw_data_saver chain, which is added to the end of bw_happy_box), in
which case the Data Saver switch is much faster (around 120-160ms),
since it requires just 1 or 2 iptables calls (one to switch the
bw_data_saver rule, and another to whitelist the foreground app if it's
not whitelisted yet).

BUG: 27127112
BUG: 26685616

Change-Id: If10222aef9f49a924b07b978d4bdccdd92f9acdb
2016-03-30 14:54:58 -07:00
Pierre Imai
bc9cc50947 Move connectivity events to frameworks/base.
Fixes a crash in bluetooth' DhcpClient due to Class(not)Loader.

Change-Id: I318c033aa8782c27a243104f85950adbf07d03a6
BUG: 27885860
BUG: 25691077
2016-03-29 22:07:09 +09:00
Paul Jensen
f21b4dc1d6 Move ApfFilter from ConnectivityService to IpManager
There's a few advantages to having ApfFilter in IpManager:
1. If things go wrong, crashing a particular transport is less bad then
   crashing ConnectivityService.  We also don't want to use
   ConnectivityService as a dumping ground for transport-specific logic.
2. This makes implementing WifiManager.MulticastLock a lot simpler and
   safer because enabling/disabling it doesn't have to go through the
   NetworkAgent, which could risk various races (e.g. installing a filter
   into the wrong WiFi network).
3. IpManager is the ultimate source for LinkProperties for a particular
   transport and since ApfFilter uses the LinkProperties it's better to
   have it closely paired with the IpManager. Likewise, ApfFilter needs
   to know the APF capabilities of the transport, so having it in
   the transport avoids having to parcel this information through the
   NetworkAgent.

Bug: 26238573
Change-Id: I99b85f2b64972f0e7572170ec5d1926081aa3429
2016-03-25 07:46:07 -04:00
Sharvil Nanavati
7f8d650ed7 Add a NetworkTemplate matcher for ConnectivityManager#TYPE_PROXY.
Change-Id: I48c0a7bc39e2efcc5b4120a4fa2ecf6dfd54ac27
2016-03-23 16:19:34 -07:00
Pierre Imai
82a3637fce Merge "Improve NetworkCapabilities command chaining." into nyc-dev 2016-03-23 01:11:15 +00:00
Paul Stewart
68ffbba158 Merge changes Iddeebeb8,Idd1e37a3 into nyc-dev
* changes:
  WifiManager: Use ConnectivityThread
  Create ConnectivityThread
2016-03-22 22:23:48 +00:00
Jeff Sharkey
c6f0d15c7d Merge "Update TrafficStats SystemApi docs." into nyc-dev 2016-03-22 18:39:52 +00:00
Jeff Sharkey
11caddafb0 Update TrafficStats SystemApi docs.
Bug: 25726690
Change-Id: I221d62eaaf1e0fca8c26e4f19cb25d306710a849
2016-03-22 10:20:35 -06:00
Pierre Imai
c8419a8717 Improve NetworkCapabilities command chaining.
setNetworkSpecifier() now returns this.
BUG: 26797290

Change-Id: Ia8bd0836d9ac715408eca102bf4a2d23f044fa72
2016-03-22 22:29:22 +09:00
Erik Kline
a2d29407d0 Support registering a request for the default network
Change-Id: I079f5be97b585cf5692dd4c7a144b993d168a9a5
2016-03-22 15:44:16 +09:00
Lorenzo Colitti
e6109ddd3e Merge "Remove framework code that calls SIOCKILLADDR" into nyc-dev 2016-03-22 05:37:09 +00:00