108 Commits

Author SHA1 Message Date
Jeff Sharkey
cdd02c5d76 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
Chia-chi Yeh
5317f034ba VPN: stop daemons by closing the control sockets.
As init now uses SIGKILL to stop daemons, performing graceful shutdown
becomes impossible. Here we implement our own solution by asking daemons
to monitor the control socket and terminate when it is closed.

Change-Id: I07a28807173a81b7f95e70f4193e974317acf88a
2011-08-22 13:09:49 -07:00
Chia-chi Yeh
0c074e6843 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
Chia-chi Yeh
199ed6ef89 VPN: introduce VpnService as the base class for user space VPN.
Change-Id: I4793a6eb51b33f669fc6d39e1a16cf5eb9e3d851
2011-08-08 11:15:41 -07:00
Chia-chi Yeh
fcc1b41b66 VPN: move away from the VPN permission.
VpnBuilder will be replaced by VpnService in the next change.

Change-Id: I2dea67a1616b74d17b372f7b214d207f1617198e
2011-08-03 15:52:12 -07:00
Dianne Hackborn
6311d0a079 Clear the bitmap from the canvas in a lot of places.
Change-Id: I6b2071ac7b348c473b9bdd1b972d095aebbb4fb3
2011-08-02 16:37:58 -07:00
Robert Greenwalt
98c79e53c0 Stop sending tethering broadcasts during boot.
Well, actually they do go out, but they won't try to start anybody now
until after boot.

bug:5088272
Change-Id: Iaaf7a1e4b300e0afc3901ecfd225a77084bd0954
2011-07-28 11:51:11 -07:00
Mike Lockwood
485861c409 Fix USB tethering again
The kernel sends an interface down event for usb0 when RNDIS is enabled.
Ignore this and only remove USB interfaces when we receive the
interface removed event.

Change-Id: I1458f259b96c9fab4d3a69a5692e630123fad136
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-07-27 13:54:29 -04:00
Irfan Sheriff
e30c1307fb Merge "Handle hostapd and tether interface changes" 2011-07-23 22:30:36 -07:00
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
Mike Lockwood
5db7af968a Merge "Fix USB tethering" 2011-07-23 19:36:32 -07:00
Mike Lockwood
6c2260b3af Fix USB tethering
The previous approach no longer works with the new USB drivers, since the usb0
interface is no longer enabled by default.
This introduced a chicken & egg problem - usb0 will not be enabled until the
user tries to start tethering, but Settings will not enable the checkbox unless
usb0 is enabled.
To fix this we add an explicit call to start USB tethering in the connectivity manager.
This will enable RNDIS if necessary and then bring up tethering once usb0 is enabled.

Change-Id: Iae1f733366aa6b0dafa66d4c97207794173ef54b
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-07-23 21:57:55 -04:00
Chia-chi Yeh
7ef8611b5f VPN: increase timeout period to 60 seconds for legacy VPN.
Some VPN needs more time than others in order to create the secure tunnel.
For example, L2TP/IPSec PSK on average needs 15 seconds on WiFi. On mobile
connection, variation gets larger, and it sometimes needs more than 30
seconds. This change increases timeout period from 30 to 60 seconds.

Change-Id: I6006fd254a7bc91c22f63d2f3f20ea79ee9b05e2
2011-07-22 15:46:52 -07:00
JP Abgrall
b6055fe747 Merge "NetworkManagementService: receive bandwidth controller events" 2011-07-21 18:44:52 -07:00
Chia-chi Yeh
aa1727fe0c VPN: tear down VPN when the dependent interface is down.
Change-Id: I1eaf8e39ee7aed1f4ecbd4c36c2a81a68ad2f9d1
2011-07-14 19:01:40 -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
Chia-chi Yeh
5779c9c2d9 VPN: close the socket in protectVpn() to avoid leaking descriptors.
Change-Id: Idda0c2ea1770abc490566e894711bcb08f60b354
2011-07-14 16:19:19 -07:00
Chia-chi Yeh
97a61565ea VPN: Hook up the new control protocol and network state.
1. No more End-Of-Arguments.
2. Daemons close the control socket after they are initialized.
3. No more system properties.
4. ip-up-vpn now creates state to pass the configuration.
5. JNI methods are split again for legacy VPN.

Change-Id: I02fafdf01d425c965345ef712b2bd5fdee3a0cab
2011-07-14 15:07:42 -07:00
Robert Greenwalt
7c34f29c8a Fix wifi tethering.
The new link-status netlink monitor is a bit chatty and we were getting race conditions.
The wl0.1 soft-ap interface was getting created, but in the off state.  We would report
it available (link-added always reports it) causing wifi to start tethering, but then
we'd sometimes get a link-status-down notification and a link-status-up, causing wifi
to freak out with these two requests.

The simple fix was to not listen to the new link-status notifications.  This should be
redesigned in the future.
bug:4983942

Change-Id: Ica4f34d8bf2a07fc19b35a1e15283a7f8022165e
2011-07-11 15:24:43 -07:00
Chia-chi Yeh
2e46764a70 VPN: implement status report for legacy VPN.
Change-Id: I81c28dafd9588572df76cbc303b0d6a0f41f9bc6
2011-07-04 03:23:12 -07:00
Chia-chi Yeh
c2b8aa0b4c VPN: rename some variables.
Change-Id: I7f15b5ab30f591e26242fca27af25f578809534c
2011-07-03 18:00:47 -07:00
Chia-chi Yeh
100155a310 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
34e7813e96 VPN: minor refinement.
Change-Id: I2b59cbe8554b6c6f8da48c465252489394f32653
2011-07-03 03:07:07 -07:00
Chia-chi Yeh
3281034c1c VPN: merge JNI methods.
Legacy VPN needs to change routes by itself.

