Commit Graph

2985 Commits

Author SHA1 Message Date
Erik Kline
76d2732ad8 Merge "Replace dns_tls with private_dns_mode setting" am: 8cf645c04d
am: f1799116c2

Change-Id: I3e0448c045eb1072d0cd70a163ca355786b21cc4
2017-11-07 06:12:39 +00:00
Erik Kline
4d092238de Replace dns_tls with private_dns_mode setting
Also includes:
    - SettingsLib strings used in PrivateDnsModeDialogPreference
      interaction in the Settings app
    - rename ContentResolver "resolver" in methods working with
      DNS resolvers (too confusing)

Test: as follows
    - built
    - flashed
    - booted
    - runtest frameworks-net
    - no new failures in SettingsBackupTest nor in SettingsProviderTest
    - manual interaction with developer option works
Bug: 34953048
Bug: 64133961
Change-Id: Ia7502916db9ffa0792e1e500a35e34d06a88e79d
2017-11-07 12:47:36 +09:00
Hugo Benichi
384d458c8f Merge "DefaultNetworkEvent metrics: rehaul" am: 69c9402a29
am: d025358166

Change-Id: If6bf966ba547a2ce50e17340e0374dd9b75b80d9
2017-11-06 07:31:39 +00:00
Hugo Benichi
69c9402a29 Merge "DefaultNetworkEvent metrics: rehaul" 2017-11-06 07:09:49 +00:00
Hugo Benichi
380a063858 DefaultNetworkEvent metrics: rehaul
This patch changes instrumentation of default networks and default
network events:
- stop logging events for default network transitions,
  but instead consistently log one event per continuous segment
  when one given network was the default, including logging an
  event for when there is no default network.
- keep a separate rolling buffer of DefaultNetworkEvent for
  dumpsys and bug reports.

These changes allow to simplify post aggregation of default network
event metrics by removing any need to do time series processing.
Instead, metrics and counters can be implemented withouth any ambiguity
by following the recipe:

% of x = sum(duration | x = true) / sum (all durations)

where x can be various conditions such as:
- the default network was validated
- the default network was WiFi
- the default network was IPv6
- there was no default network
- ...

Most importantly, this new logging scheme allows to measure much more
reliably:
- the % of the time that a device had Internet, in the sense that the
default network was validated.
- the time transitions between default networks, keyed by previous and
new transports/link layer, which allows to derive wakelock durations
and wakelock power costs from default network switches.

This patch also simplifies the dumpsys interface of the connmetrics
service and reduces the commands to three:
- "flush" for metrics upload.
- "proto" for printing buffered event in text proto format.
- "list" for listing all events and statistics.

Bug: 34901696
Bug: 65700460
Test: runtest frameworks-net
Change-Id: I0521f1681a60cca07ac3bfd5741d64ce44de4cdd
2017-11-06 09:04:02 +09:00
Jeff Sharkey
69b31d4eb0 Merge "Define NOT_ROAMING network capability." am: 8f380ab29c
am: 3fe1ae29cd

Change-Id: Ib511f7af82c80fd4e95f4da9de1fdce200deb987
2017-11-03 23:07:03 +00:00
Jeff Sharkey
72f9c42b9e Define NOT_ROAMING network capability.
The "roaming" state of a network really belongs on NetworkCapabilities
instead of being published through NetworkInfo.isRoaming().  One major
reason is to support developers creating NetworkRequests for a
non-roaming network.

Watch for any capability changes that network statistics are
interested in (either metered or roaming) and notify it to perform
an update pass; fixes bug where we previously only triggered on
roaming changes.

Fix bug in VPNs where metered/roaming capabilities of underlying
networks weren't being propagated; this was probably preventing
some jobs from running over unmetered networks, and causing other
jobs to run over roaming networks!  Also passes along link bandwidth
information from underlying networks, and propegates any changes
to underlying networks.

Fix race condition by reading prevNc inside lock.  Utility methods
correctly calculate min/max link bandwidth values.

