Commit Graph

102 Commits

Author SHA1 Message Date
Lorenzo Colitti
5c7daac2e3 Notify IP address changes to interface observers.
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-08-20 21:29:05 +09:00
Robert Greenwalt
bfc7634b36 resolved conflicts for merge of f9774dc7 to master
Change-Id: Ia9509ab6897e27da8bf4fc61a4140f2f93acb80f
2013-07-19 14:30:49 -07:00
Robert Greenwalt
c13368bfd1 Make CS.isTetheringSupported dynamic
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-07-18 14:24:42 -07:00
Dianne Hackborn
8d044e8bc2 Start combining threads in system process.
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-05-02 17:42:40 -07:00
Lorenzo Colitti
13c9fdefde Framework changes for 464xlat.
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
2013-03-15 14:41:55 +09:00
Robert Greenwalt
3cab6b0f1d Properly cancel Tether notification.
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-10-04 16:44:26 -07:00
Jeff Brown
bf6f6f9de7 Update references to migrated global settings.
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-25 15:27:51 -07:00
Dianne Hackborn
50cdf7c306 Fix issue #7214090: Need to be able to post notifications to all users
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-09-24 10:55:46 -07:00
Dianne Hackborn
5ac72a2959 Improve multi-user broadcasts.
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-08-30 14:33:22 -07:00
Haoyu Bai
db3c8678e5 Network data activity change intent for network interfaces.
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-17 17:13:03 -07:00
Wink Saville
5362f17ff5 Merge commit '1b003ef0' into mit
* commit '1b003ef0':
  Create telephony-common and mms-common

Change-Id: Ie8876541dbe7f4c933cf7d69910dd204538bc975
2012-07-11 18:15:50 -07:00
Wink Saville
a639b311e9 Create telephony-common and mms-common
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-07-11 16:02:08 -07:00
Robert Greenwalt
adfb0d0cf1 Make tethering ignore bad inputs
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-06-14 16:03:44 -07:00
Robert Greenwalt
68ea9b08ef Add logging for Tethering.
Hard to repro bug doesn't have enough info in the logs to understand.

bug:6469121
Change-Id: I31734f4e891e9b23197f2d5adb931e3891393cdd
2012-05-11 13:57:32 -07:00
Robert Greenwalt
c9dac1185d Don't forget to turn off mobile_dun
When we find a higher priority match for tethering traffic we should turn off
whatever we were trying before.

bug:6083611
Change-Id: I06ee41336df107353bf1a979150345e461574a48
2012-02-29 14:02:55 -08:00
Robert Greenwalt
4f74d552d5 Filter our v6 address from tethering dns.
Don't support IPv6 yet, and the tools crash when they see one, so
filter them out.

bug:5763980
Change-Id: Ie9a4445a3c72df3f7ab4320c507ebc8e8cd440ff
2011-12-20 14:47:22 -08:00
Robert Greenwalt
bb4fd0b444 Use the carrier-given dns addrs for tethering.
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-12-09 17:12:03 -08:00
Jeff Sharkey
ddba10622d Clean up InterfaceConfiguration flags.
Offer modifier methods for interface flags instead of mutating
directly, and remove square brackets.

Change-Id: I4cce719dccedfb3f0e8448c111e65b93c0008cbb
2011-11-29 18:37:04 -08:00
Robert Greenwalt
fd1be2bc1e Tone down Tethering logs.
bug:5601582
Change-Id: I66c0a5a06a2c13a7cf93ea264d156b37df23745f
2011-11-11 14:09:45 -08:00
Robert Greenwalt
b445362bd6 Make upstream tether list threadsafe
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-07 14:44:48 -08:00
Robert Greenwalt
3b28e9a3da Start using IP tool for advanced routing.
bug:5495862
bug:5396842
Change-Id: I5e31b352b14a4dc746cacce4d61cf8d9ad7382a0
2011-11-04 09:52:04 -07:00
Robert Greenwalt
731026c2df Ignore errors when untethering
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-11-02 13:53:28 -07:00
Robert Greenwalt
49348e77b6 Fix Tethering settings.
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-10-21 17:01:39 -07:00
Jeff Sharkey
367d15ab1a 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
c9acde9aa6 Reduce connectivity logging
Change-Id: I5d45b8fbcd01e42df7f2b1cf02fb5b226128abb8
2011-09-21 11:05:43 -07:00
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
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
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
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
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
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 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
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
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
TK MUN
51704fc9c2 am cecb710a: am 94260caf: Allow control over search order for tethering upstream interface selection
* commit 'cecb710a6de249a3847da2f07464a1aecf9459ac':
  Allow control over search order for tethering upstream interface selection
2011-06-06 11:51:22 -07:00
TK MUN
94260caf2f Allow control over search order for tethering upstream interface selection
Change-Id: If02c9b2bb61b68ebafafadc23ba17a332bc8004f
Signed-off-by: TK MUN <tk.mun@samsung.com>
2011-05-25 10:32:06 -07:00
Chia-chi Yeh
008ff39b7c Do not register the callbacks in the constructor.
Change-Id: Ic7509c35cfb17b022a2af3cc14170942d6510e2d
2011-05-23 15:08:29 -07:00
Kazuhiro Ondo
8904c3d814 am b22a9fd9: am 01758e81: Linkproperties update via unsol data call state change.
* commit 'b22a9fd9bb32133cbc7dc4fc7752dbf68e52dffe':
  Linkproperties update via unsol data call state change.
2011-05-18 17:48:37 -07:00
Kazuhiro Ondo
01758e81b3 Linkproperties update via unsol data call state change.
Handles the scenario of radio technology handover with IP continuity.
Once RIL/Modem finished a handover operation, an unsol data call state
change will be send up to FW notifying all link propertes changes.
FW will then re-configure the device with new link properties
including iptable used by Tethering.

Change-Id: I05e29f66ac3db8ba4274d3662642607742ba1d12
2011-05-17 20:53:40 -07:00
Chia-chi Yeh
c9338305bf Extract NetworkManagementService out from Tethering to ConnectivityService.
and also some minor refactoring.

Change-Id: I0e74f30ef1b035d9ed37571c512fedc15d05db77
2011-05-11 17:06:07 -07:00