Commit Graph

1438 Commits

Author SHA1 Message Date
Lorenzo Colitti
21970be5de Modify DNS server update methods.
1. Make addDnsServer not add duplicate servers and return a
   boolean value incating whether it changed anything. This is
   consistent with what we do for LinkAddresses and routes.
2. Add a setDnsServers method that sets all the DNS servers to
   the specified collection. This is consistent with what we do
   for LinkAddress.

Bug: 9180552
Change-Id: I5baed09253261b66ea42ae2ea82398118e3ab0ac
2014-06-26 17:04:38 +09:00
Lorenzo Colitti
bf1b00039f Teach LinkProperties whether it's provisioned or not.
In IPv4, a link is provisioned when DHCP succeeds. In IPv6, a
there is no such signal, because addresses and DNS servers can
be notified by the kernel at different times.

Add an isProvisioned method that returns true if we believe that
enough information has configured to use a network. For IPv6,
this requires an IP address, default route, and DNS server. For
IPv4, this requires only an IPv4 address, because we support
static configuration that doesn't have a default route or DNS
server.

To do this we use the existing hasIPv4Address method, rename the
all-but unused hasIPv6Address method to hasGlobalIPv6Address
(which is what we want anyway) and add new hasIPv[46]DefaultRoute
and hasIPv[46]DnsServer methods.

Bug: 9180552
Change-Id: Ib2f5ff8af920f7b6f1edf0e2afaaa0edce9bc72d
2014-06-26 03:23:31 +09:00
Lorenzo Colitti
1b72e05bad Minor changes to RouteInfo.
1. Realize that mDestination can never be null and update the
   code accordingly.
2. Simplify isDefaultRoute.
3. Provide two new hidden utility methods, isIPv4Default() and
   isIPv6Default(), that can be used by LinkProperties to
   to determine if the system has connectivity.
4. Update tests.

Bug: 9180552
Change-Id: I85028d50556c888261d250925962bdedfe08e0c6
2014-06-25 18:22:12 +00:00
Lorenzo Colitti
fa6b26323b Unbreak LinkPropertiesTest.
This was broken by the changes that made addRoute add routes
only if they did not already exist.

Change-Id: I1d227df9223fbecf106efde05b709f320824ee9d
2014-06-25 18:19:47 +00:00
Robert Greenwalt
9c7ce729d2 Clean up and add some Network logging.
Dumps the netid for the Network and adds that to the NetworkAgentInfo.

Change-Id: Id9fbcc55ca55bf1a020f747f0c44902efb1b5f87
2014-06-23 17:40:12 -07:00
Robert Greenwalt
0008d3d566 Merge "Add logging to track down weird ConnectivityManager issue." 2014-06-23 21:44:43 +00:00
Robert Greenwalt
0a7d16f41d am 5aee704d: (-s ours) am a77d0ef4: (-s ours) am 0b572896: (-s ours) Merge "DO NOT MERGE refactor wifi p2p\'s startDhcpServer function"
* commit '5aee704d5324847e7ae9370258dbff7940113147':
  DO NOT MERGE refactor wifi p2p's startDhcpServer function
2014-06-23 22:40:33 +00:00
Robert Greenwalt
ca3c5cfa87 Add logging to track down weird ConnectivityManager issue.
bug:15771399
Change-Id: I0a7150286f94262414005298e6f038f278347a7c
2014-06-23 15:33:40 -07:00
Robert Greenwalt
5aee704d53 am a77d0ef4: (-s ours) am 0b572896: (-s ours) Merge "DO NOT MERGE refactor wifi p2p\'s startDhcpServer function"
* commit 'a77d0ef49e8c4b53e1cd794c0739584914bd6eda':
  DO NOT MERGE refactor wifi p2p's startDhcpServer function
2014-06-23 22:10:37 +00:00
Jianzheng Zhou
cb5b2c0716 DO NOT MERGE refactor wifi p2p's startDhcpServer function
Add getTetheredDhcpRanges() interface and call it before calling
mNwService.startTethering() to update dhcp ranges. This will allow p2p app
to run well concurrently with other tethering app(e.g. usb tethering).

Change-Id: I5e8ffeb5d2d396f48b897cd9396f133e25ecca57
Signed-off-by: Jianzheng Zhou <jianzheng.zhou@freescale.com>
2014-06-23 21:02:45 +00:00
Lorenzo Colitti
dc8139c856 Modify LinkProperties add/remove route functions.
This will allow us to dynamically track routes being added and
removed, similar to what we do for IP addresses.

