Commit Graph

390 Commits

Author SHA1 Message Date
Robert Greenwalt
c4920a555d Fix build
Re-finalizing some classes.  The api/current.txt was updated separately but the change
that made them final got skipped.  Also had same issue for some @hide's that were removed.

Change-Id: I423bb7b3029ee03425a3c446bda51ab8191887c1
2014-06-12 16:24:38 -07:00
Robert Greenwalt
d17ae25aea Merge "Make IpPrefix final." 2014-06-11 21:23:31 +00:00
Robert Greenwalt
2f6c9155a4 am f7c964fa: Merge "Fix Build" into lmp-preview-dev
* commit 'f7c964fa06257d6db1b894bfbe905ca125c755c8':
  Fix Build
2014-06-12 19:57:23 +00:00
Robert Greenwalt
4998e952f8 Make IpPrefix final.
Couldn't resolve a merge conflict, so skipped and make the change this way.

Change-Id: Ib043f660fca2090f0d12a5a707e5e1ad28f76adb
2014-06-12 12:57:19 -07:00
Robert Greenwalt
795563325d am 9c6d406e: Fix build breakage.
* commit '9c6d406eb7ab0fce40fb7cd1257714a29d06774c':
  Fix build breakage.
2014-06-12 19:57:11 +00:00
Robert Greenwalt
bb0ec47862 am 558aeb90: Merge "Make NetworkCapabilities publicly immutable." into lmp-preview-dev
* commit '558aeb901144fac460575402e38fc8baa2da83eb':
  Make NetworkCapabilities publicly immutable.
2014-06-12 18:49:07 +00:00
Robert Greenwalt
b1f76f229c Fix Build
Change-Id: Iebbce8eaf21b3d2ba01ec720812d38018b13529e
2014-06-11 18:36:36 -07:00
Robert Greenwalt
20091e092e Fix build breakage.
Change-Id: Ideb32704ce5dc37ef36b05609f88da2aa55b3a00
2014-06-11 18:06:55 -07:00
Robert Greenwalt
bfd1f4c206 Make NetworkCapabilities publicly immutable.
Applying API council comments.

bug: 15142362

(cherry picked from commit Ie0bde68b72656a676d90c0343b9756fe9268d8d6)
Change-Id: Ie0bde68b72656a676d90c0343b9756fe9268d8d6
2014-06-11 23:29:39 +00:00
Sreeram Ramachandran
96151d642e Fix wifi connectivity issues.
http://ag/480881 changed RouteInfo.getDestination() to return an IpPrefix
instead of a LinkAddress. This makes the equals() comparison always fail.

So, when ConnectivityService.updateRoutes() is given identical routes, instead
of realizing that there's no diff, it would consider them different, and thus
add and remove the same route. The add would fail, since the route already
existed in netd, but the remove would succeed, leaving the system with no routes
and thus no connectivity.

Bug: 15564210
Change-Id: I2003b0fcb809cc20837dc489c58af37891ca4556
2014-06-11 15:56:51 -07:00
Robert Greenwalt
08bbe1fd33 Merge "Fix wifi connectivity issues." into lmp-preview-dev 2014-06-11 21:23:31 +00:00
Sreeram Ramachandran
0a6e648504 Fix wifi connectivity issues.
http://ag/480881 changed RouteInfo.getDestination() to return an IpPrefix
instead of a LinkAddress. This makes the equals() comparison always fail.

So, when ConnectivityService.updateRoutes() is given identical routes, instead
of realizing that there's no diff, it would consider them different, and thus
add and remove the same route. The add would fail, since the route already
existed in netd, but the remove would succeed, leaving the system with no routes
and thus no connectivity.

Bug: 15564210
Change-Id: I2003b0fcb809cc20837dc489c58af37891ca4556
2014-06-11 23:02:59 +00:00
Robert Greenwalt
d579b350e2 Merge "Fix public API of LinkProperties." into lmp-preview-dev 2014-06-10 22:18:15 +00:00
Robert Greenwalt
87afb9411c Fix public API of LinkProperties.
bug:15142362
(cherry picked from commit 51d898fd0223a4b7c728980ab987dd985c02df5f)
Change-Id: I1457111da7d3bd09998f7e010febb8bb4c45c8bc
2014-06-10 15:42:19 -07:00
Paul Jensen
c4c6498fcc Apply API review to android.net.Network:
- socketFactory() renamed to getSocketFactory()
- Make sure bindProcess() documentation points developers to getSocketFactory() as the preferred approach
- Move bindProcess() and unbindProcess() to ConnectivityManager.setProcessBoundNetwork() -- passing null clears it.
- Move getProcessBoundNetwork() to ConnectivityManager.getProcessBoundNetwork().

