Commit Graph

64 Commits

Author SHA1 Message Date
Irfan Sheriff
23eb297c77 Handle hostapd and tether interface changes
The set config will only update hostapd config file right now and we need to restart after that happens.

Also, softap interface is changed to be the regular interface

Bug: 5069108
Change-Id: Ibe80129b58e5339f06f186870bcd8f37569c6db3
2011-07-23 21:06:57 -07:00
JP Abgrall
12b933d0d9 NetworkManagementService: receive bandwidth controller events
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
2011-07-14 18:09:22 -07:00
Jeff Sharkey
62a2c8fed9 Control socket tagging through Settings.Secure.
When NetworkManagementService starts, it determines if qtaguid
should be enabled.  The changes pushes the enabled state to a system
property to control socket tagging.

Change-Id: I5697a990dbaad4b220a2fb055931b18077d07a74
2011-07-13 15:25:11 -07:00
Jeff Sharkey
fd8be3e5e7 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
Jean-Baptiste Queru
d5299ff39a Merge 37dbfcaf
Change-Id: Iae55ecada8dc231c88bb87b32e8bd5e7b6a47bd0
2011-07-07 08:46:09 -07:00
Robert Greenwalt
37dbfcaf83 am 7022db4c: am 2b62c4fb: am 38bb0123: Merge "Added methods to support dns cache per interface"
* commit '7022db4cd2ca3721631595d7379eabb2cc77f6a9':
  Added methods to support dns cache per interface
2011-07-06 07:48:21 -07:00
Jeff Sharkey
350083e36b 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
Jeff Sharkey
b3f19ca36c Enforce background data flag, rules through netd.
Connect up netd penalty box through NMS, and enforce the existing
background data flag by putting all UIDs in penalty box.  Allow
platform applications to have policy applied.  Only dispatch unique
rules to netd, avoiding any repeats.

Bug: 4598463, 4965677
Change-Id: Ibf9beff998ba7a1ea92f5e2f7eeba7b483d4b918
2011-06-30 00:17:46 -07:00
Jeff Sharkey
afb60c36b7 Merge "Push interface quota rules from NetworkPolicyManager to kernel." 2011-06-29 10:53:06 -07:00
Ashish Sharma
50fd36d7c3 Push interface quota rules from NetworkPolicyManager to kernel.
Change-Id: Id2b758f561820b44839f69bf5fbd676cae771fe3
2011-06-29 10:51:06 -07:00
Jesse Wilson
8568db5341 Move socket tagging from libcore.
Change-Id: I7515896936c5bbd212c88e2801b831914219a925
2011-06-28 23:43:51 -07:00
Jeff Sharkey
4414cea139 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
Mike J. Chen
f59c7d0f2a Hookup interface status to other clients
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>
2011-06-24 15:02:30 -07:00
Mike J. Chen
6143f5f739 Revert "Revert "Propagate new link-status-change message to any NetworkManagementService""
This reverts commit 1a7e671902.

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>
2011-06-23 19:24:59 -07:00
Jeff Sharkey
0a9ee1272b Enable bandwidth module from stats service.
During systemReady(), tell netd to enable bandwidth tracking module,
which is used to provide detailed stats and controls.

Change-Id: Iecfd8b17a3b90f5a817d731fbe1c71777681ed6e
2011-06-22 21:44:12 -07:00
Mike Lockwood
463e433f09 Merge "Tethering: Use UsbManager to enable/disable RNDIS" 2011-06-20 16:27:12 -07:00
Jeff Sharkey
d03fd3f004 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
Mike Lockwood
3c2a2f6789 Tethering: Use UsbManager to enable/disable RNDIS
Remove obsolete RNDIS support from NetworkManagementService

This change fixes USB tethering, which broke after the new USB gadget driver
changes went in.

Change-Id: Idd987fb2c39c40e81ebc92e6d8dae9fe77ed4ddc
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-06-19 20:50:46 -04:00
Jeff Sharkey
1b5a2a96f7 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
Irfan Sheriff
f5600618df Fix IP address cleanup on network disconnect
We used to bring down the interface on network disconnect
which would in turn clean up all the IP addresses.

