Commit Graph

419 Commits

Author SHA1 Message Date
Jeff Sharkey
337b986b98 Return stats from inactive ifaces, packet counts.
When an iface goes inactive, xt_qtaguid maintains historical counters
instead of discarding.  Now reading and returning those values in
NetworkManagementService summary calls.  Tests to verify stats are
returned.

Modify NetworkStats to include rxPackets and txPackets values, and
move to Entry to eventually hide internal storage details.

Bug: 4984539
Change-Id: I1ba0bb5580c62e946d9dff2cc2a6f64aff403efc
2011-07-11 14:39:56 -07:00
Wink Saville
620e1078ec resolved conflicts for merge of a3b4b5ca to master
Change-Id: I50f8fe61303efa78f5d450ddda1483e0ecb81d12
2011-07-08 12:49:14 -07:00
Wink Saville
a3b4b5ca19 am c101c56e: Use resetConnections with resetMask.
* commit 'c101c56ecc4d6a0440225ed8550faa09dc4cd81b':
  Use resetConnections with resetMask.
2011-07-08 09:40:08 -07:00
Wink Saville
c101c56ecc Use resetConnections with resetMask.
Bug: 4981919
Change-Id: I5dec2da0756d5083bc81494fd583672704537694
2011-07-07 16:17:06 -07:00
Chia-chi Yeh
bded3eb138 VPN: implement status report for legacy VPN.
Change-Id: I81c28dafd9588572df76cbc303b0d6a0f41f9bc6
2011-07-04 03:23:12 -07:00
Chia-chi Yeh
3e2e1da0a0 VPN: convert prepare() into a form which helps solve race conditions.
When someone tries to revoke packageA, it is possible that packageA is
already revoked by packageB. In this case packageB should not be revoked,
and the new prepare() can help solve this problem.

Change-Id: Iee056a191dd99467b8ad1b5379a17b02d404bad1
2011-07-03 17:03:27 -07:00
Chia-chi Yeh
6c500a4c5a VPN: remove the old VpnService.
Now VPN is (kind of) integrated into ConnectivityService.

Change-Id: If98e456e779f8e97f562d99c57d909b1f5d9db55
2011-07-02 20:21:09 -07:00
Chia-chi Yeh
7e026b38e9 VPN: export legacy VPN in IConnectivityManager.
Change-Id: I016fe056ceab39ffc36aa235d14b30a9f094a2e1
2011-07-02 17:15:00 -07:00
Chia-chi Yeh
d050d1c82c VPN: Use List<String> instead for dnsServers and searchDomains.
Change-Id: I5d72c182ad47f59121a04b68ec6c2d164e2d00a8
2011-07-01 01:14:19 -07:00
Jeff Sharkey
cd18d74b94 Migrate bandwidth control to NMS, omit history.
Both stats and policy make NMS calls that depend on bandwidth control
being enabled, so move enable/disable into NMS and drop calls when
disabled.  This avoids throwing heavy ISE exceptions when disabled.

Only include recent data when writing NetworkStatsHistory as part of
dumpsys call.  Introduce manual poll event for Settings UI.

Bug: 4982115, 4770435, 4515856
Change-Id: I257820b057af2f0f99c736fb4f61e55b9fdc3e66
2011-06-30 15:47:51 -07:00
Jesse Wilson
92f7f93fca Move socket tagging from libcore.
Change-Id: I7515896936c5bbd212c88e2801b831914219a925
2011-06-28 23:43:51 -07:00
Jeff Sharkey
2cc5fa7fbe Better network stats parsing, integer tags, async.
Change NMS parsing to handle extended /proc/ stats formats by pairing
values with header keys.  Move TrafficStats to integer tags to match
kernel internals, and offer well-known tags for system services.

Async policy event dispatch from NPMS, and update tests to block for
event dispatch.  Narrow app policy to exclude apps signed with system
key, which are usually critical.

Bug: 4948913, 4903489, 4585280