1. Support removing routes. Since this is a new function, we
   don't need to jump through hoops to support callers passing
   in routes that have no interface, we just fail to match them.
2. Make the addRoute method return a boolean value indicating
   whether anything changed. This is consistent with what we do
   for addresses and is used to decide whether to update the
   rest of the system when an update comes in.

Bug: 9180552
Change-Id: I50648b5f81ec55c88501a7640e119cda2bb540f2
2014-06-17 11:18:53 +09:00
Lorenzo Colitti
2e9b12312c IpPrefix improvements.
1. Allow IpPrefixes to be created from strings. In order to do
   this, factor out the code from LinkAddress which already does
   this to a small utility class in NetworkUtils.
2. Truncate prefixes on creation, fixing a TODO.
3. Add a toString method.
4. Write a unit test.

While I'm at it, make RouteInfoTest pass again, and convert it
to use IpPrefix instead of LinkAddress.

Change-Id: I5f68f8af8f4aedb25afaee00e05369f01e82a70b
2014-06-17 11:18:53 +09:00
Lorenzo Colitti
f3e0e306e9 Assert that RT_SCOPE_* and IFA_F_* are not zero.
If these constants are zero (or, rather, if they're not all
different), the test will fail with more cryptic error messages
whose cause is not obvious. Clearly check for that here.

Bug: 15602893
Change-Id: I7ca4a9c5e3d592fd93fbfa1b50666a1861a0031d
2014-06-13 17:20:20 +09:00
Robert Greenwalt
bd9859f10f Merge "Fix build" 2014-06-12 05:34:42 +00:00
Robert Greenwalt
cccf73a23c 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
5c6dd08386 am 2d0ab42b: Merge "Apply API Council comments to ConnectivityManager" into lmp-preview-dev
* commit '2d0ab42b1420db884d26fd2ef22710b5a887e9a6':
  Apply API Council comments to ConnectivityManager
2014-06-12 22:31:07 +00:00
Robert Greenwalt
09e5cff484 Apply API Council comments to ConnectivityManager
rename isNetworkActive -> isDefaultNetworkActive
rename registerNetworkActiveListener -> registerDefaultNetworkActiveListener
make listenForNetwork/requestNetwork take a NetworkRequest
rename NetworkCallbackListener -> NetworkCallback
rename listenForNetwork -> registerNetworkCallback
rename releaseNetworkRequest -> unregisterNetworkCallback
remove NetworkRequest param from NetworkCallback functions
rename onNetworkCapabilitiesChagned to onCapabilitiesChanged
remove onReleased
change time units in onLosing from Sec -> ms

bug: 15142362
Change-Id: Ibc96e3f461706efe1eafa0d85605249cfd6e9fdd
2014-06-11 23:17:46 -07:00
Robert Greenwalt
a4c6a8502e Fix Build
Change-Id: Iebbce8eaf21b3d2ba01ec720812d38018b13529e
2014-06-11 18:36:36 -07:00
Robert Greenwalt
4caa88119c Fix build breakage.
Change-Id: Ideb32704ce5dc37ef36b05609f88da2aa55b3a00
2014-06-11 18:06:55 -07:00
Robert Greenwalt
5f6393253c Merge "Make IpPrefix final." 2014-06-11 21:23:31 +00:00
Robert Greenwalt
974fbd73ba am f7c964fa: Merge "Fix Build" into lmp-preview-dev
* commit 'f7c964fa06257d6db1b894bfbe905ca125c755c8':
  Fix Build
2014-06-12 19:57:23 +00:00
Robert Greenwalt
60ab3657af 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
6f373a008b am 9c6d406e: Fix build breakage.
* commit '9c6d406eb7ab0fce40fb7cd1257714a29d06774c':
  Fix build breakage.
2014-06-12 19:57:11 +00:00
Robert Greenwalt
e11adb7464 am c7d65d75: Merge "Fix wifi connectivity issues." into lmp-preview-dev
* commit 'c7d65d759be6cd48a7bbaa4f061b4c4f85424b11':
  Fix wifi connectivity issues.
2014-06-12 19:56:55 +00:00
Robert Greenwalt
cf9fce817d am e1f5b5e0: Merge "Minor changes to the LinkAddress API docs." into lmp-preview-dev
* commit 'e1f5b5e0cd5206e01e1c0e2bd282d421d9951960':
  Minor changes to the LinkAddress API docs.
