Commit Graph

4467 Commits

Author SHA1 Message Date
Chalard Jean
aedde0d17b Merge "Don't refcount TRACK_DEFAULT requests." am: 5be0159188
am: 0f0f42cf2a

Change-Id: Ib3e0e89a9d80546fbf3555cfdf715f2bd8e4ab94
2018-02-19 04:01:17 +00:00
Chalard Jean
0f0f42cf2a Merge "Don't refcount TRACK_DEFAULT requests."
am: 5be0159188

Change-Id: I094ad8f9764f5cd657e2fe98c846710c8d241b64
2018-02-19 03:54:25 +00:00
Chalard Jean
5be0159188 Merge "Don't refcount TRACK_DEFAULT requests." 2018-02-19 02:13:48 +00:00
Chalard Jean
b861cdd0ac Merge "DO NOT MERGE : fix useless import" am: 1da02e25a4 -s ours
am: 2ed0569b88  -s ours

Change-Id: I75fc8e73f448ffee44a28149843c1d08399e255e
2018-02-19 01:57:09 +00:00
Chalard Jean
2ed0569b88 Merge "DO NOT MERGE : fix useless import"
am: 1da02e25a4  -s ours

Change-Id: Ic717c478266a317fab1c618bc2a894e6610ffdd4
2018-02-19 01:51:39 +00:00
Chalard Jean
1da02e25a4 Merge "DO NOT MERGE : fix useless import" 2018-02-18 23:14:42 +00:00
Benedict Wong
6c5785160d Merge "Correct bug in IpSecTransformTest" am: 99e01bc44d
am: 97b59dca81

Change-Id: I990729e8592e70898867fe72a3d628fd7f9fdaf0
2018-02-16 20:43:12 +00:00
Benedict Wong
97b59dca81 Merge "Correct bug in IpSecTransformTest"
am: 99e01bc44d

Change-Id: If99a991052a821f43b8238a47d0d2c7e00362bc3
2018-02-16 20:28:18 +00:00
Benedict Wong
99e01bc44d Merge "Correct bug in IpSecTransformTest" 2018-02-16 18:32:05 +00:00
Chalard Jean
3c4c8cf5cf Don't refcount TRACK_DEFAULT requests.
This has no concrete impact on the behavior of ConnectivityService,
but in principle TRACK_DEFAULT requests should not be counted toward
requests that make a network foreground. It does not have an impact
because only VPNs could be affected by this, and VPNs are always in
the foreground by definition.

Test: runtest frameworks-net
Test: cts
Change-Id: Id2ae6b5c9d542fe168e64ed713b6ec0a04062c82
2018-02-16 17:59:29 +09:00
Chalard Jean
a3e497c580 DO NOT MERGE : fix useless import
This was added to avoid a merge conflict at a sensitive time.
It can (and should) go.

Test: no code change
Change-Id: I11d73e2d988ae61a168aa0f1cc7c2c506f509d30
2018-02-16 17:21:39 +09:00
Hugo Benichi
ede2444697 Merge "Add missing'}' in javadoc of public API method" am: 21c11c37b1
am: e7c45d2c8a

Change-Id: I51ad1f6b8d42f4c791c07d41297f02d3e798ccd9
2018-02-16 07:50:57 +00:00
Hugo Benichi
e7c45d2c8a Merge "Add missing'}' in javadoc of public API method"
am: 21c11c37b1

Change-Id: I3afcd9a3752ff6d158d68ca3ce19272151c1908c
2018-02-16 07:43:08 +00:00
Treehugger Robot
21c11c37b1 Merge "Add missing'}' in javadoc of public API method" 2018-02-16 03:19:35 +00:00
Benedict Wong
f430c89e18 Correct bug in IpSecTransformTest
testCreateTransformsWithSameConfigEqual used assertFalse rather than
assertTrue

Bug: 69385347
Test: Passing on walleye
Change-Id: I8caa26e184e8bfc3e8acc9061d85c22d27ebf448
2018-02-15 18:52:07 -08:00
Chalard Jean
3ea90e3152 Merge changes I3d68dbf8,I6ea524bb,I978d9119 am: bc388ae1a9
am: d6b4143b67

Change-Id: Iebc6a31b975fd7ba429bd9bae89cd9783776d1c3
2018-02-15 13:09:26 +00:00
Chalard Jean
d6b4143b67 Merge changes I3d68dbf8,I6ea524bb,I978d9119
am: bc388ae1a9

Change-Id: I6ffc0a841d0aa8479bb5b6afba49c5130af879da
2018-02-15 12:57:16 +00:00
Chalard Jean
bc388ae1a9 Merge changes I3d68dbf8,I6ea524bb,I978d9119
* changes:
  Deprecate CONNECTIVITY_ACTION.
  Publish FOREGROUND and add NOT_SUSPENDED capabilities.
  Send null UIDs to apps instead of single-uid lists.
