Commit Graph

472 Commits

Author SHA1 Message Date
Chia-chi Yeh
ff3bdca31f The service part of the user space VPN support.
The dialogs will be in another change.

Change-Id: I0cdfd2ef21ffd40ee955b3cbde5ada65dbfdb0bc
2011-06-08 14:16:42 -07:00
Robert Greenwalt
8a02401129 resolved conflicts for merge of e139167c to master
Change-Id: Ic4d8aae7dd457457d9cc8ba081b273e425729f86
2011-06-08 10:01:06 -07:00
Jeff Sharkey
19862bf5d0 Compute range-based usage in NetworkStatsHistory.
When given a start/end range, interpolate between buckets to return
the total network usage.  Used to summarize detailed UID stats.  Method
to combine NetworkStatsHistory regardless of bucket size.  Used to
combine all histories matching a template.

Added tests for both methods.

Change-Id: Ia463910c0ecf7cf08dcf97c658ad99742bd6b882
2011-06-07 23:54:28 -07:00
Jeff Sharkey
61ee0bbb5b UID network stats, secure settings, and random.
Collect UID-granularity network stats during regular poll event.  Add
dumpsys argument to generate fake historical data for debugging, and
move stats parameters to Settings.Secure.

Change-Id: I09b36a2955dc10c697d4b9c3ff23dcb3ac37bd70
2011-06-07 23:43:46 -07:00
Jeff Sharkey
d2a458750e Map network identity using ConnectivityService.
Instead of deriving network identity based on raw subsystem broadcasts,
listen for updates from ConnectivityService.  Added atomic view of all
active NetworkState, and build map from "iface" to NetworkIdentity set
for stats tracking.

To avoid exposing internal complexity, INetworkStatsService calls use
general templates.  Added TelephonyManager mapping to classify network
types using broad labels like "3G" or "4G", used to drive templates.

Cleaned up Objects and Preconditions.

Change-Id: I1d4c1403f0503bc3635a59bb378841ba42239a91
2011-06-07 23:09:25 -07:00
Robert Greenwalt
5df69fad6e resolved conflicts for merge of 8de47a2f to honeycomb-LTE
Change-Id: I8193235a4c7e574635e17b2eb05bb5420a3c6749
2011-06-07 12:45:41 -07:00
Ben Komalo
1b52806e21 Makes SSLCertificateSocketFactory more flexible
Specifically, this adds support for specifying custom
{Trust,Key}Managers in the socket factory.

Change-Id: I1fdf6587064c71ae0520f73821923dcad8d140ad
2011-06-06 15:10:33 -07:00
Jeff Sharkey
7527990420 Collect historical network stats.
Periodically records delta network traffic into historical buckets to
support other services, such NetworkPolicyManager and Settings UI.

Introduces NetworkStatsHistory structure which contains sparse, uniform
buckets of data usage defined by timestamps.  Service periodically
polls NetworkStats and records changes into buckets.  It only persists
to disk when substantial changes have occured.  Current parameters
create 4 buckets each day, and persist for 90 days, resulting in about
8kB of data per network.

Only records stats for "well known" network interfaces that have been
claimed by Telephony or Wi-Fi subsystems.  Historical stats are also
keyed off identity (such as IMSI) to support SIM swapping.

Change-Id: Ia27d1289556a2bf9545fbc4f3b789425a01be53a
2011-06-01 17:44:52 -07:00
Jeff Sharkey
9599cc5f21 Tests for NetworkPolicyManager rule generation.
Verifies that policy changes trigger rule updates that respect current
foregroundActivities status.  Also verifies logic that promotes a UID
based on its most-foreground PID.  Verifies that policy changes result
in immediate rule changes.

Also verifies that BACKGROUND_DATA_SETTING_CHANGED broadcasts are sent
by policy changes.

Change-Id: I4fd0dad9e1dbccee2c5968244bb1814e6cb2c6e1
2011-06-01 17:26:30 -07:00
Jeff Sharkey
1b861278a2 Teach NetworkPolicyManager how to dumpsys itself.
Includes details on all internally known UIDs, which can be used for
debugging purposes.

Change-Id: I340d25212e3c7a76a57de0a94ffeea34b6748941
2011-06-01 17:21:17 -07:00
Jeff Sharkey
c006f1aec1 Policy and rules work for ConnectivityManager.
Teach ConnectivityManager about UID-specific rules derived from policy,
such as rejecting network traffic on "paid" interfaces.  Calls that
return NetworkInfo now filter based on any REJECT rules in effect for
the calling UID.  (Added uid parameter if callers that still want all
interfaces.)