Bug:15142362
Bug:13885501

Change-Id: Ia55c59d52e1ec8bf10dd0d9d037bd04c0998bc71
(cherry picked from commit 5ca1e6675bf4182b6e9ca76a7696bf2e38e96c4f)
2014-06-10 22:26:11 +00:00
Robert Greenwalt
c5dd50b4c4 Merge "Minor changes to the LinkAddress API docs." into lmp-preview-dev 2014-06-10 22:12:51 +00:00
Robert Greenwalt
a7918cc239 Merge "Add a new IpPrefix class and use it in RouteInfo." into lmp-preview-dev 2014-06-11 23:10:23 +00:00
Sreeram Ramachandran
aaaf7bab7f Add a new IpPrefix class and use it in RouteInfo.
This change uses IpPrefix only in the public API and continues
to use LinkAddress for everything else. It does not change the
callers to use the new APIs, with the exception of changing
all current uses of getDestination to getDestinationLinkAddress
to make room for the new getDestination method that returns an
IpPrefix.

Based on Sreeram's earlier change:
https://googleplex-android-review.git.corp.google.com/#/c/477874/
but a bit simplified and with a bit more documentation.

Bug: 15142362
Bug: 13885501
Change-Id: Ib4cd96b22cbff4ea31bb26a7853989f50da8de4e
(cherry picked from commit 7d3b4b9a3d4de9673119632da0ebd583e50126f7)
2014-06-11 16:32:21 -07:00
Lorenzo Colitti
8e43314ae0 Minor changes to the LinkAddress API docs.
1. Rename getNetworkPrefixLength to getPrefixLength. Update all
   callers in frameworks/base and add a shim method and a TODO
   for the rest.
2. @hide isSameAddressAs. It doesn't add much, and it's just
   one-liner that callers can implement if they want.
3. Fix the alignment of the initial paragraph (<ul> should have
   been </ul>).
4. Remove the documentation that talks about creating
   LinkAddresses, since there's no public API for creating them.

With these changes I think LinkAddress is fine as a public API.

Bug: 15142362
Change-Id: Iaf3b1db577745bb68a9e1dd7f96d666dd3f3ec7c
(cherry picked from commit 9ab53650cfcd91a2a151b44b3fd1381841f76269)
2014-06-11 18:52:19 +00:00
Lorenzo Colitti
b0116bf5bf Minor changes to the LinkAddress API docs.
1. Rename getNetworkPrefixLength to getPrefixLength. Update all
   callers in frameworks/base and add a shim method and a TODO
   for the rest.
2. @hide isSameAddressAs. It doesn't add much, and it's just
   one-liner that callers can implement if they want.
3. Fix the alignment of the initial paragraph (<ul> should have
   been </ul>).
4. Remove the documentation that talks about creating
   LinkAddresses, since there's no public API for creating them.

With these changes I think LinkAddress is fine as a public API.

Bug: 15142362
Change-Id: Iaf3b1db577745bb68a9e1dd7f96d666dd3f3ec7c
2014-06-10 14:46:39 -07:00
Sreeram Ramachandran
887d7b1d5a Add a new IpPrefix class and use it in RouteInfo.
This change uses IpPrefix only in the public API and continues
to use LinkAddress for everything else. It does not change the
callers to use the new APIs, with the exception of changing
all current uses of getDestination to getDestinationLinkAddress
to make room for the new getDestination method that returns an
IpPrefix.

Based on Sreeram's earlier change:
https://googleplex-android-review.git.corp.google.com/#/c/477874/
but a bit simplified and with a bit more documentation.

Bug: 15142362
Bug: 13885501
Change-Id: Ib4cd96b22cbff4ea31bb26a7853989f50da8de4e
2014-06-10 14:30:15 -07:00
vandwalle
b112882ab4 Merge "remember and report network score" 2014-06-09 22:30:26 +00:00
vandwalle
fc2e61014a remember and report network score
Change-Id: Iccb2ec603bc9c0d3cf1976d0cc3f343cb1096494
2014-06-09 14:50:47 -07:00
Robert Greenwalt
dc69ebdf94 Merge "Apply API review to android.net.Network:" 2014-06-08 23:41:27 +00:00
Robert Greenwalt
69aceaf7f2 Fix public API of LinkProperties.
bug:15142362
Change-Id: I1457111da7d3bd09998f7e010febb8bb4c45c8bc
2014-06-08 12:54:23 -07:00
Paul Jensen
8cdda64b9c Apply API review to android.net.Network:
- socketFactory() renamed to getSocketFactory()
- Make sure bindProcess() documentation points developers to getSocketFactory() as the preferred approach
- Move bindProcess() and unbindProcess() to ConnectivityManager.setProcessBoundNetwork() -- passing null clears it.
- Move getProcessBoundNetwork() to ConnectivityManager.getProcessBoundNetwork().