Change-Id: Idb357227ccaa617906411f309371cea18d7bc519
2011-06-28 17:59:00 -07:00
Wink Saville
efaa396ae9 am 3f2f58e9: am f49e4d3f: Merge "Temporary re-enabling iface name change handling on HO" into honeycomb-LTE
* commit '3f2f58e9d5d686738843d68e46676471c288b025':
  Temporary re-enabling iface name change handling on HO
2011-06-27 14:14:45 -07:00
Irfan Sheriff
e7bfeb3d77 Merge "WifiWatchdogService - disable bad connections" 2011-06-25 11:20:54 -07:00
Robert Greenwalt
968330fae8 resolved conflicts for merge of 40717996 to master
Change-Id: Ie5c0f1f20c313d6c568b3b06f778f75223914ada
2011-06-24 16:10:06 -07:00
Isaac Levy
5cdb9c934c WifiWatchdogService - disable bad connections
Complete rewrite of WifiWatchdogService.java.  Checking for connectivity and managing wifi upon failure detection.

Change-Id: Ifcb8b5d7e0112cbc2f2282d76fdc93ea15527a44
2011-06-24 15:48:10 -07:00
Wink Saville
3f2f58e9d5 am f49e4d3f: Merge "Temporary re-enabling iface name change handling on HO" into honeycomb-LTE
* commit 'f49e4d3f182071081537dba3387db20cae27c427':
  Temporary re-enabling iface name change handling on HO
2011-06-23 18:25:38 -07:00
Kazuhiro Ondo
0768006559 Temporary re-enabling iface name change handling on HO
Temporary accept interface name change in ConnectivityService.
See bug/4455071.

Bug: 4903011
Change-Id: I7f06c2ca83535b981f047cb671e08550aed7df1a
2011-06-23 14:58:50 -07:00
Robert Greenwalt
7fb0b2856f am db32c8c5: Merge "Restrict access to protected networks." into honeycomb-LTE
* commit 'db32c8c540fa478e5f89d57f437d2f7e5366e4c3':
  Restrict access to protected networks.
2011-06-23 08:19:48 -07:00
Irfan Sheriff
df6bab0528 am be859295: (-s ours) am 9a33301d: resolved conflicts for merge of ea8e3c23 to honeycomb-LTE
* commit 'be85929569e103613ec760571caff3a12d7cbeff':
  Revert "DO NOT MERGE Revert "DO NOT MERGE Add DhcpStateMachine""
2011-06-23 08:16:44 -07:00
Robert Greenwalt
db32c8c540 Merge "Restrict access to protected networks." into honeycomb-LTE 2011-06-23 08:04:48 -07:00
Irfan Sheriff
016cd82367 am 060e2a4a: (-s ours) am 5d5b73be: Merge "resolved conflicts for merge of 267a6181 to honeycomb-LTE" into honeycomb-LTE
* commit '060e2a4a98b85f06d58d761b1fd977b7d6fe812e':
  DO NOT MERGE Revert "DO NOT MERGE Add DhcpStateMachine"
2011-06-23 07:50:01 -07:00
Robert Greenwalt
6cac07422e Restrict access to protected networks.
Some networks should only be brought up and controlled by system apps.

bug: 4585677
Change-Id: I61b1ee3dcfca0ee54387cecffe5198a0b010d98b
2011-06-22 16:35:12 -07:00
Robert Greenwalt
09d6cdf338 resolved conflicts for merge of 796539b1 to master
Change-Id: Id0a41cae36f5a3b30f2fe8a202c934153b9cd03f
2011-06-22 13:20:14 -07:00
Irfan Sheriff
be85929569 am 9a33301d: resolved conflicts for merge of ea8e3c23 to honeycomb-LTE
* commit '9a33301da1fdff65836443538935b1c77ba0cb1a':
  Revert "DO NOT MERGE Revert "DO NOT MERGE Add DhcpStateMachine""
2011-06-22 11:19:09 -07:00
Irfan Sheriff
9a33301da1 resolved conflicts for merge of ea8e3c23 to honeycomb-LTE
Change-Id: I616b7ba5c27d0cc4247f5cce4303effe14658e1e
2011-06-22 11:01:16 -07:00
Irfan Sheriff
060e2a4a98 am 5d5b73be: Merge "resolved conflicts for merge of 267a6181 to honeycomb-LTE" into honeycomb-LTE
* commit '5d5b73be515d839d72e1cf7aeffdfdfb56d66045':
  DO NOT MERGE Revert "DO NOT MERGE Add DhcpStateMachine"