Test: bit FrameworksNetTests:android.net.,com.android.server.net.,com.android.server.connectivity.,com.android.server.ConnectivityServiceTest
Bug: 68397798, 16207332
Change-Id: I3e1a6544c902bf3a79356b72d3616af1fd2b0f49
2017-11-01 19:05:42 -06:00
Tobias Thierer
60923f7860 Merge "OWNERS: Prefer Jeff Sharkey's @android.com account over @google.com" am: b519569eb3
am: 4f59edb63f

Change-Id: If74e0f6783bb38c707a3575821255e8f1ec4d78f
2017-10-31 13:51:26 +00:00
Tobias Thierer
ee3dfb0c24 Merge "Track moving of OkHttp facade API to new package." am: 45183fc5a7
am: 1f7fcb7970

Change-Id: I16e01dde45dd70cfb4ea43a81e728350a5b26d3f
2017-10-30 18:05:53 +00:00
Tobias Thierer
66d1933ce0 OWNERS: Prefer Jeff Sharkey's @android.com account over @google.com
He prefers to use his @android.com account.

Test: Treehugger
Bug: 63673347
Exempt-From-Owner-Approval: Allow @android.com to approve this CL :)

Change-Id: Ie80cc7864de7b91ae44ad57f0bae9b859d034803
2017-10-30 17:53:11 +00:00
Tobias Thierer
45183fc5a7 Merge "Track moving of OkHttp facade API to new package." 2017-10-30 17:40:36 +00:00
Tobias Thierer
4c6d2ecd71 Track moving of OkHttp facade API to new package.
Another CL in this topic moves the classes from
  libcore.net.http
to
  com.squareup.okhttp.internalandroidapi.
In jarjar'ed build targets, this becomes
  com.android.okhttp.internalandroidapi.

This facade constitutes the API via which non-libcore parts
of the Android platform (currently framework) may access
OkHttp. It's moving because libcore.net.http is already
part of libcore, and the overlap of packages is problematic
for builds with EXPERIMENTAL_USE_OPENJDK9 set to true.

Bug: 68220880
Test: Treehugger
Change-Id: Ia79966563cc0b5ab0923d54c21e54b6192d8c990
Exempt-From-Owner-Approval: Jeff Sharkey is an owner, but only one of his accounts is listed as an owner (@android.com vs. @google.com)
2017-10-30 17:40:23 +00:00
Hugo Benichi
597757b8ab Merge changes I59b6e04f,I55694d89 am: 9009eabbfe
am: 93134fea64

Change-Id: I923fe9cc37463e695182c7a279d201ba7e9d6518
2017-10-26 06:23:31 +00:00
Hugo Benichi
9009eabbfe Merge changes I59b6e04f,I55694d89
* changes:
  Remove Parcelable interface from DefaultNetworkEvent
  Extract logging of default network events
2017-10-26 06:01:06 +00:00
Jeff Sharkey
f9ae47c5da Merge "Improve NetworkCapabilities docs." am: 14a51058b1
am: b385ba095b

Change-Id: I3a685156e46c980078c3a91b36e9c1301c29240f
2017-10-25 17:35:44 +00:00
Hugo Benichi
1193a9c9ab Remove Parcelable interface from DefaultNetworkEvent
This patch takes advantage of the direct DefaultNetworkMetrics interface
between ConnectivityService and IpConnectivityMetrics and removes the
Parcelable interface from DefaultNetworkEvent.

IpConnectivityMetrics, IpConnectivityEventBuilder and associated tests
are updated as necessary.

Bug: 34901696
Test: runtest frameworks-net
Change-Id: I59b6e04fc126051320d08a422cfbd4d27042123e
2017-10-25 12:40:13 +09:00
Jeff Sharkey
de570313bb Improve NetworkCapabilities docs.
Add IntDef for constants, and rely on new auto-documentation feature
to expand all of them at usage sites.