The interface bringup/shutdown is now handled by wpa_supplicant.
Add netd interface for clearing all IP addresses

Bug: 4676254
Change-Id: I7e24c0ab2e4a412b8d61e9c33ce028966913aaf6
2011-06-17 10:03:13 -07:00
Jeff Sharkey
4a97122ebf 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
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
Jean-Baptiste Queru
5c3816f2ff Merge c41aefe1
Change-Id: I70fc4382f832d1a2bded8a5ee7d9b96fac77879b
2011-05-19 07:54:53 -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
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
Mattias Falk
7475c0cea6 Added methods to support dns cache per interface
Added some methods to NetworkManagementService
as part of the work to implement a dns cache
per interface.

Change-Id: I5c7369075dee6b6a4ff67b27f1df7cc124f54c14
2011-04-19 13:42:35 +02:00
Robert Greenwalt
e590373ea7 Start using NetworkUtils.numericToInetAddress.
Generates InetAddresses without risking an accidental dns lookup.  For use with supposedly
numeric-only ip address strings.

Change-Id: I694f3976ce1c6382854706f6557ea88a289add3a
2011-03-02 11:37:32 -08:00
Irfan Sheriff
ec8d23af73 Add WPA support for soft Ap
Bug: 2771935

Change-Id: Ib16c1c3b9aaccbcdf372365d3c0825bdf0680207
2011-02-17 11:28:15 -08:00
Robert Greenwalt
2d2afd13af Stop using netmask in the framework.
bug:2542681
Change-Id: Iaa2b30f7a43de28844d86a4a8a513e86d719608a
2011-02-03 13:20:00 -08:00
Robert Greenwalt
ed12640932 Bind addr and prefixLength together in LinkAddress
bug:2542681
Change-Id: I90200446216d78c676498144946832afe75efdb8
2011-01-28 15:34:55 -08:00
Wink Saville
1a7e671902 Revert "Propagate new link-status-change message to any NetworkManagementService"
This reverts commit 780dfa42aa.
2011-01-09 12:16:38 -08:00
Stan Chesnutt
780dfa42aa 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: I58cabc7b0ce5662243bc6513b2de4818065e6c52
2011-01-07 11:40:33 -08:00
Robert Greenwalt
81d5ad515a Fix Bluetooth-tethering config of interface.
bug:3288692
Change-Id: Id7f1b680392f938000953157716bf9a8f8a66af9
2010-12-16 11:35:40 -08:00
Robert Greenwalt
04808c2940 Fix some IpV4-only code.
InterfaceConfiguration changed to use InetAddress and stop with the string->int->string
conversions.

bug:2542681
Change-Id: I11c4954547333c43bb840fa0469ddde57b0d043b
2010-12-14 14:41:26 -08:00
Dianne Hackborn
dc71b9e4d6 resolved conflicts for merge of 6a3eddb4 to master
Change-Id: I1ca1d100274d4a733ef2bf58b0d5d7217b4f858e
2010-09-30 20:34:34 -07:00
Dianne Hackborn
cef65eeb03 Rub in a little 'ol log-b-gone.
Mmmmmm...  great fresh scent!

Change-Id: I050e70b31b5d4a9c6731f15a4b51a3620a33a78d
2010-09-30 18:27:22 -07:00
Robert Greenwalt
35dcaece11 am 9c38a6dc: am e87ebb08: Merge "Cleanup Netd to prevent getting hung." into gingerbread
Merge commit '9c38a6dc13ba55fccb9c66f347307a1b4ae68105'

* commit '9c38a6dc13ba55fccb9c66f347307a1b4ae68105':
  Cleanup Netd to prevent getting hung.
2010-09-23 09:40:20 -07:00
Robert Greenwalt
e5c3afb292 Cleanup Netd to prevent getting hung.
If the sending of the command fails we should note it and not wait forever
for the response.

