Commit Graph

380 Commits

Author SHA1 Message Date
tk.mun
5eee104218 Disable wimax when mobile data is in Settings
- Add wimax related code in handleSetMobileData to disable wimax when Moblie data is disabled (Settings -> Wireless & Networks - More -> Mobile Networks ->Data Enabled)

Change-Id: Ibf2d9da2eb90d161128005f26ac4b3e991526af4
Signed-off-by: tk.mun <tk.mun@samsung.com>
2012-01-06 10:32:54 -08:00
Robert Greenwalt
7fa3bdb746 Stop using shared DUN APN when tethering stops.
Even if other people are sharing the connection (ie, carrier wants
default and tethered traffic on the same APN) stop using
a carrier-described APN when the tethering stops.

bug:5525764
Change-Id: I95ed2aaed4d79519d233a62cf2945edead8114bc
2012-01-03 16:32:04 -08:00
Jeff Sharkey
bcd1e340c6 Restrict app data on metered networks.
This separates the definition of "metered network" and "network with
limit."  For now, all mobile networks are considered metered.

Bug: 5571454
Change-Id: I394cd385bd33add75e53bfc9cf2fefd06a00208a
2011-12-15 14:30:04 -08:00
Robert Greenwalt
bc026d0ad8 Fix NPE in ConnectivityService.
If it's configured with a defined network but can't create a network state tracker
for it, it would NPE and restart the framework whenever a default network
disconnects.

bug:5603268
Change-Id: I816c4f522d766e0353a713623f6635b03395b01e
2011-11-11 09:56:03 -08:00
Robert Greenwalt
cafd8583a1 Fix Wimax-less build.
A build with the wimax network type defined but wimax disabled
causes an NPE in ConnectivityService's constructor.

bug:5237167
Change-Id: I929eac217e1afa0e61346fdbc3e96a7d3ad09a54
2011-11-10 17:14:05 -08:00
Robert Greenwalt
e72c4aca58 Fix build.
Missed a commit that fixed some issues.
bug:5237167

Change-Id: I61e44831e2c3f1cf613ca1387aa95d712b7d2ded
2011-11-08 10:12:25 -08:00
tk.mun
093f55ca9c Wimax : wimax framework related open source.
Integrate wimax network related changes into Android Framework.
- In Connectivity service, start wimax service.
- 4G icon display in StatusBarPolicy.
- DHCP renew add.
- Add radio for wiamx

Change-Id: I2d9012247edfdf49d71ca7e1414afd0006f330ca
Signed-off-by: tk.mun <tk.mun@samsung.com>
bug:5237167
2011-11-07 14:47:40 -08:00
Robert Greenwalt
9dcad72873 am 348297ab: Merge "Start using IP tool for advanced routing." into ics-mr0
* commit '348297abc0e03fb87a1d22465020b580d83fdd61':
  Start using IP tool for advanced routing.
2011-11-04 22:55:30 +00:00
Robert Greenwalt
49c75d3db9 Start using IP tool for advanced routing.
bug:5495862
bug:5396842
Change-Id: I5e31b352b14a4dc746cacce4d61cf8d9ad7382a0
2011-11-04 09:52:04 -07:00
Jeff Sharkey
e370a59bec 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
Robert Greenwalt
274518a279 Temp disable Tethering if DUN is required
Getting source-based routing working is too risk for this point
in the project but tethering is broken otherwise, so disable
the tethering option if DUN is required until we can get a real
fix in.

bug:5495862
Change-Id: I5e852bf30c887599024a8b61af86ffec1d5333af
2011-10-27 14:50:27 -07:00
Jeff Sharkey
aac2c50385 Move battery stats to xt_qtaguid for data stats.
Replace TrafficStats calls by reading values from xt_qtaguid kernel
module. To keep BatteryStatsImpl changes lightweight, cache recently
parsed stats. Tracks mobile ifaces from ConnectivityService.

Refactor xt_qtaguid parsing into factory outside of NMS. Add stats
grouping based on UID, and total based on limiting filters like iface
prefix and UID.

Bug: 4902271
Change-Id: I533f116c434b77f93355bf95b839e7478528505b
2011-10-09 13:49:08 -07:00
Chia-chi Yeh
ec49c91929 Merge "VPN: temporarily disable the default proxy when VPN is active." 2011-10-06 15:29:50 -07:00
Chia-chi Yeh
f386f9ec7e Merge "ConnectivityService: detach the logic of global proxy." 2011-10-06 15:29:43 -07:00
Jeff Sharkey
d49f1a59f9 Read iface stats from single proc file.
When available, use single "iface_stat_all" file instead of reading
values from dozens of files scattered across proc.  Tests to verify.