Test: docs-only change
Bug: 64133169
Change-Id: I8a6b5f54c8eb9d4fc7ae3d0d3fb673d52320664b
2017-10-24 21:26:04 -06:00
Hugo Benichi
47fb2aa929 Merge "NetdEventListener: add rolling log of connect and dns stats" am: 64ef2a4d28
am: a3e7c1a3db

Change-Id: Iaad5f5b142209ce36f70249a438b3dd66fb92f07
2017-10-24 00:25:11 +00:00
Hugo Benichi
a3e7c1a3db Merge "NetdEventListener: add rolling log of connect and dns stats"
am: 64ef2a4d28

Change-Id: I7f25f4ed42f0aecea7a1bb09b8c65a5d2e4a84cd
2017-10-24 00:14:48 +00:00
Hugo Benichi
64ef2a4d28 Merge "NetdEventListener: add rolling log of connect and dns stats" 2017-10-23 23:54:53 +00:00
Hugo Benichi
ab20975c74 NetdEventListener: add rolling log of connect and dns stats
This patch adds a rolling time order logs of basic statistics of
connect and dns, grouped by network id and including:
 - average error rate
 - average latency
 - max latency
 - total number of operations

The log is segmented in buckets of 5 minutes, and covers the last 4
hours.

Note that only blocking connect() calls latencies are recorded with the
current netd logging infrastructure.

Example of logs:
05:30:00.000: {netId=100, WIFI, dns avg=92ms max=525ms err=00.0% tot=37, connect avg=0ms max=23ms err=00.0% tot=25}
05:35:00.000: {netId=100, WIFI, dns avg=94ms max=537ms err=05.3% tot=57, connect avg=0ms max=0ms err=00.0% tot=69}
05:40:00.000: {netId=100, WIFI, dns avg=220ms max=350ms err=00.0% tot=4, connect avg=0ms max=0ms err=00.0% tot=2}
05:45:00.000: {netId=100, WIFI, dns avg=112ms max=113ms err=00.0% tot=1, connect avg=0ms max=0ms err=00.0% tot=1}
05:50:00.000: {netId=100, WIFI, dns avg=131ms max=269ms err=00.0% tot=2, connect avg=0ms max=0ms err=00.0% tot=1}

Bug: 65700460
Test: runtest frameworks-net
Change-Id: I54e76d18fbaaa92639fb675f93ea90b7615fd6bf
2017-10-21 22:25:09 +09:00
Benedict Wong
9c6f24d1ee Merge "Add support for AES-GCM-ESP as an IPSec algorithm" am: b6df7f0d35 am: d3a5792024
am: f92bfc3b77

Change-Id: I49932a5fc048b4a60512fac45a3537f050397168
2017-10-19 17:37:22 +00:00
Benedict Wong
d3a5792024 Merge "Add support for AES-GCM-ESP as an IPSec algorithm"
am: b6df7f0d35

Change-Id: Ic099206a28c4f21fa796969c953a8d4e81e8495b
2017-10-19 17:14:53 +00:00
Benedict Wong
0febe5ece5 Add support for AES-GCM-ESP as an IPSec algorithm
Allows native AES-GCM-ESP to be used as an IPSec transport/tunnel mode
algorithm with kernel support

Bug: 63589918
Test: IPsecService tests added, existing ones pass
Change-Id: Ie1a9a902be205f269aa37bf956198f2e5b177c21
2017-10-18 11:22:24 -07:00
Hugo Benichi
944e080c22 Merge "LinkProperties: fix some indentation issues" am: a162726df7 am: e3b6b636cf
am: a63788076a

Change-Id: Ife901fd1c9c30b3864ddce61326f2d5caacd0bae
2017-10-10 14:31:48 +00:00
Hugo Benichi
e3b6b636cf Merge "LinkProperties: fix some indentation issues"
am: a162726df7