2011-06-22 07:47:16 -07:00
Irfan Sheriff
a565295565 resolved conflicts for merge of 267a6181 to honeycomb-LTE
Change-Id: I95d459c937f788ed15f178e85692e1c393bdaa04
2011-06-22 07:11:42 -07:00
Irfan Sheriff
ea8e3c2322 Revert "DO NOT MERGE Revert "DO NOT MERGE Add DhcpStateMachine""
This reverts commit a3663884ca.
2011-06-21 14:26:37 -07:00
Irfan Sheriff
a3663884ca DO NOT MERGE Revert "DO NOT MERGE Add DhcpStateMachine"
This reverts commit 9cfe6197fb.

Change-Id: I3a9ae1f0d17e7a154d27d4f3f3eb1efa21a34f64
2011-06-21 11:38:23 -07:00
Robert Greenwalt
796539b12a resolved conflicts for merge of b427f0e6 to honeycomb-plus-aosp
Change-Id: I8e287fd814b4a3ca72014ea060a1de043d1b4713
2011-06-20 12:15:24 -07:00
Robert Greenwalt
33cdcdf2fa Fix tethering upstream determination.
Used to use iface names, but on mobile ifaces are multipurpose.
Refined to use ConnectivityService types.
bug:4530116

Change-Id: Iaa632d5f540d27ffff683bd7d94f8004bf422e71
2011-06-20 11:09:23 -07:00
Jeff Sharkey
d723e62717 Persist "tagged" network stats along with UIDs.
Now stores tags other than TAG_NONE (0x0), which are useful for app
debugging.  Combine UID and tag together into single long key, and
expose tag data through AIDL when requested.  Change NMS to track
TAG_NONE as total UID traffic, matching the kernel definition.

Added TAG_MAX_HISTORY to control how long tag-granularity statistics
are stored; overall UID usage is still kept for UID_MAX_HISTORY.  Fix
bug to trim NetworkStatsHistory outside normal polling loops to catch
non-active networks and UIDs.

Test to verify UID and tag packing, and to verify that UID traffic on
two networks are combined to match MOBILE_ALL template.

Change-Id: If0e039416d9e7f63b1a39e04cddfb1133b5a78ee
2011-06-19 21:58:39 -07:00
Jeff Sharkey
d57635406d Handle removed UIDs in network stats and policy.
When UID_REMOVED, clean up any existing UID network policy so it
doesn't linger for future apps.  Also move any NetworkStatsHistory
to special UID_REMOVED tracking bucket.

Tests for new removal code.  Also test detailed UID stats, including
network changes to verify template matching logic.

Bug: 4584212
Change-Id: I9faadf6b6f3830eb45d86c7f1980a27cdbcdb11e
2011-06-19 01:08:12 -07:00
Jeff Sharkey
de450f98eb Read "qtaguid" network stats, refactor templates.
Teach NMS to read qtaguid stats from kernel, but fall back to older
stats when kernel doesn't support.  Add "tags" to NetworkStats entries
to support qtaguid.  To work around double-reporting bug, subtract
tagged stats from TAG_NONE entry.

Flesh out stronger NetworkTemplate.  All NetworkStatsService requests
now require a template, and moved matching logic into template.

Record UID stats keyed on complete NetworkIdentitySet definition,
similar to how interface stats are stored.  Since previous UID stats
didn't have iface breakdown, discard during file format upgrade.

Change-Id: I0447b5e7d205d73d28e71c889c568e536e91b8e4
2011-06-18 22:23:11 -07:00
Jeff Sharkey
a47d7a1a70 Notify policy listeners about metered ifaces.
Currently, kernel definition of metered networks is applied at the
interface level.  This change maintain list of those metered ifaces
and notifies policy listeners, like ConnectivityService.  (This gives
us a consistent picture of when a network would be blocked.)