2018-02-15 11:25:36 +00:00
Benedict Wong
ba6e5dc1d2 Merge "Copy IpSecConfig when IpSecTransforms are created" am: 2c8456b22e
am: 7d843254b8

Change-Id: I041cd94be9cefc997b95478444661b557d95e3dc
2018-02-14 21:25:08 +00:00
Benedict Wong
7d843254b8 Merge "Copy IpSecConfig when IpSecTransforms are created"
am: 2c8456b22e

Change-Id: I24ac6baa0492a46bf5810bc6bc146d9aaa9eccab
2018-02-14 21:14:19 +00:00
Chalard Jean
ae2424a97b Deprecate CONNECTIVITY_ACTION.
That was its destiny.
Use NetworkCallbacks instead.

Test: runtest frameworks-net, but this is only doc changes
Change-Id: I3d68dbf817de92c66d899a7cc4519c5639e4c049
2018-02-14 15:14:44 +09:00
Chalard Jean
b6a0c6dc07 Publish FOREGROUND and add NOT_SUSPENDED capabilities.
NOT_SUSPENDED and FOREGROUND are capabilities that need to
be public so as to reach feature parity with what information
can be gotten through the use of CONNECTIVITY_ACTION and
synchronous calls to ConnectivityManager. This change makes
them public, and wires up the NOT_SUSPENDED capability.
This deprecates in effect the old onSuspended and onResumed
callbacks, but these have never been public.

This also converts the onAvailable path from a multiple
binder call design to a simpler, single binder call. This
is only for internal convenience

Test: runtest frameworks-net
Test: cts
Test: also manual testing
Change-Id: I6ea524bb361ecef0569ea2f9006c1e516378bc25
2018-02-14 15:14:41 +09:00
Chalard Jean
b70f7cc467 Send null UIDs to apps instead of single-uid lists.
Prior to this change ConnectivityManager used to patch in the UID
of the requesting app inside the NetworkCapabilities sent to it.
The rationale was that the app may not know what other apps may
use the network, so the view it should have of the network should
always say the network only applies to that app.

But this has an unfortunate side effect : apps can't match the
received network against a default NetworkCapabilities. Ostensibly
this only applies to the system because all involved calls are
@hide, but still : system code would get some NetworkCapabilities,
for example using networkCapabilitiesForType, and then try to
match the capabilities of an available network using
satisfiedByNetworkCapabilities. Because the passed network is
declared to only apply to one's own UID and the UIDs of the
NetworkCapabilities are set to null meaning "I need this network
to apply to all UIDs", the answer will be "false".

While this is WAI in a sense, it is very counter-intuitive that
code trying to match a network would be required to patch in its
own UIDs.
There are three ways of fixing this :
1. Require all apps to do the above. It's correct, but it's
   cumbersome and counterintuitive. Multiple places in existing
   code needs to be fixed, Tethering is an example.
2. Write the UIDs of the caller in any NetworkCapabilities object
   that is created. This is not very practical, because it imposes
   the converse requirement on all NetworkAgents, which would then
   have to clear the UIDs before they send the capabilities to
   ConnectivityService. All NetworkAgents need to be fixed.
3. Instead of sending an object with a list of one UID to apps,
   send a null list. The drawback is that the networks nominally
   look to apps like they apply to all apps. I argue this does
   not matter ; what matters is that the UID lists do not leak.
   Clients just see a null list of UIDs (and third party can't
   even access them without using reflection). No other changes
   are required besides this two-line patch.

This patch implements 3. I believe it is the saner approach, with
both the most intuitive behavior and the best backward compatibility
characteristics, as well as the easiest change.

This does not encroach on the future plans to make the actual
UID list available to apps with NETWORK_SETTINGS.

Test: runtest frameworks-net
Change-Id: I978d91197668119e051c24e1d04aafe1644a41cf
2018-02-14 12:47:15 +09:00
Benedict Wong
86e8477175 Copy IpSecConfig when IpSecTransforms are created
This change prevents IpSecTransforms from being inadvertently modified
by changes to the IpSecConfig. Specifically, once the transform is
created, it takes a copy of the config, rather than a reference.

Bug: 69385347
Test: New tests added, and all test passing
Change-Id: I89b8660c175ca20aa70352dcda893434ff7fd42b
2018-02-13 23:23:13 +00:00
Eric Enslen
3a1b08fea1 fix isActiveNetworkMetered with VPNs
am: 6c5fe7befa