Bug: 5397840
Change-Id: I0247be518436c1f79b32c4b72216739f49a9e8cc
2011-10-04 13:22:39 -07:00
Jeff Sharkey
ad268036a4 Track xtables summary, move tether stats, time.
Begin tracking xtables summary of data usage to compare with values
reported from /proc/net/dev.  Roll tethering directly into UID stats
to trigger UID stats persisting when crossing threshold.

Include xtables summary and authoritative time in samples.

Bug: 5373561, 5397882, 5381980
Change-Id: Ib7945522caadfbe0864fdf391582dc820f4f371e
2011-10-03 17:21:05 -07:00
Chia-chi Yeh
763a11c5bd VPN: temporarily disable the default proxy when VPN is active.
Bug: 5361858
Change-Id: I99e84cce9c99ff1f5fdccbfd3bfb9cf496ac541c
2011-10-03 15:34:04 -07:00
Chia-chi Yeh
ae16661808 ConnectivityService: detach the logic of global proxy.
The current implementation of global proxy is dead,
and it will be removed completely in separate changes.

Change-Id: I54f6b3960f761483d28d808e99db4c71c9c0348d
2011-10-03 14:04:42 -07:00
Lorenzo Colitti
aa035385d3 Revert "Tell the resolver what protocols to use."
Change Ife82a8d8 broke IPv6 on wifi. Change I4e3a69ea is
an alternate approach that does not require any framework
changes.

Bug: 5284168
Change-Id: Ib6e002aa23700adc71051cf6b76860545497dbf4
2011-09-28 23:07:03 -07:00
Jeff Sharkey
6d38bd1bc3 Merge "Watch network subtype, tethering teardown, empty." 2011-09-25 23:44:10 -07:00
Robert Greenwalt
bc75548c32 am c1abed5b: Merge "Tell the resolver what protocols to use." into ics-factoryrom
* commit 'c1abed5b5b202d7dec168959b9b8cb3f78ccbad3':
  Tell the resolver what protocols to use.
2011-09-22 23:39:53 -07:00
Robert Greenwalt
c1abed5b5b Merge "Tell the resolver what protocols to use." into ics-factoryrom 2011-09-22 16:57:43 -07:00
Robert Greenwalt
521aaa48e2 Tell the resolver what protocols to use.
Stop guessing based on the connectivity of the default route and use the correct
v4/v6 proto for your pid.

bug:5284168
Change-Id: Ife82a8d8e54c0ace2bc9e8a624b11d29a4e285e2
2011-09-22 16:43:15 -07:00
Jeff Sharkey
b6188a1aac Watch network subtype, tethering teardown, empty.
Watch for changes to telephony network subtype, and update iface
mapping to persist stats under correct type.  Update network stats
before removing tethering NAT rules.

Skip recording that would create empty historical buckets.  Query UID
stats before iface stats to always skew positive when counters are
actively rolling forward.

Bug: 5360042, 5359860, 5335674, 5334448
Change-Id: I8aa37b568e8ffb70647218aa1aff5195d3e44d5a
2011-09-22 16:19:06 -07:00
Wink Saville
693ee83a6c am 904fb9d7: Merge "Notify people of empty proxies too." into ics-factoryrom
* commit '904fb9d79cc72879e4c6767c219ec78feda8e62b':
  Notify people of empty proxies too.
2011-09-22 10:53:40 -07:00
Robert Greenwalt
90b574ef05 Notify people of empty proxies too.
We were telling people when the proxy changed, except if it was changed to null.
bug:5263946

Change-Id: I83416dac8fe992168a8aafd5676f9faee4e484d0
2011-09-21 16:37:34 -07:00
Wink Saville
933cb47f64 am 4aa8d943: Merge "Reduce connectivity logging" into ics-factoryrom
* commit '4aa8d943a970008915b703758743b107927d96fa':
  Reduce connectivity logging
2011-09-21 14:14:28 -07:00
Wink Saville
a7d56571c2 Reduce connectivity logging
Change-Id: I5d45b8fbcd01e42df7f2b1cf02fb5b226128abb8
2011-09-21 11:05:43 -07:00
Irfan Sheriff
4aa0b2ece5 Change hostname format to conform to specification
Underscore is not allowed as per RFC 952