2014-06-12 19:56:45 +00:00
Robert Greenwalt
76386ba02e am 4ad1f0d3: (-s ours) Merge "Add a new IpPrefix class and use it in RouteInfo." into lmp-preview-dev
* commit '4ad1f0d31e4c998aa65344ccb8abb51cf96dd909':
  Add a new IpPrefix class and use it in RouteInfo.
2014-06-12 19:56:39 +00:00
Robert Greenwalt
5c716c26d6 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
ce639b70ab am fe5ca964: (-s ours) Merge "Fix public API of LinkProperties." into lmp-preview-dev
* commit 'fe5ca9646f86e041ed7729ecd0a006428806acf2':
  Fix public API of LinkProperties.
2014-06-12 16:53:43 +00:00
Robert Greenwalt
c34f83b969 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
Robert Greenwalt
f9cc46c65c 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
e25318b66d 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
Sreeram Ramachandran
78ed25af23 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
9b780b84ee Merge "Fix wifi connectivity issues." into lmp-preview-dev 2014-06-11 21:23:31 +00:00
Sreeram Ramachandran
ef041cf5e3 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
0134277a2e am bcf103d0: Merge "Apply API review to android.net.Network:" into lmp-preview-dev
* commit 'bcf103d0ef929669268a76aa72bd90ed9af4d63d':
  Apply API review to android.net.Network:
2014-06-11 17:03:04 +00:00
Paul Jensen
68bb06d966 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
2318dc49cd Merge "Fix public API of LinkProperties." into lmp-preview-dev 2014-06-10 22:18:15 +00:00
Robert Greenwalt
d23b496282 Fix public API of LinkProperties.
bug:15142362
(cherry picked from commit 51d898fd0223a4b7c728980ab987dd985c02df5f)
Change-Id: I1457111da7d3bd09998f7e010febb8bb4c45c8bc
2014-06-10 15:42:19 -07:00
Robert Greenwalt
1b9edb4498 Merge "Minor changes to the LinkAddress API docs." into lmp-preview-dev 2014-06-10 22:12:51 +00:00
Lorenzo Colitti
12d3200cbb 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
48a7da0258 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
8162a5ef8b 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
Amit Mahajan
d032de432e resolved conflicts for merge of 253b06e6 to master
Change-Id: I65585939a57c561064d370be131c0197de0f08c3
2014-06-10 10:47:26 -07:00
vandwalle
e472bf0970 Merge "remember and report network score" 2014-06-09 22:30:26 +00:00
vandwalle
170e6d10e5 remember and report network score
Change-Id: Iccb2ec603bc9c0d3cf1976d0cc3f343cb1096494
2014-06-09 14:50:47 -07:00
Amit Mahajan
253b06e6d1 am c5a19650: am e5a28d34: am 01d0e324: Handle provisioning APN by turning off/on radio.
* commit 'c5a19650525ef4f4154d8a0765e299cd7dbf2ce2':
  Handle provisioning APN by turning off/on radio.
2014-06-09 21:12:43 +00:00
Amit Mahajan
c5a1965052 am e5a28d34: am 01d0e324: Handle provisioning APN by turning off/on radio.
* commit 'e5a28d34f662c469f85590dda28fc02eca12204b':
  Handle provisioning APN by turning off/on radio.
2014-06-09 19:50:09 +00:00
Amit Mahajan
01d0e324fb Handle provisioning APN by turning off/on radio.
The change is specific to AT&T as they want no signaling from device during provisioning.
I've tested following cases:
- expired AT&T SIM to make sure provisioning flow works as expected.
- airplane mode on/off with both active and expired AT&T SIM.
- wifi <-> mobile transitions work okay.
- LTE with Verizon SIM (basic sanity).

bug: 13190133

Change-Id: I215963174ae6000ae71d1dda693f95413f3d6e81
2014-06-09 17:55:27 +00:00
Robert Greenwalt
c9104d4795 Merge "Apply API review to android.net.Network:" 2014-06-08 23:41:27 +00:00
Robert Greenwalt
bbcebb79ae Fix public API of LinkProperties.
bug:15142362
Change-Id: I1457111da7d3bd09998f7e010febb8bb4c45c8bc
2014-06-08 12:54:23 -07:00