We should also not say we're ready until we actually are.

bug:2993205
Change-Id: I380f0312ac4693ad184a526b330fdfa23f6ac558
2010-09-22 16:43:23 -07:00
Kenny Root
4d42bdec82 am 0eec8948: am 305bcbf0: Decrease PackageManagerService wait time for vold
Merge commit '0eec8948f89c5216464d8204cadd69d7a6ec3669'

* commit '0eec8948f89c5216464d8204cadd69d7a6ec3669':
  Decrease PackageManagerService wait time for vold
2010-09-03 09:58:51 -07:00
Kenny Root
305bcbf0c9 Decrease PackageManagerService wait time for vold
Up the blocking queue maximum to twice the number of containers we
allow which should let "asec list" complete without blocking the thread
several times.

Change the threads for the NativeDaemonConnector to vold and netd to be
more descriptive instead of the same name.

Bug: 2501075
Change-Id: I7e7949845a6c70a3d619aec0fa79ceef3c17a4be
2010-09-03 09:33:34 -07:00
Danica Chang
f8d0573200 fixed bug in stringToIpAddr, which was returning the ip address in reverse
Change-Id: Ia1872636fb928a4076fe18ba50c6d1ea85f16dd9
2010-08-11 11:15:05 -07:00
Kenny Root
a80ce06d4c Add more error checking for ndc
In NativeDaemonConnector.doCommand() calls, there was inconsistent error
checking. This change adds error checking for every call and makes it so
that any call to .doCommand() that gets an error code won't cause the
code to hang forever.

Change-Id: I4584953a759a48ad16adfe8ee9e564b5f5796680
2010-06-01 13:29:04 -07:00
Irfan Sheriff
7baec0fe4e Fix null pointer exception
Bug: 2718857
Change-Id: I4b04284fd5b3a4881297fe15555e9f1ca91d73cb
2010-05-26 17:16:47 -07:00
Irfan Sheriff
a6e559edb7 Fix escaping of characters
\ and " in SSID and password cause issues
with netd parsing. Fix it.

Bug: 2708960
Change-Id: I278ca21c0bbfd9dc430a2f9ae02828274a0d2376
2010-05-24 14:55:42 -07:00
San Mehat
f0db6e1853 NetworkManagementService: Remove 'maxkbs' parameter from throttle API
Change-Id: I1cfbdac7d06478243931c6acec462da8e257f42f
Signed-off-by: San Mehat <san@google.com>
2010-04-07 15:22:10 -07:00
San Mehat
be23fba286 NetworkManagementService: Combine setInterfaceRx/Tx throttle and add max speed
Change-Id: I1d6816c9754801504a988802118a2167e0eb8690
Signed-off-by: San Mehat <san@google.com>
2010-04-02 11:50:27 -07:00
San Mehat
91cac64cd0 NetworkManagementService: Add interface counters & throttle API
Change-Id: I4976549cdbb027ba7859335e69bf866e738961c9
Signed-off-by: San Mehat <san@google.com>
2010-04-01 08:34:20 -07:00
Robert Greenwalt
bfb7bfa538 Update Framework to support multiple dhpc ranges
Previously we only supported a single range - this was inadequate for
multiple interfaces.  Adding a second range so we can support
both usb and wifi tethering.

Also moving out of the zero-conf range as our dhcp client won't
accept ip addrs in that range (no nexus to nexus wifi action).

bug: 2537963
bug: 2533491
bug: 2538303
Change-Id: I600b421343c28c2f9839ed2076122ae3d0ff5d3d
2010-03-25 14:46:13 -07:00
Irfan Sheriff
723f109729 Allow space in SSID
Bug: 2530930
Change-Id: Iaa6c44014d889ad0d023148b091fc01c22524bf3
2010-03-19 15:55:58 -07:00
Irfan Sheriff
c2f54c267b Clean up changing AP configuration
Bug: 2527293
Change-Id: I35e82e24e27349e2966f88189ebca4246ad1a354
2010-03-18 16:02:56 -07:00