Changed NetworkPolicyManager to derive rules based on current policy
combined with PowerManager and ActivityManager status, which it passes
to ConnectivityService for eventual enforcement through netd.  When
rules change the usability of a NetworkInfo for a specific UID, it also
dispatches CONNECTIVITY_ACTION broadcasts to that UID.  Combined paid
and background policy together to match current working definition.

Change-Id: I797ea49439fcc487cfe2cbc16703d4b91ceb9af6
2011-06-01 17:00:42 -07:00
Robert Greenwalt
97ab2d4f86 Reveal some network constants.
Since we've already decided to inc the sdk version we should try to get these in too.

bug:4500218
Change-Id: I6dcb401bf30f1b06f02be0a93681a190d7ee5775
2011-05-31 12:06:08 -07:00
Brian Carlstrom
a7284f0e72 Tracking merge of dalvik-dev to master
Adapt to change in the way MockWebServer sets up CONNECT proxies.
  git cherry-pick --no-commit c7e2feee5e7908a019a0de91123c1feb9bdc38bc

React to move of Base64 in libcore
  git cherry-pick --no-commit 119f7ebdd1f8df3a8ff8e3b8056bff725d569253

Expose and document android.net.HttpResponseCache.
  git cherry-pick --no-commit 7b73f0fdb8c032a65c55610541d66385bd8bcbe6)

make update-api

Change-Id: Ieb48b304ea38ee8c2ec01e860d99b1404583889e
2011-05-27 01:21:50 -07:00
Jeff Sharkey
a462079303 Observe screen on/off events in NetworkPolicy.
The POLICY_REJECT_BACKGROUND policy requires that network traffic be
blocked when a UID goes into the background.  Even if the UID has an
activity in the foreground, it's considered "background" if the screen
is turned off.

This changes watches for SCREEN_ON/OFF broadcasts, and rule generation
now observes screen state.  It also introduces an observer pattern so
that ActivityManager doesn't directly know about NetworkPolicy, and
moves the service management into SystemServer.

Change-Id: Ie7a84929d3ca60ae4578d47e19d5a8da10fd8d58
2011-05-23 18:39:56 -07:00
Jeff Sharkey
eedcb9525b APIs to profile network usage for current UID.
Added startDataProfiling() and stopDataProfiling() to TrafficStats,
which can be used by apps to measure network usage delta between two
points in time.  Currently takes two NetworkStats snapshots and returns
delta, which will eventually include tag-level granularity.  Added
tests for NetworkStats delta subtraction.

Added NMS.getNetworkStatsUidDetail() that returns stats for specific
UID.  Always gives stats access for the calling UID, otherwise enforces
that caller has permission.  Fix readSingleLongFromFile(), since
/proc/ files don't have well-defined lengths.

Change-Id: Ic5b6414d8effbd66846e275b00d4b8a82c74589d
2011-05-21 15:02:58 -07:00
Wink Saville
b568b51255 am 09ded82b: am ab5baa1d: Merge "Reset connection while data state changed." into honeycomb-LTE
* commit '09ded82b784b9f6e01d4cd4298097fd2b459560b':
  Reset connection while data state changed.
2011-05-19 11:32:27 -07:00
Wink Saville
ab5baa1d5f Merge "Reset connection while data state changed." into honeycomb-LTE 2011-05-19 11:25:45 -07:00
Jean-Baptiste Queru
5c3816f2ff Merge c41aefe1
Change-Id: I70fc4382f832d1a2bded8a5ee7d9b96fac77879b
2011-05-19 07:54:53 -07:00
Kazuhiro Ondo
8904c3d814 am b22a9fd9: am 01758e81: Linkproperties update via unsol data call state change.
* commit 'b22a9fd9bb32133cbc7dc4fc7752dbf68e52dffe':
  Linkproperties update via unsol data call state change.
2011-05-18 17:48:37 -07:00
Wink Saville
be2b058ec1 Reset connection while data state changed.
Check data call states and reset connection if any link properties changed.


Change-Id: I008aea969378648192852161959fdf4aad6211a1
2011-05-18 15:59:04 -07:00
Robert Greenwalt
59b1a4ede7 Switch to use netd to add/remove routes.
Also adds support for v6 routes and for removing single routes.

