Commit Graph

211 Commits

Author SHA1 Message Date
Jeff Sharkey
39fb9cd9c2 Update TrafficStats docs to reflect behavior.
Bug: 8399623
Change-Id: If9ccd305e8a077f318a09ac1bb160b8efbf903aa
2013-03-26 13:46:09 -07:00
JP Abgrall
7de8125565 jni: net.TrafficStats: fix getIfaceStat, have it use the iface.
Missing iface8 in call to parseIfaceStats().

Bug: 8304054
Change-Id: Ibb01d86a0f7241cdd8f23401973840673f847efb
2013-03-04 18:53:07 +00:00
Dianne Hackborn
e9d7207f86 Add version code constant for JB MR2.
Change-Id: I60fc76bbeb3c5e85d716179e9e3ea5758bafaf69
2013-02-25 15:55:37 -08:00
Jeff Sharkey
6d9c71ab65 Remove sscanf() warnings when parsing stats.
Change-Id: I15b7ba93d7ec121f9a7e19926f7436f2117b3b1a
2013-02-13 18:13:01 -08:00
Jeff Sharkey
51c819c4ea Parse network stats using native code.
Switch to parsing detailed network stats with native code, which
is 71% faster than ProcFileReader.

Change-Id: I2525aaee74d227ce187ba3a74dd08a2b06514deb
2013-02-13 17:40:49 -08:00
Jeff Sharkey
805bdac0a0 Use safe buffer sizes when parsing network stats.
Change-Id: I1733c1ddc48f9410136aee7af7889fdc7be8cc10
2013-02-07 15:02:55 -08:00
Jeff Sharkey
5fee2c9ee2 Improve TrafficStats UID APIs.
Deprecate transport layer statistics, leaving only the summarized
network layer statistics.

Improve documentation to be clear about layers where measurements
occur, and their behavior since boot.  Under the hood, move to using
xt_qtaguid UID statistics.

Bug: 6818637, 7013662
Change-Id: I9f26992e5fcdebd88c671e5765bd91229e7b0016
2013-02-07 13:59:26 -08:00
Jeff Sharkey
9e766ac165 Offer parsed TCP interface statistics.
Also switch to newer iface_stat_fmt numbers, which are measured at
XT level instead of dev.

Bug: 7903145, 6569689
Change-Id: Ibeb742966b8c89916ea31a49388a5dbe25a5f67f
2013-02-06 16:23:12 -08:00
Jeff Sharkey
86230aca66 Fix metered SSID matching regression.
WifiInfo changed to return SSIDs with quotes included, so relax our
identity matching to accept matches regardless of quotedness.

Bug: 7695807
Change-Id: Ib5d06666035e06b2d4b2f7cb498767d63b1b1828
2012-12-18 17:07:01 -08:00
Jeff Sharkey
526438dbe6 Useful annotations for code documentation.
Bug: 6537978
Change-Id: I806c3c09e3255f8789455f13bf37c1dde2a93f1f
2012-11-12 12:42:17 -08:00
Jeff Sharkey
3a8abe7eec Sanity check network stats coming from disk.
Throw early when structure is unstable, which allows the normal
recoverFromWtf() path to recover automatically.

Bug: 7440485
Change-Id: Ic150d17daac4de7c9ff3489025403a9b485b4620
2012-11-02 15:38:15 -07:00
Jeff Sharkey
8c8309a6fe Migrate network stats from removed users.
When a user is removed, migrate all network stats belonging to that
user into special UID_REMOVED bucket.  Also removes those stats from
kernel to avoid double-counting if another user is created.

Bug: 7194784
Change-Id: I03f1d660fe3754566326b7749cae8068fc224ea9
2012-09-19 14:54:05 -07:00
Jeff Sharkey
e1cf73eb69 Revert "API to adjust network stats." 2012-07-31 17:11:07 -07:00
Jeff Sharkey
6615400fe8 API to adjust network stats. DO NOT MERGE.
Enables system apps to correctly account network usage performed on
behalf of another application.

Bug: 6695246
Change-Id: I39e243afd57936b6b30157a6ca511a17b6c55c39
2012-07-31 11:45:17 -07:00
Jeff Sharkey
3ddc9b3745 Transition from DEV network stats to XT.
When XT stats are available, transition to prefer them over DEV,
since they aren't subject to hardware driver bugs.  Only switches at
the first atomic XT bucket, and adds a Settings.Secure flag to force
back to DEV if needed.  Includes tests to cover transition.

Fix tests where device overlay would change which network types
reflected data usage.  Test both history and summary APIs.  Fixed
collection timestamps to reflect full buckets.

Bug: 6504744
Change-Id: Idd7f3b2fdb064c36547c85c51c214fd938c59b7e
2012-05-17 10:10:39 -07:00
Irfan Sheriff
0e2eb98971 Merge "API review fixes" into jb-dev 2012-05-09 14:04:04 -07:00
Irfan Sheriff
e4c42f4026 API review fixes
- Remove the notion of channel from an application perspective
- Remove the use of DnsSd as part of API and add a protocol type to allow
future extensions
- Use the listener object as a handler for stop and unregister operations. Also,
we now allow multiple active discovery operations.
- Remove init/deinit operations in favour of setting up construction