Change-Id: I4cf6639f2b00225810f49704ae05797fc70921d9
2011-07-02 16:16:03 -07:00
Chia-chi Yeh
e9107901ae VPN: give legacy VPN a fake package name.
And add more comments.

Change-Id: I0cbc495fcb2c8dd105e16a841619b3b9bd227eae
2011-07-02 01:48:50 -07:00
Chia-chi Yeh
41d1685a22 VPN: integrate legacy VPN.
Change-Id: I00e77664354c05e0edfcd5fb2e3da2ca434ed521
2011-07-01 02:12:06 -07:00
Chia-chi Yeh
8909b10175 VPN: Use List<String> instead for dnsServers and searchDomains.
Change-Id: I5d72c182ad47f59121a04b68ec6c2d164e2d00a8
2011-07-01 01:14:19 -07:00
Chia-chi Yeh
1f7746b39b VPN: rename service(s) to daemon(s) to reduce confusion.
Change-Id: I9739e63c8e41e8b63d024dc4f17283c76bb4ff97
2011-07-01 00:29:06 -07:00
Chia-chi Yeh
383e052472 VPN: fix the build.
Change-Id: Ibeaa067cf95636e09746d16f402c78c99d7cb681
2011-07-01 00:13:25 -07:00
Chia-chi Yeh
a4b87b5e98 VPN: refactor a little bit for the upcoming integration of legacy VPN.
Change-Id: I0fe0dffe59d8d9c9a0fdd05e07b07aa6c8da0a80
2011-06-30 23:21:55 -07:00
Chia-chi Yeh
f4e3bf892e VPN: refactor few JNI methods for the usage of legacy VPN.
Now default routes are handled in JNI instead of VpnBuilder.

Change-Id: Ib026bba6793b64aae0f8356df3d2aaae489d08b4
2011-06-30 12:41:11 -07:00
Chia-chi Yeh
85a7ce02c8 VPN: add a method to handle requests of legacy VPNs.
The code is working but not complete yet.

Change-Id: Id8c8f137665373ad52c626b9d34e5a2cad028597
2011-06-29 16:05:58 -07:00
Wink Saville
bf731e7f90 am 7eff4bb3: am f49e4d3f: Merge "Temporary re-enabling iface name change handling on HO" into honeycomb-LTE
* commit '7eff4bb3f9c0cf0335dd1b2769bcb352b137dbaa':
  Temporary re-enabling iface name change handling on HO
2011-06-27 14:14:45 -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 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>
2011-06-23 19:24:59 -07:00
Kazuhiro Ondo
1ccb10e25d 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
7af34ab836 Merge "resolved conflicts for merge of 7a652bc8 to master" 2011-06-22 14:41:09 -07:00
Robert Greenwalt
5ff886e531 resolved conflicts for merge of 7a652bc8 to master
Change-Id: Id0a41cae36f5a3b30f2fe8a202c934153b9cd03f
2011-06-22 13:20:14 -07:00
Mike Lockwood
f59717ddb5 Combine UsbManager.setPrimaryFunction and setDefaultFunction
Due to the property trigger on persist.sys.usb.config,
setting the default function also sets the current function.
Now we combine both of these methods into setCurrentFunction, which has
a "makeDefault" option to make the new function the default.

This change should eliminate some problems with setting properties due to
multiple property triggers happening at the same time.

Change-Id: I9851299e9c2ee20475eada1a8104c0d50bf5a9e1
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-06-22 15:19:33 -04:00
Robert Greenwalt
ccf83af101 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
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
Chia-chi Yeh
3f3337a662 VPN: avoid leaking file descriptors.
Change-Id: If70f5af3529d79bddb9d72675cf6eb038ff3ff70
2011-06-17 16:34:32 -07:00
Chia-chi Yeh
7b0b834c3d VPN: move VpnDialogs related methods into VpnConfig.
This might not be the best place for the glue code, but it is
known that choosing VpnBuilder will introduce a dependency
cycle of VpnBuilder, ConnectivityService, and the Vpn class.

Change-Id: I3f03617d1fe1a0b8fb3705c23265676fff51a75c
2011-06-17 14:34:11 -07:00
Chia-chi Yeh
04ba25c418 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
Chia-chi Yeh
f8905fd13d VPN: change some strings in VPN notifications.
Also remove a small piece of dead code.

Change-Id: Idd10f3d72a92228951278bf360d08ba9bede02d2
2011-06-15 11:06:52 -07:00
Chia-chi Yeh
3663227a8b VPN: add MTU support.
Change-Id: Ia2f06ae1fcf065bde7dafd212b84b37a34f1a47e
2011-06-13 15:05:37 -07:00
Chia-chi Yeh
3667369807 VPN: use ParcelFileDescriptor.adoptFd() instead of doing it in JNI.
This removes the dependency of android_util_Binder.h.
This change also removes some redundant zeroing.

Change-Id: Ie9fedd471dfa198f9a3261e03651f945cefbbf61
2011-06-13 14:32:18 -07:00
Chia-chi Yeh
ff3bdca31f 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
Chia-chi Yeh
5bc7c93ca7 Merge "Do not register the callbacks in the constructor." 2011-06-07 18:18:56 -07:00
TK MUN
60a3117838 am 51704fc9: am cecb710a: am 94260caf: Allow control over search order for tethering upstream interface selection
* commit '51704fc9c2f42e72a86f580c3e2aa977e8b6b006':
  Allow control over search order for tethering upstream interface selection
2011-06-06 12:57:24 -07:00