Change-Id: I8d59bc23e9153c54e64af59816d11301b490c9eb
2018-02-09 21:26:09 +00:00
Eric Enslen
6c5fe7befa fix isActiveNetworkMetered with VPNs
Bug: 72871435
Test: flashed and verified, also ran runtest framework-net

Change-Id: I69319a7db269489053426bb2d41574180be2d43d
2018-02-08 17:53:13 +00:00
Hugo Benichi
7665a149a1 Add missing'}' in javadoc of public API method
Bug: 73052508
Test: pure documentation change
Change-Id: I92514629da1b000dd3d1165acd8efcdec75b49b9
2018-02-07 21:17:43 +09:00
Jong Wook Kim
5f11e9660f Merge "MacAddress: Use SecureRandom and add a 46 bit randomized MAC generator" am: 68d0525279
am: 5f392b596a

Change-Id: I6dba4e244c660d29f107e471250d39e9caafb17e
2018-02-07 05:32:01 +00:00
Jong Wook Kim
5f392b596a Merge "MacAddress: Use SecureRandom and add a 46 bit randomized MAC generator"
am: 68d0525279

Change-Id: If35e07b78b17329a25cf78adbf3d8244af4a4f81
2018-02-07 05:20:19 +00:00
Jong Wook Kim
68d0525279 Merge "MacAddress: Use SecureRandom and add a 46 bit randomized MAC generator" 2018-02-07 02:06:07 +00:00
Jong Wook Kim
5dca6d1e3d MacAddress: Use SecureRandom and add a 46 bit randomized MAC generator
Use SecureRandom instead of Random since Random is time based and can
increase the chance of generating same MAC address across multiple
devices.

createRandomUnicastAddress should randomize all bits of the address,
except for locally assigned bit and unicast bit. The previous method
that only randomizes NIC and use Google Base OUI is renamed to
createRandomUnicastAddressWithGoogleBase.

Bug: 72450936
Test: runtest frameworks-net
Change-Id: Icda650638c2c1c9fd90d509a87e86347c0e05f2d
2018-02-07 01:28:46 +00:00
Andreas Gampe
f9c4b33b1b Merge "Frameworks: Mark tests" am: 2424af1b77
am: d69d87ea9b

Change-Id: I73c717b99b9660a11141b5392c6993ab9aabf85c
2018-02-06 09:14:05 +00:00
Andreas Gampe
d69d87ea9b Merge "Frameworks: Mark tests"
am: 2424af1b77

Change-Id: I07af71812c623a14bd8df098e9991a331bdecbc2
2018-02-06 09:04:38 +00:00
Treehugger Robot
2424af1b77 Merge "Frameworks: Mark tests" 2018-02-06 06:03:09 +00:00
Andreas Gampe
bcd960712a Frameworks: Mark tests
Add @Ignore and @Test to make Errorprone happy.

Bug: 72076216
Test: m javac-check RUN_ERROR_PRONE=true
Test: atest ConnectivityServiceTest
Test: atest WifiManagerTest
Change-Id: Id2423c545eccaa768203faf86e14d0a558d927cd
2018-01-31 01:04:00 +00:00
nharold
6f06704c3e Merge changes from topic "cherry-pick-cell-keepalive" am: 972b0961b5
am: 0da9c9d5b9

Change-Id: Ib4ba3f739a91ea2700611732f71afec0cc997ae4
2018-01-30 19:52:22 +00:00
nharold
0da9c9d5b9 Merge changes from topic "cherry-pick-cell-keepalive"
am: 972b0961b5

Change-Id: I3001cd2693b2c57643672fd7f370b5cca2890585
2018-01-30 19:41:53 +00:00
nharold
972b0961b5 Merge changes from topic "cherry-pick-cell-keepalive"
* changes:
  Rework KeepalivePacketData for Compatibility with Cell
  Add Constants for NATT Keepalive to RILConstants
  Relocate KeepalivePacketData to frameworks/base
2018-01-30 18:39:07 +00:00
Hugo Benichi
db410b1864 Merge changes I303d1102,I72c9aa43,If13a5284 am: c2023317e1
am: c460b26969

Change-Id: Ida5f28fc0e8e99199ac7129a6e3df0fbe864d90b
2018-01-30 01:47:07 +00:00
Hugo Benichi
c460b26969 Merge changes I303d1102,I72c9aa43,If13a5284
am: c2023317e1

Change-Id: I402de7fe5fc0e9bf56dc42f4c956c511baee78ab
2018-01-30 01:41:23 +00:00
Hugo Benichi
c2023317e1 Merge changes I303d1102,I72c9aa43,If13a5284
* changes:
  Fix default network validation overcounting
  Prevent crash in NetworkManagementServiceTest#shutdown()
  Fix ApfTest