Bug: 4601393
Change-Id: I277d5ca96ab967a1c1c3f1da8f9587557cd6d74c
2011-06-17 16:49:21 -07:00
Jeff Sharkey
29fc3322d5 Merge "DownloadManager flags for network policy." 2011-06-16 13:39:02 -07:00
Jeff Sharkey
4434b0b55b DownloadManager flags for network policy.
Handful of DownloadManager flags to record when a download was paused
because of NetworkPolicyManager rules.

Change-Id: I99fc47f529cb6c8a42dbeca049e0cd0f1556eac4
2011-06-16 13:04:34 -07:00
Robert Greenwalt
9d145fde31 am 00ca322d: am 5f350512: Merge "Reset connections AFTER we take down the network." into honeycomb-LTE
* commit '00ca322d5d99056b47a74075e2d2c8b464bbdbc1':
  Reset connections AFTER we take down the network.
2011-06-16 12:50:46 -07:00
Robert Greenwalt
00ca322d5d am 5f350512: Merge "Reset connections AFTER we take down the network." into honeycomb-LTE
* commit '5f3505121b761dbd3bba62d1603fbab49de139b9':
  Reset connections AFTER we take down the network.
2011-06-16 12:42:15 -07:00
Robert Greenwalt
36ea869426 Reset connections AFTER we take down the network.
If you do it before you have a race condition and some apps will
manage to reconnect on the dieing network before it goes and then
get no notification when it goes.

bug: 3408025
Change-Id: I5386ff313c759b3f687bc38731454ab43dbe76b8
2011-06-16 11:26:54 -07:00
Chia-chi Yeh
75cacd5525 VPN: migrate from generic Bundle to our own Parcelable VpnConfig.
Note that VpnConfig is for internal use only.
Also remove hidden methods from ConnectivityManager.

Change-Id: Ic298c4dc9a2c6c452bd8f4be6fa84e7ac489c0c4
2011-06-15 17:08:58 -07:00
Jeff Sharkey
97abbe95cd Growable NetworkStats object instead of builder.
NetworkStats now grows in place with arraycopy() instead of callers
needing to know record count a priori.  Better growth calculation for
both NetworkStats and NetworkStatsHistory; 50% each time.  Better
estimates of buckets needed in calling services.

Change-Id: I3adbffa0b7407612cc6349d9135a8b4eb63cd440
2011-06-11 22:17:17 -07:00
Jeff Sharkey
837b4ebf7e Persist UID stats, lazy loading, resize buckets.
Persisting detailed UID stats in separate "netstats_detail.bin" file
to enable different schedules for summary and detail polling.  Only
load detailed UID history on demand, since it's not needed during
boot.  Add test to verify UID stats are persisted across simulated
reboot.

Move external settings into well-named interface, which is still
backed by Settings.Secure.  During periodic poll events, resize any
history to match current bucket duration setting.  Test to verify.

Change-Id: I6366f3583a591f8ba859b0e5987daf8cafa4e95a
2011-06-11 17:55:56 -07:00
Jeff Sharkey
ebbebc73a0 Persist network stats using AtomicFile.
Implements read/write of network stats using AtomicFile, along with
magic number and versioning.  Stores in "/data/system/netstats.bin"
for now.  Tests to verify that stats are persisted across a simulated
reboot, and to verify that TEMPLATE_WIFI is working.

Fixed bug where kernel counters rolling backwards would cause negative
stats to be recorded; now we clamp deltas at 0.

Change-Id: I53bce26fc8fd3f4ab1e34ce135d302edfa34db34
2011-06-09 10:14:13 -07:00
Chia-chi Yeh
9a4ad7d52c 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
269d732e13 resolved conflicts for merge of 510d0a75 to master
Change-Id: Ic4d8aae7dd457457d9cc8ba081b273e425729f86
2011-06-08 10:01:06 -07:00
Jeff Sharkey
512b757b08 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
21062e7c7e 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
Chia-chi Yeh
ab2c05370e Merge "Do not register the callbacks in the constructor." 2011-06-07 18:18:56 -07:00