Bug:6434844
Change-Id: Id15521d571aac9c4053d81184ad66dfc54f636de
2012-05-09 11:48:42 -07:00
Jeff Sharkey
c78bc60039 Reduce persist threshold for lower warning/limit.
Default is 2MB persist threshold, but even that can be substantial
for devices on 100MB/month plans. This change gradually reduces the
persist threshold up to 8x lower (256kb outstanding) based on lowest
active policy.

Bug: 5382676
Change-Id: Ief4e8cdb169bfb151a3d1b45722a8eaa01926508
2012-05-03 12:12:10 -07:00
Jeff Sharkey
cfed18ad5b Begin collecting xtables iface counters.
Add method to parse new iface_stat_fmt proc stats, or return null
when kernel support is unavailable. Add test and remove older, unused
parsing code. Create new "xt" recorder to persist the new xtables
counters when available.

Add SSID support to NetworkIdentity to fix policy tests.

Bug: 6422414
Change-Id: I77f70e9acb79a559ab626f3af5c4f3599801ed43
2012-05-01 21:04:26 -07:00
Irfan Sheriff
52fc83a79a Fix build
Change-Id: I1968e0d7d25f613fa6cf72f82d79f17224e3d5ab
2012-04-19 10:26:34 -07:00
Irfan Sheriff
fb97ffe162 Add network service discovery broadcast
Allows apps to know if user has the feature turned off

Change-Id: I2d2fecb148eb4e48eb4aea51d1d7643a82df5c52
2012-04-19 09:54:40 -07:00
Irfan Sheriff
7500665eb7 Add user control to turn on/off nsd
Change-Id: Ide3cc20adb21ac6dffaf6b9b9136d77a129afa3b
2012-04-19 09:52:09 -07:00
Irfan Sheriff
81394337bc Merge "Open network service discovery API" 2012-04-17 11:39:08 -07:00
Jeff Sharkey
f133bbfff7 Merge "Move TrafficStats iface counters to xt_qtaguid." 2012-04-16 12:11:21 -07:00
Irfan Sheriff
18da1320fe Open network service discovery API
Add support for DNS based network service discovery API. This
allows applications to discover and resolve applications on a
local network such as Wi-Fi

Change-Id: Ie89895edd35d12b7f7a23fb5fed36cb2b2079f7a
2012-04-15 17:09:48 -07:00
Irfan Sheriff
287e63bbb6 Merge "Bonjour fixes" 2012-04-12 17:55:15 -07:00
Jeff Sharkey
8308b9b2af Move TrafficStats iface counters to xt_qtaguid.
Use xt_qtaguid iface_stat_all counters, which are monotonic during
a single boot.

Track all ifaces associated with mobile networks since boot, and
move TrafficStats to using these ifaces.  This will include usage of
networks omitted from config_data_usage_network_types, specifically
on devices that recycle network interfaces across APNs.

Split wildcard template matching, and move NetworkStatsService to
use mobile wildcard when logging stats.

Bug: 5324515
Change-Id: I2211c374c05d1b598cc647f2f873630538955ffe
2012-04-12 14:53:32 -07:00
Irfan Sheriff
e8de246bb4 Bonjour fixes
Change-Id: I1df1dc470bb42c84abc7e1a46bedf9f206910b65
2012-04-12 12:08:51 -07:00
Jeff Sharkey
1ba1b673f5 Migrate to @Override to remove warnings.
Bug: 6303344
Change-Id: I0d33b2ed448467379d576ccd71fb5ae20c878852
2012-04-09 10:57:21 -07:00
Jeff Sharkey
27421b1665 Splice operations before collapsing ifaces.
Bug: 6241038
Change-Id: Ide9058703f7305df8fb070af149ddce0653a0abf
2012-04-09 10:27:55 -07:00
Jeff Sharkey
920d9046bc INetworkStatsSession with lifecycle for caching.
Users outside system_server now explicitly communicate their
lifecycle, which keeps a strong-reference chain to any fully loaded
NetworkStatsCollection histories.

Bug: 6236498
Change-Id: I8e22739b6e89a626b676967a736d7117fd000778
2012-04-06 13:38:29 -07:00
Jeff Sharkey
3bd888f411 Support metered Wi-Fi NetworkPolicy.
Add networkId field to NetworkIdentity to identify Wi-Fi networks by
SSID.  Add support for policies without usage cycles.

Only apply mobile policies when SIM state is ready, which is cleaner
than just checking for airplane mode.  Also avoids creating no-op
default policies when subscriberId is null.

Bug: 3001465, 3291052
Change-Id: I1f8aaa49a5db306df022c402ea7f3f5d4bc0cfc7
2012-04-05 16:02:25 -07:00
Irfan Sheriff
f3f68819df Fix build
Add missing file

