summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/connectivity/Tethering.java
AgeCommit message (Collapse)Author
2013-12-19Move some system services to separate directoriesAmith Yamasani
Refactored the directory structure so that services can be optionally excluded. This is step 1. Will be followed by another change that makes it possible to remove services from the build. Change-Id: Ideacedfd34b5e213217ad3ff4ebb21c4a8e73f85
2013-11-25Use BaseNetworkObserver in Tethering.Lorenzo Colitti
Tethering currently inherits from the AIDL interface INetworkManagementEventObserver, so it has to provide no-op implementations of all the interface's methods. Inherit from BaseNetworkObserver and get rid of the no-ops. [Cherry-pick of f4e90eac87bc31611ddd80c46fc924d35ce66c1c] Bug: 9180552 Change-Id: I74859b0d77951005651aaaa418185857e40eeedb
2013-09-10Request all tethering interfaces, fix corruption.Jeff Sharkey
netd now tracks statistics for tethered interfaces across tethering sessions, so switch to asking for all tethering stats. (Currently we're double-counting all tethering data, ever since it started tracking across sessions.) Also catch OOME to handle corrupt stats files, which we then dump to DropBox and then start over. Bug: 5868832, 9796109 Change-Id: I2eb2a1bf01b993dd198597d770fe0e022466c6b9
2013-08-20Notify IP address changes to interface observers.Lorenzo Colitti
1. Add addressUpdated and addressRemoved methods to INetworkManagementEventObserver. (The -Updated method is not called -Added because it gets called for both adds and changes.) Update all its callers in the tree. 2. Make NetworkManagementService parse IP address notifications from NetlinkHandler and call the address{Removed,Updated} on its observers. Bug: 10232006 Change-Id: Ieb185dbba052bdbff03caafc0cf5397a7f04dc6d
2013-07-19resolved conflicts for merge of f9774dc7 to masterRobert Greenwalt
Change-Id: Ia9509ab6897e27da8bf4fc61a4140f2f93acb80f
2013-07-18Make CS.isTetheringSupported dynamicRobert Greenwalt
It used to be set at boot, but that was too quick to pick up carrier specific resources. With this change even if you switch sims subequent checks get the new values. bug:9865616 Change-Id: I8c270c6b02fc6bdd3c3d76ceea58172df25e058d
2013-05-02Start combining threads in system process.Dianne Hackborn
This introduces four generic thread that services can use in the system process: - Background: part of the framework for all processes, for work that is purely background (no timing constraint). - UI: for time-critical display of UI. - Foreground: normal foreground work. - IO: performing IO operations. I went through and moved services into these threads in the places I felt relatively comfortable about understanding what they are doing. There are still a bunch more we need to look at -- lots of networking stuff left, 3 or so different native daemon connectors which I didn't know how much would block, audio stuff, etc. Also updated Watchdog to be aware of and check these new threads, with a new API for other threads to also participate in this checking. Change-Id: Ie2f11061cebde5f018d7383b3a910fbbd11d5e11
2013-03-15Framework changes for 464xlat.Lorenzo Colitti
1. Add a Nat464Xlat service that ConnectivityService can use to start and stop clat. When clat is started, the service waits for the clat interface to come up and then calls ConnectivityService to add the appropriate routes. 2. Make ConnectivityService start clat when an IPv6-only mobile interface is connected. We only support clat on mobile for now. 3. Make tethering use the interface that has the IPv4 default route insted of using the base interface of the LinkProperties. This allows us to tether to a stacked interface, which is needed for tethering with 464xlat. Bug: 8276725 Change-Id: I24480af69ee280f504399062638af0836a56268e
2012-10-04Properly cancel Tether notification.Robert Greenwalt
When we add a second type of tethering we unify the notifications into a single generic type. This is done by canceling the first and replacing it, but this flow was improperly canceling, so you could end up with orphaned tethering icons. bug:7283605 Change-Id: I1d136f51592b4326d48578cf67b69122e45d4984
2012-09-25Update references to migrated global settings.Jeff Brown
Fixed one setting that was migrated but not marked deprecated. Removed a hidden setting that is no longer used by the new power manager service. Bug: 7231172 Change-Id: I332f020f876a18d519a1a20598a172f1c98036f7
2012-09-24Fix issue #7214090: Need to be able to post notifications to all usersDianne Hackborn
Also fix a bunch of system services that should be doing this. And while doing that, found I needed to fix PendingIntent to evaluate USER_CURRENT at the point of sending, not creation. Note that this may end up with us having some notification shown to non-primary users that lead to settings UI that should only be for the primary user (such as the vpn notification). I'm not sure what to do about this, maybe we need a different UI to come up there or something, but showing the actual notification for those users at least seems less broken than not telling them at all. Change-Id: Iffc51e2d7c847e3d05064d292ab93937646a1ab7
2012-08-30Improve multi-user broadcasts.Dianne Hackborn
You can now use ALL and CURRENT when sending broadcasts, to specify where the broadcast goes. Sticky broadcasts are now correctly separated per user, and registered receivers are filtered based on the requested target user. New Context APIs for more kinds of sending broadcasts as users. Updating a bunch of system code that sends broadcasts to explicitly specify which user the broadcast goes to. Made a single version of the code for interpreting the requested target user ID that all entries to activity manager (start activity, send broadcast, start service) use. Change-Id: Ie29f02dd5242ef8c8fa56c54593a315cd2574e1c
2012-07-17Network data activity change intent for network interfaces.Haoyu Bai
The activity notification is received from netd, an intent DATA_ACTIVITY_CHANGE is then raised for other part of the system to consume. Change-Id: Idfcc4763c51c5b314c57f546c12557082f06bebf
2012-07-11Merge commit '1b003ef0' into mitWink Saville
* commit '1b003ef0': Create telephony-common and mms-common Change-Id: Ie8876541dbe7f4c933cf7d69910dd204538bc975
2012-07-11Create telephony-common and mms-commonWink Saville
These have been created to reduce the size and complexity of frameworks/base. mms-common was created by moving all of frameworks/base/core/java/com/google/android/mms to: frameworks/opt/mms telephony-common was created by moving some of frameworks/base/telephony to: frameworks/opt/telephony Change-Id: If6cb3c6ff952767fc10210f923dc0e4b343cd4ad
2012-06-14Make tethering ignore bad inputsRobert Greenwalt
Tethering was re-evaluating everything on any connectivity change. This was causing problems when mobile data was not available as each re-eval was again requesting a connection which would fail and loop. Ignore FAILED states to break this cycle in a minimal change. bug:6668233 Change-Id: Ia1dfc6abff1fe464e9501b50185cdb8d0fbb7ff6
2012-05-11Add logging for Tethering.Robert Greenwalt
Hard to repro bug doesn't have enough info in the logs to understand. bug:6469121 Change-Id: I31734f4e891e9b23197f2d5adb931e3891393cdd
2012-02-29Don't forget to turn off mobile_dunRobert Greenwalt
When we find a higher priority match for tethering traffic we should turn off whatever we were trying before. bug:6083611 Change-Id: I06ee41336df107353bf1a979150345e461574a48
2011-12-20Filter our v6 address from tethering dns.Robert Greenwalt
Don't support IPv6 yet, and the tools crash when they see one, so filter them out. bug:5763980 Change-Id: Ie9a4445a3c72df3f7ab4320c507ebc8e8cd440ff
2011-12-09Use the carrier-given dns addrs for tethering.Robert Greenwalt
This fixes a complaint from carriers (that we used 8.8.8.8), but also fixes the case where there is only room for one live radio connection: the secondary connection (tethering) doesn't have a default route to prevent on-device traffic from slipping out on the tethering connection, but tethered dns is proxied through dnsmasq, so it is appearing as on-device traffic and is unroutable. By switching to the carrier-indicated dns servers we can use the host-routes already set for those and kill two bugs with one fix. bug:5525764 bug:3045311 Change-Id: Ib1ccea81e0c0ed2d1462dc9721c2647124a790da
2011-11-29Clean up InterfaceConfiguration flags.Jeff Sharkey
Offer modifier methods for interface flags instead of mutating directly, and remove square brackets. Change-Id: I4cce719dccedfb3f0e8448c111e65b93c0008cbb
2011-11-11Tone down Tethering logs.Robert Greenwalt
bug:5601582 Change-Id: I66c0a5a06a2c13a7cf93ea264d156b37df23745f
2011-11-07Make upstream tether list threadsafeRobert Greenwalt
Outsiders asking for this list may cause the list to change on another thread. Fixing general synchronization issues. bug:5531630 Change-Id: I7a3ee0bba3db40f45bcb0159491942fa4cf38c37
2011-11-04Start using IP tool for advanced routing.Robert Greenwalt
bug:5495862 bug:5396842 Change-Id: I5e31b352b14a4dc746cacce4d61cf8d9ad7382a0
2011-11-02Ignore errors when untetheringRobert Greenwalt
Sometimes the interface is removed before we can untether leading to errors when cleanup up various rules (iptables). Do as much as we can and then let a re-tether result in error if needed. bug:5536516 Change-Id: Ib1d064ecc8e9022566f9b0e4678b33144906971c
2011-10-21Fix Tethering settings.Robert Greenwalt
Two issues. A mcc/mnc-driven overlay means that the config at boot may not be the config we wish to use - the sim card is read later which may switch the config. Changed to read the configuration each time rather than once at boot. Second, the secure-setting override was always trumping the resource config as we weren't discriminating between a not-set default and a real setting. This meant the config could never make DUN-required. bug:5495862 Change-Id: Icd4e90ac1d32bbb704c0ff9cc69e954fb0a0b58c
2011-09-22Watch network subtype, tethering teardown, empty.Jeff Sharkey
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-21Reduce connectivity loggingWink Saville
Change-Id: I5d45b8fbcd01e42df7f2b1cf02fb5b226128abb8
2011-09-16Collect and persist tethering stats.Jeff Sharkey
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-07-28Stop sending tethering broadcasts during boot.Robert Greenwalt
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-27Fix USB tethering againMike Lockwood
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-23Merge "Handle hostapd and tether interface changes"Irfan Sheriff
2011-07-23Handle hostapd and tether interface changesIrfan Sheriff
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-23Fix USB tetheringMike Lockwood
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-14NetworkManagementService: receive bandwidth controller eventsJP Abgrall
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-11Fix wifi tethering.Robert Greenwalt
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-06-27am 7eff4bb3: am f49e4d3f: Merge "Temporary re-enabling iface name change ↵Wink Saville
handling on HO" into honeycomb-LTE * commit '7eff4bb3f9c0cf0335dd1b2769bcb352b137dbaa': Temporary re-enabling iface name change handling on HO
2011-06-24Hookup interface status to other clientsMike J. Chen
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-23Revert "Revert "Propagate new link-status-change message to any ↵Mike J. Chen
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-23Temporary re-enabling iface name change handling on HOKazuhiro Ondo
Temporary accept interface name change in ConnectivityService. See bug/4455071. Bug: 4903011 Change-Id: I7f06c2ca83535b981f047cb671e08550aed7df1a
2011-06-22Merge "resolved conflicts for merge of 7a652bc8 to master"Robert Greenwalt
2011-06-22resolved conflicts for merge of 7a652bc8 to masterRobert Greenwalt
Change-Id: Id0a41cae36f5a3b30f2fe8a202c934153b9cd03f
2011-06-22Combine UsbManager.setPrimaryFunction and setDefaultFunctionMike Lockwood
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-20Fix tethering upstream determination.Robert Greenwalt
Used to use iface names, but on mobile ifaces are multipurpose. Refined to use ConnectivityService types. bug:4530116 Change-Id: Iaa632d5f540d27ffff683bd7d94f8004bf422e71
2011-06-19Tethering: Use UsbManager to enable/disable RNDISMike Lockwood
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-07Merge "Do not register the callbacks in the constructor."Chia-chi Yeh
2011-06-06am 51704fc9: am cecb710a: am 94260caf: Allow control over search order for ↵TK MUN
tethering upstream interface selection * commit '51704fc9c2f42e72a86f580c3e2aa977e8b6b006': Allow control over search order for tethering upstream interface selection
2011-06-06am cecb710a: am 94260caf: Allow control over search order for tethering ↵TK MUN
upstream interface selection * commit 'cecb710a6de249a3847da2f07464a1aecf9459ac': Allow control over search order for tethering upstream interface selection
2011-05-25Allow control over search order for tethering upstream interface selectionTK MUN
Change-Id: If02c9b2bb61b68ebafafadc23ba17a332bc8004f Signed-off-by: TK MUN <tk.mun@samsung.com>
2011-05-23Do not register the callbacks in the constructor.Chia-chi Yeh
Change-Id: Ic7509c35cfb17b022a2af3cc14170942d6510e2d