Change-Id: I1c4f08c7938371090944d8d6f603e1e0d6d70c01
2011-05-18 15:25:43 -07:00
Kazuhiro Ondo
01758e81b3 Linkproperties update via unsol data call state change.
Handles the scenario of radio technology handover with IP continuity.
Once RIL/Modem finished a handover operation, an unsol data call state
change will be send up to FW notifying all link propertes changes.
FW will then re-configure the device with new link properties
including iptable used by Tethering.

Change-Id: I05e29f66ac3db8ba4274d3662642607742ba1d12
2011-05-17 20:53:40 -07:00
Jeff Sharkey
78ae81efa9 Merge "First pass at NetworkPolicy and activity tracking." 2011-05-17 12:27:01 -07:00
Jeff Sharkey
43be174888 Add Socket tagging for granular data accounting.
Introduces public API to apply "tags" to track data traffic originating
from the current thread.  (Under the hood, the tags are maintained and
applied in BlockGuard.)  Also adds tag/untag methods for developers who
maintain their own Socket pools.

Change-Id: Ic2dd3155559a93a7b613c7853748d4c44fb3a39e
2011-05-13 18:19:00 -07:00
Jeff Sharkey
d5cdd597b8 First pass at NetworkPolicy and activity tracking.
New system service that maintains low-level network policy rules and
collects statistics to drive those rules.  Will eventually connect to
netfilter kernel module through NetworkManagementService and "netd".

Begin tracking foreground activities in ActivityManagerService, which
is updated as part of OOM adjustment.  Eventually a network policy of
POLICY_REJECT_BACKGROUND will reject network traffic from background
processes.

Change-Id: I5ffbbaee1b9628e9c3eff6b9cb2145fc5316e64d
2011-05-13 16:20:21 -07:00
Irfan Sheriff
fe3b33d4ea DO NOT MERGE Add DhcpStateMachine
Add DhcpStateMachine for interation with dhcpcd

- Supports wakeup and renewal on dhcp
- Supports multiple controllers to use the state machine
  simultaneously
- Optionally, a controller can request a notification prior
    to DHCP request/renewal being sent

Change-Id: I5324814b19ff19863aa6fa89f1e3f0a202930c98
2011-05-12 14:10:11 -07:00
Wink Saville
1f5e3a1af3 am 9c7c8794: am 76a118dd: Merge "Fix initialization of RouteInfo" into honeycomb-LTE
* commit '9c7c87941446cdd1263a87a8c4cc5672082c7e12':
  Fix initialization of RouteInfo
2011-05-12 14:08:05 -07:00
Kazuhiro Ondo
8c0b528a47 Fix initialization of RouteInfo
IPv6 gateway is not correctly set in RouteInfo

Change-Id: I24b1ab71a64e3097c9ba641899240fc27847b86c
2011-05-11 16:02:00 -07:00
Robert Greenwalt
fc82cb170c am 441bc9a6: am e6848fac: Merge "Fix the adding of host routes." into honeycomb-LTE
* commit '441bc9a6f41ca1678a6c965bec7e2f18227ac100':
  Fix the adding of host routes.
2011-05-11 13:07:38 -07:00
Robert Greenwalt
f43396caaa Fix the adding of host routes.
We used to just add

Change-Id: I991e4cc976cc2932887dd3242fd50e013d521b0a
2011-05-10 11:27:46 -07:00
Jeff Sharkey
9a13f36cdd Return NetworkStats bundle from NM service.
Introduce NetworkStats which is a collection of network statistics,
which should match the structure communicated by kernel module through
netd.  Will introduce tags and fg/bg stats later.  Kept entirely in a
flat data structure to optimize parcel speed.

Initial pass at returning NetworkStats from NetworkManagementService,
both summary and details.  Will eventually pull data from kernel module
over netd connection.

Change-Id: I92d9f61678ec8c22e2ce26775fb035a0cf32413f
2011-05-04 16:07:21 -07:00
Robert Greenwalt
b6f8bff109 am 9c7e6fc5: am f13eb830: Merge "Add auto-restore timeout for secondary networks." into honeycomb-LTE
* commit '9c7e6fc50614cc1739d4bfbf6187893c27b01a67':
  Add auto-restore timeout for secondary networks.
2011-05-04 12:47:30 -07:00
Robert Greenwalt
f13eb8301f Merge "Add auto-restore timeout for secondary networks." into honeycomb-LTE 2011-05-04 09:59:30 -07:00
Robert Greenwalt
f2102f7a1a Add auto-restore timeout for secondary networks.
Settable per network so you can have not timeout for some and some for others.
If you set the old NETWORK_RESTORE_DELAY_PROP_NAME system property
(android.telephony.apn-restore) it will override this value.