Bug:15142362
Bug:13885501

Change-Id: Ia55c59d52e1ec8bf10dd0d9d037bd04c0998bc71
2014-06-08 12:09:18 -07:00
Robert Greenwalt
4a52c697d2 Fix the marking of restricted network requests
Need to realized that the NOT_RESTRICTED bit is set by
default, so if looking at what bits are set to decide if
we want NOT_RESTRICTED cleared, we need to ignore the
bit itself.

bug:15456019

Change-Id: Iecae598f47ec7306d475e2262bb1c452ddf0fc75
2014-06-05 23:59:48 +00:00
Lorenzo Colitti
2606df8790 Call a network restricted only if all capabilities are restricted
When guessing whether a network is restricted or not (e.g., when
constructing a NetworkCapabilities object from an APN type, or
when constructing a request using startUsingNetworkFeature),
only assume the network is restricted if all the capabilities it
provides are typically provided by restricted networks (e.g.,
IMS, FOTA, etc.).

Previous code would conclude a network was restricted even if it
supported one "restricted" capability, so for example an APN
that provides both Internet connectivity and FOTA was marked as
restricted. This caused it to become ineligible to provide the
default Internet connection, because that must be unrestricted.

Also expand the list of restricted APN types a bit.

Bug: 15417453
Change-Id: I8c385f2cc83c695449dc8cf943d918321716fe58
2014-06-04 20:04:38 +09:00
Lorenzo Colitti
21c178d0a6 Make requests for restricted networks not require unrestricted access.
Currently, calling startUsingNetworkFeature for a restricted APN
type (e.g., IMS or FOTA) will create a request that requires
NET_CAPABILITY_NOT_RESTRICTED. Because these APNs are restricted,
when we bring them up we conclude that it does not match the
unrestricted requirement, and we tear them down.

1. Clear the NET_CAPABILITY_NOT_RESTRICTED capability when
   creating requests in startUsingNetworkFeature.
2. Refactor the code to a common function so this cannot happen
   again.

Bug: 15191336
Change-Id: Id1ec79c58ff79b1a83457ffaecc57d50b61ed4e4
2014-06-04 12:20:06 +09:00
Robert Greenwalt
802c11080e Fix Legacy NetworkInfo API
Make the connectivity changed broadcasts send correct NetworkInfos.
Also update the results of getNetwork.

bug:15290306
bug:15191336
bug:14993207
Change-Id: Ie99ad25f3ebb90d18348e7013761b139e7481866
(cherry picked from commit 16fe1c18289de200d2249e51db8c0986619f487b)
2014-06-03 14:00:56 +00:00
Robert Greenwalt
06c734e52e Refactor NetworkFactory.
Make NetworkFactory a concrete class and divide responsibilites between it and NetworkAgent.
Factory will track requests and by default give a single connect/disconnect api for ease
of use.  Then NetworkAgent is created and destroyed as needed with very simple logic.

Change-Id: I401c14a6e5466f2fc63b04219b97ff85bb9af291
(cherry picked from commit 9a17b9c5a256cb4bb14821c5ee89b03b99c045e8)
2014-06-03 01:26:48 +00:00
Robert Greenwalt
3dc73e576b Rewrite startUsingNetworkFeature for new API
bug:14993207
Change-Id: I041a80faa07bf3094af13a6c606f3b15aa03f789
(cherry picked from commit 09fe5e618b09965183cf53fba87c39025a19e8d1)
2014-06-02 23:29:20 +00:00
Paul Jensen
c3c5babcb1 Adjust Network's SocketFactory to restrict host name resolution to that Network
bug: 13885501

Change-Id: Iab9a5a2e060fe261f4be9ba974c1a55fb6b9c98b
(cherry picked from commit 92064edf55ee11967d9cc7529125236ee8e469b2)
2014-05-29 19:17:06 +00:00
Paul Jensen
80504dbd74 Implement bind-to-network functionality of android.net.Network.
This is implemented by calling through to netd_client.
Included are functions to bind-to-network-for-process strictly for DNS to
facilitate startUsingNetworkFeature() reimplementation.

bug: 13885501