Change-Id: If9bc7cf980aa14880dbf6cc43bc86cc269d306cb
2017-10-10 14:13:45 +00:00
Treehugger Robot
a162726df7 Merge "LinkProperties: fix some indentation issues" 2017-10-10 14:02:35 +00:00
Hugo Benichi
bd87a3934c LinkProperties: fix some indentation issues
Test: no functional change
Change-Id: I469bba154feb382156e56043d83f066a5bd658aa
2017-10-10 18:25:50 +09:00
nharold
95d36dd165 Merge "Cosmetic Cleanups for IpSecService" am: 5ade9a228d am: 0bdb9a6e00
am: cc51ef0a47

Change-Id: I0a9c52ca26ad1b7e4505f7c9dc32ad9550b62afc
2017-10-05 01:07:53 +00:00
nharold
0bdb9a6e00 Merge "Cosmetic Cleanups for IpSecService"
am: 5ade9a228d

Change-Id: If47968dbd55f8f38f9e8dda4d78a0e2e41827da8
2017-10-05 00:44:37 +00:00
nharold
b87c060ec7 Merge changes from topic "ipsec-svc-cleanup" am: 9778c7884f am: ae61e0c6e8
am: 4e793fd0b5

Change-Id: Ib7eae5c9e223493281524e862979e16d25984dde
2017-10-04 20:53:04 +00:00
nharold
ae61e0c6e8 Merge changes from topic "ipsec-svc-cleanup"
am: 9778c7884f

Change-Id: Ide81ae76bd05ba3a2cc7c06c072306d30a489057
2017-10-04 20:24:10 +00:00
Nathan Harold
d6f50b260d Cosmetic Cleanups for IpSecService
This is a follow-up CL to address comments
on aosp/466677
-Rename ManagedResourceArray.get()
-Comment cleanup

Bug: 38397094
Test: runtest frameworks-net
Change-Id: I6fbdd89c4a864fe1d8a19c68947f582d7b1f0f21
2017-10-04 13:04:55 -07:00
Nathan Harold
19ce70b089 Add equals() for IpSecAlgorithm and IpSecConfig
Add equality testing methods to support tests
for parceling and un-parceling IpSecConfig.

Bug: 38397094
Test: runtest -x IpSecConfigTest.java
Change-Id: I31e318334d39ed6e9daf5ec8f3be7dcec75e12ad
2017-10-03 19:45:58 -07:00
Nathan Harold
a10003d5de Input Validation for IpSecService
All of the input to IpSecService over the Binder
interface needs to be validated both for sanity
and for safety.

-Sanity check all the parameters coming from binder.
-Added setters for IpSecConfig to decouple the test
 from the IpSecManager. This was needed because the
 input validation caused the tests to fail due to a
 null parameter that was previously un-tested.
-Added the mode flag to the IpSecConfig bundle this
 oversight was found during testing.
-Expose the getResourceId() methods for testing in
 UdpEncapsulationSocket, SecurityParameterIndex, and
 IpSecTransform classes.
-Remove the unneeded getIpSecConfig() from
 IpSecTransform: unneeded now that we can synthesize
 configs.

Bug: 38397094
Test: runtest frameworks-net
Change-Id: I5241fc7fbfa9816d54219acd8d81a9f7eef10dd4
2017-10-03 19:45:55 -07:00
Hugo Benichi
124b3e7738 Merge "DO NOT MERGE Ignore DUN in describeImmutableDifferences" into oc-mr1-dev
am: 9d5f50a9f8

Change-Id: I0236132b8b497af5b1c26aa44e6494fe0510cb6d
2017-10-02 11:10:37 +00:00
Hugo Benichi
9d5f50a9f8 Merge "DO NOT MERGE Ignore DUN in describeImmutableDifferences" into oc-mr1-dev 2017-10-02 10:57:01 +00:00
Hugo Benichi
a8f395702d DO NOT MERGE Ignore DUN in describeImmutableDifferences
This patch changes describeImmutableDifferences in NetworkCapabilities
to ignore differences in NET_CAPABILITY_DUN, so that updateCapabilities
in ConnectivityService to not report wtf errors when a NetworkAgent
degrades its NetworkCapabilities object by removing NET_CAPABILITY_DUN.