Bug: 5348537
Change-Id: I618c137fd54ecf36cece3b9eba39c51cda3aeac3
2011-09-20 15:22:00 -07:00
Jeff Sharkey
f444762587 Sample atomic network stats buckets, full poll.
When sampling network stats, always use atomic buckets instead of
interpolating.  Always poll iface and UID together so we distribute
into buckets equally.  Move stale bucket trimming to just before
writing stats.

Bug: 5321340
Change-Id: I78a2226778a79c875f3668336e39ea24a7b4d5c4
2011-09-18 16:27:21 -07:00
Jeff Sharkey
ade8174d53 DO NOT MERGE: Sample atomic network stats buckets, full poll.
When sampling network stats, always use atomic buckets instead of
interpolating.  Always poll iface and UID together so we distribute
into buckets equally.  Move stale bucket trimming to just before
writing stats.

Bug: 5321340
Change-Id: I78a2226778a79c875f3668336e39ea24a7b4d5c4
2011-09-18 16:17:51 -07:00
Jeff Sharkey
8f5e775626 am 3d1d57dc: Merge "Collect and persist tethering stats." into ics-factoryrom
* commit '3d1d57dcdb02ace6af5810bd4ec3f8fad5fc1799':
  Collect and persist tethering stats.
2011-09-18 16:17:39 -07:00
Jeff Sharkey
300f08f094 Collect and persist tethering stats.
Use new "gettetherstats" netd command to retrieve statistics for
active tethering connections.  Keep tethering poll events separate
from UID poll, even though they end up same historical structures.

Bug: 5244846
Change-Id: Ia0c5165f6712c12b51586f86c331a2aad4ad6afb
2011-09-16 16:05:51 -07:00
JP Abgrall
7682298a7d NetworkManagement SocketTagger: Migrate QTagUid support to JNI.
* Instead of javaland trying to write commands to
   /proc/net/xt_qtaguid/ctrl
use the libcutils/qtaguid.c support via JNI.
* Get rid of tagToKernel() handled by qtaguid library.

Requires libcutils changes from c/132538/

Change-Id: I9de5b3fa4a596c56835024c6d376769a0eea7db1
2011-09-15 02:29:03 -07:00
Jeff Sharkey
d34133cad7 Network stats flag to force complete poll.
Devices currently delay collecting UID stats during common operations
like global alerts to reduce parsing load.  Here we introduce a flag
to always collect UID and iface stats together to aid debugging.

Bug: 5321340
Change-Id: Ia8e1daf1a6f9d5f5cf1f64a04b6b6766ee965ab6
2011-09-14 19:47:05 -07:00
Jeff Sharkey
4dc0642d32 Data usage structure optimizations.
Driven by traceview hotspots found in Settings UI.

Change-Id: I614a049523c526b7fcd12fffdf53a3e4723623e4
2011-09-12 16:13:20 -07:00
Jeff Sharkey
d1a5951ed9 Poll UID stats during iface changes, enforce idx.
When ifaces change, poll UID stats without persisting, since they
depend on knowing active iface to store correctly.  Log dropped UID
stats when iface is unknown.  Switch to using flags when calling
performPoll().

Enforce that "idx" values are consistent from xt_qtaguid.  Transition
to using Log.wtf() for important checks, mostly around file I/O,
kernel stats parsing, and kernel module control.  Increase stats
persist threshold to 2MB to reduce churn.

Bug: 5269476, 5270106
Change-Id: I721215bfb65127f95775c71cf135e907cd567e92
2011-09-07 18:06:30 -07:00
Jeff Sharkey
adbe75aaab Merge "Selectively add stats based on iface active state." 2011-09-01 21:31:15 -07:00
Jeff Sharkey
8e3b6c6eee Selectively add stats based on iface active state.
Only combine /proc/net/dev and xt_qtaguid stats when iface is marked
as active.  When inactive, only return xt_qtaguid stats.  When iface
is unknown to xt_qtaguid, always pass through /proc/net/dev stats.

Bug: 5242730
Change-Id: I469fc6abe45309f794afebca814cbb39e4f13af5
2011-09-01 15:23:38 -07:00
Robert Greenwalt
0114f6e8e9 Create new isNetworkSupported API
Useful for checking if on a wifi-only device.
Similar to asking for NetworkInfo for a network type and checking for
null, though here the intent is explicit.