Change-Id: I5ed1827e1183c37741675ce4d198d3e200c5fb94
2012-04-04 13:20:20 -07:00
Irfan Sheriff
77ec5581ed Add initial framework for DNS service discovery
Change-Id: I53c0b7ebfd75e520ebb7553612f1aa8413b6b79b
2012-04-04 12:24:56 -07:00
Jeff Sharkey
e4474c8bfe Remove network subtype check when building template.
Change-Id: I069d82a77d27dae6bfffe3b7e65d73b63f258ad9
2012-03-16 11:54:01 -07:00
Jeff Sharkey
8e38f3ddde Combine network subtypes by default.
Subtype controls (3G-vs-4G) aren't exposed in the UI, so tracking
data with that granularity creates unnecessary overhead. For example,
some GSM networks can regularly flap between two subtypes.

Bug: 6118868
Change-Id: Id098891dba52336d00d0f96632a7924e228b4713
2012-03-16 11:35:29 -07:00
Jeff Sharkey
be68c7c5c7 Move NetworkStatsFactory to faster ProcFileReader.
Less GC overhead, and about 8x faster parse times.  Verified that
tests pass.

Change-Id: Iff1d374f36103395a193176a88a57eebffa93c56
2012-02-27 18:08:13 -08:00
Jeff Sharkey
00b8bb6e79 Suppress StrictMode when reading /proc/ files.
Bug: 6077051
Change-Id: If4f23e947d8b91f9f124baa0460600a6b9353732
2012-02-27 17:42:34 -08:00
Jeff Sharkey
94a315cec5 Unify shorthand for byte-based units.
Change-Id: If990859dee3f0973e1d4c48f05312c84071b3328
2012-02-03 14:50:13 -08:00
Jeff Sharkey
0d038b7949 Match WIFI_P2P data usage.
Bug: 5405891
Change-Id: I5b815d6fc25a2f26a86c39a43fde305fcc3fb65c
2012-01-24 15:37:07 -08:00
Jeff Sharkey
bfe82685e7 Move network stats to FileRotator pattern.
Split existing network stats into two separate classes: a recorder
which generates historical data based on periodic counter snapshots,
and a collection of historical data with persistance logic.

Recorder keeps a pending history in memory until outstanding data
crosses a specific threshold.  Persisting is handled through a given
FileRotator.  This pattern significantly reduces disk churn and
memory overhead.  Separate UID data from UID tag data, enabling a
shorter rotation cycle.  Migrate existing stats into new structure.

Remove "xt" stats until iptables hooks are ready.  Avoid consuming
Entry values when recording into NetworkStatsHistory.  Assign
operation counts to default route interface.

Introduce "Rewriter" interface in FileRotator with methods to enable
rewriteAll().  Introduce IndentingPrintWriter to handle indenting in
dump() methods.

Bug: 5386531
Change-Id: Ibe086230a17999a197206ca62d45f266225fdff1
2012-01-24 11:13:14 -08:00
Jeff Sharkey
f6351440e4 Merge "Move non-monotonic reporting to interface." 2012-01-10 17:41:01 -08:00
Jeff Sharkey
ef7bded347 Move non-monotonic reporting to interface.
Report non-monotonic NetworkStats through an observer interface
instead of throwing, since those events are still recoverable.

Change-Id: Ic0749f4634b0ac05dbe90e95ca490957ec8b2f23
2012-01-10 17:24:44 -08:00
Steve Block
dc3b510b35 Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
2012-01-08 13:19:13 +00:00
Jeff Sharkey
307beecd41 Include roaming in NetworkIdentity.hashCode().
Change-Id: I148d95c8d08e3916a90fa78f7efee327d4b7de2a
2011-12-16 11:52:35 -08:00
Jeff Sharkey
42f4043633 Clamp non-monotonic stats instead of dropping.
When encountering non-monotonic stats rows, recover remaining data by
clamping to 0.  In particular, this avoids edge-case where persisting
threshold checks would never trigger.  Also recover when tethering
snapshots are missing.

Bug: 5600785, 5433871, 5600678
Change-Id: I1871954ce3955cc4ac8846f9841bae0066176ffe
2011-11-10 17:54:23 -08:00
Jeff Sharkey
35226c4c27 Merge "Bootstrap stats before registering listeners." into ics-mr1 2011-11-08 23:43:58 -08:00
Jeff Sharkey
29f15bb4b3 Bootstrap stats before registering listeners.
Also move ISE to handled NonMonotonicException.

Bug: 5570872
Change-Id: I793f349287ef5589185f117dfbec6f1fad73a661
2011-11-08 18:24:12 -08:00
Jeff Sharkey
e2de8f08d4 Make operation counts monotonically increase.
Bug: 5585704
Change-Id: I5247a68acdb209a4ef0f5aac18944595c295e6ca
2011-11-08 17:35:28 -08:00
Jeff Sharkey
cd5559a856 Correct proc file reader, optimizations.
Moved away from BufferedReader, which only reads the first 8KB of
some proc files because it aggresively fills its buffer.  Optimized
proc parsing, now double the speed.  Tests to cover.

Log when NetworkStats counters roll backwards when subtracting, and
optimizations around findIndex().  When system removes UID, also
remove from last stats snapshot to avoid xt counters from rolling
backwards.

Bug: 5472949, 5458380
Change-Id: I07c08fe5233156fac2b84450f6291868bf9bfaf2
2011-11-02 15:14:11 -07:00