Bug: 65257223
Test: runtest frameworks-net
Change-Id: I115ed1b366da01a3f8c3c6e97e0db8ce995fd377
2017-10-02 15:03:57 +09:00
Jean Chalard
758d1e1ef7 Merge "Do not throw on call to isTetheringSupported w/o permission"
am: 6201cc6f27

Change-Id: Ie2ed67525e719104cef1537568f944b77d5f5e4e
2017-09-28 07:47:30 +00:00
Chalard Jean
092d50d1bd Do not throw on call to isTetheringSupported w/o permission
...just return false instead.

Test: Made an app to test this. Made sure it doesn't have
Test: the required permission. Checked it crashes with
Test: SecurityException without this change. Checked that it
Test: doesn't with it.

Merged-In: Ib5b17a7f68c1327f47fe1f54c0454c51f4226907
Change-Id: Id20d3c240ec5d70d085e0366b92ab3a514f3e7c8
(cherry picked from commit 8f76fc38ec)
2017-09-28 16:34:39 +09:00
Jean Chalard
f3b169c8e6 Merge "Adds necessary permissions to system apis"
am: b4a5933a62

Change-Id: Ifa5d94cdd883c3e1b983c985c0c17fe61e864352
2017-09-27 09:58:51 +00:00
Udam Saini
c3b640cf48 Adds necessary permissions to system apis
adds privileged permission for getCaptivePortalServerUrl
adds tether privileged permission for
startTethering,isTetheringSupported

bug:62348162

Test: make and manual testing
Change-Id: I8eb8e3c9dcd7201abe9ea303ee57fe99073d67eb
2017-09-27 12:14:37 +09:00
Chalard Jean
47cfcef09c Merge "Do not throw on call to isTetheringSupported w/o permission" into oc-mr1-dev
am: e545f00e10

Change-Id: Ib5b17a7f68c1327f47fe1f54c0454c51f4226907
2017-09-27 02:12:24 +00:00
nharold
80b90ed99a Merge changes from topic "re-enable-ipsec" am: 680525c742 am: 8d306cd78a
am: 80107540bb

Change-Id: I13a7134864a648aff9338fda044b3bffd653119e
2017-09-26 22:39:01 +00:00
Nathan Harold
458b8cd302 Re-Enable Starting of the IpSecService am: b72821747c am: f434a6d308
am: 686a8282bb

Change-Id: Ia24348d585b2f1050dafd161eafcdadf0edd82c0
2017-09-26 22:37:44 +00:00
nharold
8d306cd78a Merge changes from topic "re-enable-ipsec"
am: 680525c742

Change-Id: Ia1d1f3981a9dd1eb8f60631d318211daf135d575
2017-09-26 22:13:20 +00:00
Nathan Harold
f434a6d308 Re-Enable Starting of the IpSecService
am: b72821747c

Change-Id: I1f64aa2fdf1cce6dea91427eda65c4b8ee6f6b02
2017-09-26 22:11:58 +00:00
nharold
680525c742 Merge changes from topic "re-enable-ipsec"
* changes:
  Re-Expose IpSecService API Surface
  Re-Enable Starting of the IpSecService
2017-09-26 21:46:39 +00:00
Chalard Jean
8f76fc38ec Do not throw on call to isTetheringSupported w/o permission
...just return false instead. This will change in P.

Test: Made an app to test this. Made sure it doesn't have
Test: the required permission. Checked it crashes with
Test: SecurityException without this change. Checked it
Test: doesn't with it.

Bug: 65404184

Change-Id: Id20d3c240ec5d70d085e0366b92ab3a514f3e7c8
2017-09-26 19:25:48 +09:00
Hugo Benichi
14676c5da4 Merge changes Ied9d0cec,I3087f446,Ibe706872 into oc-mr1-dev
* changes:
  Wakeup packet events: addressing a few comments
  Connectivity metrics: add WakeupStats events
  Connectivity metrics: collect NFLOG wakeup events
2017-09-20 00:58:35 +00:00