This is a 1st pass at receiving events that indicate
some quota has been reached e.g. warning quota, data collection quota,
cutoff quota,...
It needs:
- new kernel with quota2 logging support
- new net:bandwidthcontroller that supports
. quota2,
. setting alerts.
- new NetlinkEvent/NetlinkManager/NetlinkHandler to process
NETLINK NFLOG messages.
Change-Id: Ibfbb13512c5350cdee0e544ec14caa6f59812409
Instead of exposing internal storage details, offer getValues()
accessor which populates values into a recycled structure.
Change-Id: I5228d7099a8f61b2018a435a813435a67dae49b4
Uses NTP server and timeout from secure settings, or fallback to
defaults in resources. Update various system services to use cached
NTP time when fresh enough, or force updates as needed.
Bug: 4517273
Change-Id: Ie1c4c4883836013d02ca0bbd850cf8949f93b34b
After unreverting the linkstate change patch, hook up notification handlers
that didn't exist when the first patch was created, like
EthernetDataTracker.java and Vpn.java.
For the observers that handle interfaceStatusChanged(), I made
interfaceLinkStatusChanged() call it so they both do the same thing.
Change-Id: I0077e5e5f48f3932ba98f5bf363243892f2de6cc
Signed-off-by: Mike J. Chen <mjchen@google.com>
This reverts commit 1a7e67190228a8ff3b92e7e5496a8db8ff306cca.
Bring back the changes from Stan Chesnutt regarding link-status-change
notifications. The comment from the original patch was:
Propagate new link-status-change message to any NetworkManagementService
observers. Also fix the syntax of the "interface-status-change" message. Add
a null handler in the ThrottleService and Tethering classes (plus fix names).
Change-Id: I42cbed692024de32275cad234f42ff23ab7e9d8d
Signed-off-by: Mike J. Chen <mjchen@google.com>
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
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
Wrote initial suite of tests for ThrottleService, checking a variety
of edge cases. Checks going over limits, updating policies, and reset
after cycle elapses.
Moved NTP code in ThrottleService into new TrustedTime interface,
which makes it easier to understand, and allows tests to provide custom
clocks.
Change-Id: I0d62b8b3a169516a2ab2d33025f6fe30dc792be8
observers. Also fix the syntax of the "interface-status-change" message. Add
a null handler in the ThrottleService and Tethering classes (plus fix names).
Change-Id: I58cabc7b0ce5662243bc6513b2de4818065e6c52
Don't start people reading settings until after the settings (ntp server settings)
are loaded.
bug:2608189
Change-Id: I7dfaa1e9418b98a141d17dc35d22ff42fcfa052f
Reduce the amount of work done inside of synchronized blocks and
force the use of cached ntp data when publicly called.
bug:2662331
Change-Id: Ibafd29ea9e355fa8f875d06ce37870b0c01c57f4
When we switch to another network (or even just lose mobile data) the mobile
interface is either brought down or destroyed altogether. That means any
throttling rules we've told the kernel about get lost.
This change notices when our interface comes up and reinstates throttling
if needed.
bug:2660287
Change-Id: I4c6ebf78acc59ed66b95984a1e8b7c2ffbc22dcb
The start and end times were precisely the same so, a ">" check needed to be ">=".
Also removed useless code and removed the potential problem where continuous gradual
advancement of your start and end times would prevent resets.
bug:2629717
Change-Id: Ieced1965a5611a9b555e92bcf924ec350f2a80db
We were updating limits and such before, but we were not applying them
to the current situation if we were already throttled. Now it can result in
us throttling or changing our throttle rate or unthrottling or even making
the ui come or go (disabling/enable throttling)
bug:2622543
bug:2619879
Change-Id: I64a62634d54f4768ab8625f8d72f9f66a239cb19
Throttle is useless when ntp and imsi are not yet ready. In the real world
the second check won't happen for 10 minutes letting people do what they want
for 10 minutes each boot. Trim this down with a quicker first check.
bug:2614247
Change-Id: I84ec33f31e8fed37b3933482fbc187b8e9e94e79
Cleanup of duplicate code
Caching Ntp data so we don't hit the network as often
Clearing out of MRU data when we switch to a new sim
Sending notification after we reset byte counts
bug:2605277
bug:2605272
bug:2597530
bug:2576057
Change-Id: I3df526bae6374f6ae56fed67b0defad2b4fabefd
Use elapsed time not wall time for alarms so users can't play with the
system time to get around things.
Also using NTP servers to pull in an authoritative time - if we the build
is configured with an NTP server we will not advance to the next cycle
without it, but we also will not trottle - rather not throttle users
on an error.
Note that the poll alarm is just relative to the last poll time and real
time doesn't matter.
Defining the time-fetching API's as returning time in the system wallclock
range (correcting if we are using NTP time internally).
bug:2597530
Change-Id: I1c0ac0923314c2f8a04edd0b36c4845352eae99a
Uses the last used data until the SIM is available (if ever). Supports data from
several SIMs for all the world travelers out there.
bug: 2576057
Change-Id: I70e34a51f1c2ccda41a480652b0233b68ff3f538
The byte counter for the iface goes to zero when it comes back. Catch that and
do the complex math to correct.
Also add a log entry telling us our desired throttle index.
Lastly, reset the sec/msec part of our reset time so that one calc will == another and not
be off by little bits.
bug:25494925
Change-Id: I99525b72a76316a8e601ceb457ca202fae040bae
Never got SharedPreferences working for this system service. Didn't really need it anyway.
Using a straight up file now.
bug:2576057
Change-Id: Idad926e8242a85e22718c25f3f6c03e5749badac
Don't use hard coded defaults - use build configs instead.
Iface is now ONLY set by config so gservices doesn't need to.
bug:2576057
Change-Id: I8f9e3bc51af3b1cdf8bb4290a43197d9c01e2a14
Currently warns if you exceed more than 25% and 2*100%*timeUsed/(timeUsed+totalTime)
The formula means that imagining you've got half of the remaining time that you really have,
we will warn you if you would exceed the quota given your rate so far. It's generous during the
early to mid-life and converges back to the limit as your timeUsed approaches totalTime.
bug:2576057
Change-Id: Id189de5b026f927ef478fd212d61d9e4ab5239e6
Added ContentObserver to watch relevant Secure Settings.
Also added new policy-change broadcast to let settings know.
Lastly reorged things a bit so that all of our broadcasts are sent at boot so the sticky ones
are populated.
bug:2576057
Change-Id: Ie11ffb057de9c801a5088612cd464ea062f3a666