Change-Id: Icca706fdc74245dce679209116660e5dc4b05d23
2011-05-03 19:10:26 -07:00
Robert Greenwalt
a8e0dfae06 resolved conflicts for merge of db46fa25 to master
Change-Id: I8df9d5d07588fbd70e417dae567be26f645b74b6
2011-05-02 14:41:57 -07:00
Irfan Sheriff
d713683f9f am d369d64e: am 8ab6a6d4: Merge "Add DhcpStateMachine for interation with dhcpcd" into honeycomb-LTE
* commit 'd369d64ee7931726d479e60e64d76a31fdba4a8f':
  Add DhcpStateMachine for interation with dhcpcd
2011-05-02 13:29:36 -07:00
Robert Greenwalt
a47c40193f Merge "Add RouteInfo objects for tracking routes." into honeycomb-LTE 2011-05-02 13:26:52 -07:00
Robert Greenwalt
aa70f101e0 Add RouteInfo objects for tracking routes.
Used to have list of gateways for default routes, but general static routes
should be supported.

Change-Id: I01730142c6139f2b833b9d48f5381d2d320b69f6
2011-05-02 11:17:30 -07:00
Irfan Sheriff
31be7cf4c7 Add DhcpStateMachine for interation with dhcpcd
- Supports wakeup and renewal on dhcp
- Supports multiple controllers to use the state machine
  simultaneously
- Optionally, a controller can request a notification prior
  to DHCP request/renewal being sent

Change-Id: I3a9d7e6a02ff26be3a86ddca6964683ad3c28f93
2011-04-30 12:58:51 -07:00
Robert Greenwalt
7460591a57 am 759efacd: am ef568c97: Merge "Make new networkAttribute parameter non-optional." into honeycomb-LTE
* commit '759efacd2d1cf70d10f66fb9656de656ac8ca867':
  Make new networkAttribute parameter non-optional.
2011-04-26 01:35:39 -07:00
Robert Greenwalt
af2eb4f6db Make new networkAttribute parameter non-optional.
Dependencymet sets the default dep-met value for the network.  Should
be set to true unless you know what you're doing.

Change-Id: Ifa3765a97615f5333da07bce9defdb8600275129
2011-04-25 16:04:45 -07:00
Robert Greenwalt
6081084e88 Expose more net types to the public.
Ethernet and bluetooth.

Change-Id: Ic499709ffa151c0f27aef497373a8de7289e3e7f
2011-04-22 18:09:03 -07:00
Benoit Goby
43be7a6120 EthernetDataTracker: implement setDependencyMet
Change-Id: I4be804e3c9dccacfacb5cb813a4ad6f513224f06
2011-04-11 20:13:10 -07:00
Benoit Goby
2869d1715d resolved conflicts for merge of 08c39c6a to honeycomb-LTE
Change-Id: I79f8ac1dc8ff9f5d0559d37043b850cd26246b92
2011-04-11 18:41:23 -07:00
Benoit Goby
08c39c6a11 Add support for USB Ethernet adapters
Change-Id: I6ae34a32d0e1b6f21c484b8639c3e7ce086e568d
2011-04-11 16:33:43 -07:00
Joe Onorato
43a17654cf Remove the deprecated things from Config.java. These haven't been working since before 1.0.
Change-Id: Ic2e8fa68797ea9d486f4117f3d82c98233cdab1e
2011-04-07 19:23:05 -07:00
Robert Greenwalt
af6eddb1c2 Fix build.
Change-Id: I9ac1c28de4f3f11f84b04923d4547ab64dd57f23
2011-04-07 15:44:10 -07:00
Robert Greenwalt
80f7c594fa am f4a29403: resolved conflicts for merge of 70c3d1c2 to honeycomb-plus-aosp
* commit 'f4a29403ae5b6d3e8e754a025d33f0c33adecb21':
  Add external dependency API.
2011-04-07 14:22:03 -07:00
Robert Greenwalt
70c3d1c23b Merge "Add external dependency API." into honeycomb-LTE 2011-04-07 13:02:28 -07:00
John Wang
52c858f5f0 am c343c183: am 5d6f1167: Merge "Make LinkProperties comparable." into honeycomb-LTE
* commit 'c343c18376b8fd7d27a07adc5bb617d0260a8cdc':
  Make LinkProperties comparable.
2011-04-07 12:48:17 -07:00