Change-Id: Ib22c7d02ea81d251bdfeeb0f64a47ce32eefcb1b
(cherry picked from commit dbf76f898f1f57eb74722358087c926d2f529bda)
2014-05-29 18:53:57 +00:00
Lorenzo Colitti
892331dc08 DO NOT MERGE - Support disconnecting while trying to connect.
Currently, once a NetworkAgent has decided to connect, there's
no way to disconnect without first connecting and having
ConnectivityService tear down the connection. This is suboptimal
because it causes the transport to keep retrying even if it knows
that it will not be able to connect.

Instead, allow the transport to abort a connection request that's
in progress, as long as the agent is not yet registered with
ConnectivityService.

Also add locking to evalScores. evalScores should already have
been taking a lock, because it accesses member variables that are
also accessed by the send*methods.

Bug: 15295359
Change-Id: I913c341bdfc50be9c23b632399f53168e754c1c0
(cherry picked from commit 081e99c3ac341734467b65458f94adc160f50d6c)
2014-05-28 09:29:07 +00:00
Robert Greenwalt
0c150c0082 Move dis/enable of mobile data to Telephony
ConnectivityService doesn't do this anymore.

bug:15077247
Change-Id: I3208c91b2c0369b594987f39ca29da7478435513
(cherry picked from commit 53013c87496980b534e447e717a32698fbd4bca0)
2014-05-27 20:28:50 +00:00
Jaewan Kim
6d8dcb76d8 Move IP config from WifiConfiguration to IpConfiguration.
This is so that Ethernet can use it in the future.

Bug: 7606609
Bug: 8687763

Change-Id: I5d1189682b13f1088848809604690648d8d9ecca
2014-05-20 15:24:10 -07:00
Robert Greenwalt
46dcbab0a2 Add NetworkFactory names and unregistration.
Some Factories come and go (Telephony) and so they need to be able to unregister.
Also, debugging is tough when the factories are anonymous, so add names for logging.

Lastly, only send single set of NetworkRequests to a newly registered NetworkFactory
and only send the requests.

Change-Id: I717d63363f25c446f8ecf38d933b1a35d744af6e
2014-05-20 09:03:57 -07:00
Jason Monk
42debe7dd6 Merge "Fix reference to ProxyInfo extra" 2014-05-20 12:59:52 +00:00
Robert Greenwalt
f3017f74a0 Add javadoc and unhide new API
Change-Id: I12e475bbf4000c7acec4ca27b1d3bf8f870cc2cf
2014-05-19 10:34:36 -07:00
Robert Greenwalt
eaa84d5dda Add docs for Linkproperties and unhide it.
Preperation for ConnectivityManager API reveal.

Change-Id: Id2addf424213e796c6077def0b7f30cac9a0f75f
2014-05-19 09:43:36 -07:00
Robert Greenwalt
eeab6a2bdb Merge "Apply Doc fixes to RouteInfo" 2014-05-19 15:53:15 +00:00
Robert Greenwalt
25bcb91c8d Merge "Add docs to Network" 2014-05-19 15:52:05 +00:00
Robert Greenwalt
0eb55c16c4 Add javadoc for NetworkRequest.
Also moved the requestId serial number out of this public class into CS.

Had to leave NetworkRequest hidden for now because the docs refer to things still hidden
in ConnectivityManager.

Change-Id: I14d1fe52d992adf5e4dc197b8f5433e40b0adfe6
2014-05-19 08:17:05 -07:00
Robert Greenwalt
783dc0fef8 Add docs to Network
Still must be hidden until we unhide the new API in ConnectivityManager.

Change-Id: I4749e56777199093cdba9223eb3d721c3174047d
2014-05-19 07:59:16 -07:00
Robert Greenwalt
223a6bd58d Apply Doc fixes to RouteInfo
Change-Id: Ib76df135d5514f7b8baafbbe91fa3d1cdd632f00
2014-05-19 07:27:46 -07:00
Robert Greenwalt
05d3bc2fd5 Update the docs for NetworkCapabilities
Preparing for ConnectivityService API update

Change-Id: I397e375b9254d4271183cf34c4a689deea1e198e
2014-05-18 16:40:16 -07:00
Robert Greenwalt
1aacd72db2 Update RouteInfo docs and make public.
Change-Id: I1a8fe04022ea8291076af166f09112d19114ee16
2014-05-18 12:43:14 -07:00
Robert Greenwalt
7d8949fc2d Update comments for LinkAddress
In preparation for CS api review.

Change-Id: Ib933e905846ebd039d96a523946dd8fdb10f3ff1
2014-05-18 09:39:18 -07:00
Robert Greenwalt
be2d0e890d Merge "Clean up when we switch networks." 2014-05-16 17:16:19 +00:00