2018-01-30 00:26:31 +00:00
Nathan Harold
bbe7ab8024 Rework KeepalivePacketData for Compatibility with Cell
KeepalivePacketData currently mixes multiple concepts: the
list of parameters that are used to generate a keepalive
packet, the keepalive packet itself, and the parameters that
are needed to send a keepalive packet over an ethernet link.

The KeepalivePacketData is now a parcelable that can be used
generically by any NetworkAgent, regardless of how that Agent
fulfills its duty to initiate and maintain a keepalive session.

Bug: 69063212
Test: verified with SL4A, additional tests pending
Merged-In: I23dc4827ae729583356a8ff0f02e39a2ad2b81f5
Change-Id: I23dc4827ae729583356a8ff0f02e39a2ad2b81f5
(cherry picked from commit 0976351a93)
2018-01-29 11:20:20 -08:00
Nathan Harold
3edb930422 Relocate KeepalivePacketData to frameworks/base
Due to an issue resolving the boot classpath, the
KeepalivePacketData structure cannot be referenced
by frameworks/opt/telephony while it is in services.

-Move KeepalivePacketData to android.net
-Also, relocate IpUtils without changing the package
 name.

Bug: 38350389
Test: compilation
Merged-In: If5fc63e9ad8b9b2d4c2fee47ff4bab2ab190a05a
Change-Id: If5fc63e9ad8b9b2d4c2fee47ff4bab2ab190a05a
(cherry picked from commit d66a0cd656)
2018-01-29 11:19:43 -08:00
Hugo Benichi
5da8769252 Fix default network validation overcounting
When switching from a validated default network to a new validated
default network (typically because of a better score),
DefaultNetworkMetrics would not reset the last validation timestamp.

This would cause the new default network to have a total recorded
validation time overcounted by the validation time of the previous
default network.

The following fix should be applied downstream for consumers of
previously recorded data:

  validation_time = min validation_time, duration_time);

Test: runtest -x frameworks/base/tests/net/../IpConnectivityMetricsTest
Change-Id: I303d11023527c19435f5f5e796a0295ae3f76d9f
2018-01-29 16:07:33 +09:00
Hugo Benichi
14fb2003c2 Prevent crash in NetworkManagementServiceTest#shutdown()
The shutdown method in NetworkManagementServiceTest was trying to close
the local socket on the test side, causing the NativeDaemonConnector
internal to NetworkManagementService to sometime crash due to the
output stream on NetworkManagementService side to throw on pending
reads.

The correct fix would be to shutdown the NativeDaemonConnector
inside NetworkManagementService and implement NetworkManagementService's
shutdown method, however there is no way to cleanly close a
NativeDaemonConnector.

Instead, this patch doesn't do any cleanup of the listening socket, the
test local socket, and its output stream. These objects' resources get
eventually collected by the system when the test process exits.

Test: runtest frameworks-net
Change-Id: I72c9aa43403754b55e9d23bf4f3ba8b7b4a3e10a
2018-01-29 16:01:56 +09:00
Chalard Jean
2b57bd040d Merge "Fix a bug where a NetworkAgent gets repeatedly torn down" am: 20028ab529
am: 626e9681f2

Change-Id: Ifd63fdf47348dc3a1c1871deacc61470784bdbb6
2018-01-25 07:41:44 +00:00
Chalard Jean
626e9681f2 Merge "Fix a bug where a NetworkAgent gets repeatedly torn down"
am: 20028ab529

Change-Id: Ic37c9f60448b10c861a78848bed18ebd4e0ad910
2018-01-25 07:33:35 +00:00
Chalard Jean
20028ab529 Merge "Fix a bug where a NetworkAgent gets repeatedly torn down" 2018-01-25 05:37:21 +00:00
Chalard Jean
7fc5aa063b Fix a bug where a NetworkAgent gets repeatedly torn down
mUids is not marshalled correctly when null so if the
NetworkAgent runs in another process and is not a VPN then
the system will see its allowed Uids as being the empty
list (= nobody can use this network) instead of a null
list (= everybody can use this network). This breaks
emulator networking.

Bug: 72436966
Test: runtests frameworks-net
Test: also manual testing, this does fix emulator networking
      and seems not to break phone networking
Change-Id: Id2bbf3808e80b19cd055c832c11cf72372710942
2018-01-25 04:51:44 +00:00
Benedict Wong
0a64c3711a Merge "Add tunnel-mode calls to netd in IpSecService" am: 475fe28c50
am: 130409d40b

Change-Id: I8a3d16c8e58ad1c09d967943abe1c729fe37636a
2018-01-24 19:56:24 +00:00