bug:5087537
Change-Id: Ia3ddd09b6b735b8b3ceb7a347891e015fd96b218
2011-08-31 16:53:12 -07:00
Jeff Sharkey
971cd16561 Introduce immediate CONNECTIVITY_ACTION variant.
New broadcast that is dispatched immediately after connectivity
changes have been handled by ConnectivityService, bypassing any
applicable CONNECTIVITY_CHANGE_DELAY.

Also protect CONNECTIVITY_CHANGE broadcasts, since they should only
be sent by system.

Bug: 5198167
Change-Id: I75f1fb44b21da1879f0ab960bcaa481126d70fde
2011-08-29 16:10:43 -07:00
Jeff Sharkey
0a7279c958 Always splice historical data stats, debug info.
When reading network counters, always splice in xt_qtaguid values
to avoid counting backwards. Test to verify.

Remove verbose logging around global alerts, and add dumpsys debug
info for NMS and MDST. Also fix subtle bug around stats persisting
and dumping.

Bug: 5212893, 5211028
Change-Id: I783e5286637a67ee2dd2b09878198711a926d0cb
2011-08-26 14:19:54 -07:00
Jeff Sharkey
d3b657612d Register for kernel global data usage alerts.
Instead of polling every 15 minutes, register for alerts that trigger
when system-wide traffic passes a threshold.  Still mixed with polling
to persist UID stats, but relaxed to 30 minutes.  Currently watches
for every 512kB.

Make persistence decision separately for network versus UID, and use
total delta bytes when making decision.  Use light bootstrap during
systemReady() instead of heavy poll, which had been force-loading all
UID data unnecessarily.

Bug: 5023631
Change-Id: I04b723d6c4bf872fb1028071122dba66a8e1b576
2011-08-23 18:46:14 -07:00
Jeff Sharkey
805662d8fa Proactively disable data when over policy limit.
Add policy controls to NetworkStateTracker which are combined with
other user preference and internal flags to decide if data connection
should be established.  Better locking around enabled flags.

When data network would be over limit, proactively disable data on
that network.  Enable when policy is snoozed or when cycle resets.

Track and dismiss notifications from now-stale policies.

Bug: 4587023, 5178147
Change-Id: Ibfcc9f73cda7c369209af701b46eddd3d1943f2d
2011-08-23 18:45:44 -07:00
Jeff Sharkey
e612a38faa Merge "Background data notification, API clean up." 2011-08-18 15:01:10 -07:00
Jeff Sharkey
39c01ebcce Background data notification, API clean up.
When restricting background data, show ongoing notification to give
easy access to re-enable. Deprecate getBackgroundDataSetting() API
to always return true, since NetworkInfo.isConnected() is new source
of truth. Handle upgrade path by reading from existing secure value,
and kick one last broadcast when changing value. Remove background
data code from ConnectivityService.

Remove warning alerts, since they push ifaces into restricted list;
should only happen when iface has limit.

Bug: 5163559, 5129421
Change-Id: I0064d9d643656a4d32aaae51d4a58bce49fe295f
2011-08-17 14:12:42 -07:00
repo sync
7c309101fe Merge "P2p enhancements" 2011-08-16 14:50:56 -07:00
Chia-chi Yeh
4a243f5ea1 VPN: reset legacy VPN when resetting IPv4 addresses.
Currently legacy VPN only works on IPv4, and it should always
turn down when the addresses are changed. It assumed that the
interface will be brought down and up, so the event can be
detected via interfaceStatusChanged(). However, the assumption
was incorrect and the event is actually driver-dependent. To
fix this issue, ConnectivityService now tells VPN that the
interface is down when resetting IPv4 addresses.

Change-Id: I76d15e56552d86635c5b274ca980be5da905a6fb
2011-08-16 10:08:33 -07:00
Robert Greenwalt
2d5e58e97e Merge "Flush central DNS cache when things change." 2011-08-16 09:41:54 -07:00
Jeff Sharkey
9c11e89fe2 Foreground/background network stats using sets.
Teach NetworkStats about "counter sets" coming from kernel, and use
them to track usage in foreground/background.  Add AID_NET_BW_ACCT to
system_server so it can control counter sets.

Move to composite key of NetworkIdentitySet, UID, set, and tag when
recording historical usage.  Persisting still clusters by identity,
since that is heaviest object.

Request async stats poll during systemReady() to bootstrap later
delta calculations. Reset kernel counters when UID removed. Update
various tests.

Bug: 5105592, 5146067
Change-Id: Idabec9e3ffcaf212879821515602ecde0a03de8c
2011-08-15 17:30:25 -07:00