Commit graph android_packages_modules_Co.../tests/net/java
Message SHA1
Connectivity metrics: change how interface names are logged
This patch deprecates the ifname field for specific metrics events of
types DhcpClientEvent, DhcpErrorEvent, IpReachabilityEvent and
IpManagerEvent.

Instead ifnames are logged in ConnectivityMetricsEvent, allowing for
link layer inference.

Test: updated unit tests, $ runtest frameworks-net passes
Bug: 34901696
Change-Id: I8bfabcb115bbd5289471d653c153a40bb48f28cd

Hugo Benichi   commited 2017-03-21 10:18:56 +09:00
d03ff4e363
Connectivity metrics: serialize networkId, transports, ifname
This patch adds translation from ConnectivityMetricsEvent to
IpConnectivityEvent of recently added fields:
 - top-level network id
 - top-level ifname
 - transports

Also adds inference of link layer from transports or ifname.

At the moment these new fields are not populated in
ConnectivityMetricsEvent. Follow-up patches will fill this gap for
the events of the android.net.metrics package.

Test: new unit tests, $ runtest frameworks-net passes
Bug: 34901696
Change-Id: I563a6a3183470bdfaabb7c781a1beaf6b1058bf0

Hugo Benichi   commited 2017-03-21 10:18:11 +09:00
9ee5e7a0a0
Merge "ConnectivityMetricsEvent: add ifname, netid, transports"
TreeHugger Robot   authored and   Android (Google) Code Review   commited 2017-03-16 02:50:23 +00:00
f6b939b076
ConnectivityMetricsEvent: add ifname, netid, transports
This patch adds new fields to ConnectivityMetricsEvent to make it more
symmetric to IpConnectivityEvent in ipconnectivity.proto.

Follow-up patches will start populating these fields for users of
IpConnectivityLog.

Test: unit tests updated, $ runtest frameworks-net passes
Bug: 34901696
Change-Id: I396767cdfcf38cce893c0d6e1f4524f12e3fdc64

Hugo Benichi   commited 2017-03-16 09:58:02 +09:00
4781b3c93c
Merge "Connectivity metrics: simplify ConnectivityMetricsEvent"
Hugo Benichi   authored and   Android (Google) Code Review   commited 2017-03-16 00:37:47 +00:00
8e4bbe7aca
Connectivity metrics: simplify ConnectivityMetricsEvent
Now that ConnectivityMetricsEvent is only used for core networking
metrics and is not @SystemApi anymore, remove unused fields and prepare
for additional new fields.

Test: updated unit tests, $ runtest frameworks-net passes
Bug: 34901696
Change-Id: I15abad19981d491f16f2a3afe401f1e833079907

Hugo Benichi   commited 2017-03-15 15:12:38 +09:00
f7e50b1b8f
Merge "IP connectivity metrics: add new APF counters."
TreeHugger Robot   authored and   Android (Google) Code Review   commited 2017-03-15 04:24:30 +00:00
3807fecc94
IP connectivity metrics: add new APF counters.
This patch adds a few missing counters to APF events:
 - an actual lifetime duration to ApfProgramEvent.
 - counters for total number of updates to ApfStatistics.

ApfProgramEvents are now recorded at program removal in order to
populate the actual lifetime of the program. ApfProgramEvents whose
actual lifetime was less than 1 second are filtered out.

Finally, instance fields of ApfProgramEvent and ApfStats classes are
made mutable to allow for simple record-like creation. This was not
possible when these classes were tagged @SystemApi.

Test: - manually verified output of $ dumpsys connmetrics list
      - unit tests updated.
Bug: 34901696

Change-Id: I02694ebb9421ce1c2aa757fa6aa209d19a654dcd

Hugo Benichi   commited 2017-03-15 11:49:48 +09:00
5865a0f0d8
IP connectivity metrics: ConnectStats additions
This patch:
  - adds a counter to ConnectStats for counting the number of successful
    connect() calls done in blocking mode. This allows to compute error
    rates for connect() in blocking mode.
  - add printing of ConnectStats when dumping NetdEventListenerService
    and/or IpConnectivityMetrics service.

Test: $ runtest frameworks-net, + manual tests verifying logged events.
Bug: 34901696
Change-Id: I889e8ccd12681b0511be487e9d2ee44290a2d7d7

Hugo Benichi   commited 2017-03-13 09:25:15 +09:00
3ce639664a
IP connectivity metrics: update ipconnectivity.proto
This patch adds several new fields to ipconnectivity.proto for
improving APF metrics, connect metrics, and link_layer inference.

Test: build, flashed, ran $ adb shell dumpsys connmetrics list proto
      updated metrics unit tests depending on proto schema
Bug: 34901696
Change-Id: I6f68e16f583a6b407f33f8a500133e100f3453c7

Hugo Benichi   commited 2017-03-09 15:19:02 +09:00
b266fa2cdb
Merge "request{LinkProperties,NetworkCapabilities} no longer needed" am: 6a589b03e6 am: 14025c741e
am: bb54baba04

Change-Id: Id2aa8aeff6d299edb85955c12ab0a04023458597

Erik Kline   authored and   android-build-merger   commited 2017-03-07 13:42:11 +00:00
b55e2f55cf
Merge "request{LinkProperties,NetworkCapabilities} no longer needed"
am: 6a589b03e6

Change-Id: I79b9323be242ed5d2bf83962f78c613a465a20b8

Erik Kline   authored and   android-build-merger   commited 2017-03-07 13:33:29 +00:00
14025c741e
request{LinkProperties,NetworkCapabilities} no longer needed
Test: as follows
    - built (bullhead)
    - flashed
    - booted
    - runtest frameworks-net passes
    - manual USB tethering toggling between WiFi and mobile
Bug: 32163131
Change-Id: I57edf5114b6361f320577c7870e40f8b3cdf74ce

Erik Kline   commited 2017-03-07 17:18:06 +09:00
0a59189b8d
Merge "Always send all available state when calling onAvailable()." am: 1a4d506305 am: 8beee2f864
am: 3765538bab

Change-Id: Ic82e3cb92841ea99972faad6ae004d77c725831b

Erik Kline   authored and   android-build-merger   commited 2017-03-07 06:08:40 +00:00
521b2892b6
Merge "Always send all available state when calling onAvailable()."
am: 1a4d506305

Change-Id: I81e70fecf060a4103b51084a60a32c78f6219f6b

Erik Kline   authored and   android-build-merger   commited 2017-03-07 06:00:09 +00:00
8beee2f864
Always send all available state when calling onAvailable().
The state that needs to be transferred includes:
    - NetworkCapabilities
    - LinkProperties
    - whether the network is currently suspended

Additionally:
    - Rename notifyNetworkCallback() to notifyNetworkAvailable()
      in order to clarify its real function.
    - fix previous copy/paste error in unittest

Test: as follows
    - built (bullhead)
    - flashed
    - booted
    - runtest frameworks-net passes
    - USB tethering with mobile and Wi-Fi upstream toggling
Bug: 32163131
Change-Id: Ib4460bcd5d08863a9feac9e8ab41a238897bb3ea

Erik Kline   commited 2017-03-07 12:57:26 +09:00
81fdc8a3d6
Merge "Revert "ConnectivityManager: no double NetworkCallback registration" because oit caused regressions http://b/35955593, http://b/35921499." am: 704520c392 am: 052f041730
am: 22d4258a75

Change-Id: I8e66e223003a38735b707d21d7bedb19170b1937

Hugo Benichi   authored and   android-build-merger   commited 2017-03-06 12:45:10 +00:00
69c4d665e1
Merge "Revert "ConnectivityManager: no double NetworkCallback registration" because oit caused regressions http://b/35955593, http://b/35921499."
am: 704520c392

Change-Id: Ia0ae78f8406b81377491407cf5ef8ca339952def

Hugo Benichi   authored and   android-build-merger   commited 2017-03-06 12:30:05 +00:00
052f041730
Revert "ConnectivityManager: no double NetworkCallback registration" because oit caused regressions http://b/35955593, http://b/35921499.
This reverts commit e2b14dc251.

Change-Id: I86c07c113f24753be7c977e6d7f570b99391e1b5

Hugo Benichi   commited 2017-03-06 06:16:51 +00:00
98f8f1e81f
Merge "ConnectivityManager: no double NetworkCallback registration" am: 06a192fa49 am: 584c12d4cf
am: 974e83cc0b

Change-Id: I73569fd084c14a78067e09565418f296994cd424

Hugo Benichi   authored and   android-build-merger   commited 2017-03-02 08:12:09 +00:00
3d9ad6f6c1
Merge "ConnectivityManager: no double NetworkCallback registration"
am: 06a192fa49

Change-Id: I250fa7d3c5e37a66caa41cc898a44bcb18c9a0c4

Hugo Benichi   authored and   android-build-merger   commited 2017-03-02 08:04:03 +00:00
584c12d4cf
ConnectivityManager: no double NetworkCallback registration
Test: new test in ConnectivityManagerTest
Bug: 20701525
Change-Id: I205333d31d43e6e6c7fe704ce63b458065f345ce

Hugo Benichi   commited 2017-03-02 15:19:37 +09:00
e2b14dc251
Merge "Also test for additional NetworkCallback calls" am: dff6c5c30d am: a0dd58235a
am: 02310829cf

Change-Id: I0264a471312423e896a1c2f479c0eeda737a1567

Erik Kline   authored and   android-build-merger   commited 2017-03-01 11:13:14 +00:00
ab58a4f471
Merge "Also test for additional NetworkCallback calls"
am: dff6c5c30d

Change-Id: I00b3f7be06bde167872d0cdefe940cda5e138846

Erik Kline   authored and   android-build-merger   commited 2017-03-01 11:03:08 +00:00
a0dd58235a
Also test for additional NetworkCallback calls
Specifcally:
    - onCapabilitiesChanged
    - onLinkPropertiesChanged
    - onNetworkSuspended

Test: as follows
    - built (bullhead)
    - flashed
    - booted
    - runtest frameworks-net passes
Bug: 32163131

Change-Id: Ie0f7c8ac21313b11980bb335c89ecde6fd8e311c

Erik Kline   commited 2017-03-01 18:24:36 +09:00
4948c14c7f
IP connectivity metrics: cleanup obsolete code
This patch cleans obsolete code related to IP connectivity metrics:
 - remove @SystemApi on android.net.metrics: now that metrics events
   are processed and serialized in the frameworks only, event classes
   should not appear in the system apis.
 - remove obsolete Logger classes: ConnectivityMetrics app was the
   unique user of ConnectivityMetricsLogger until nyc-mr1. From nyc-mr1
   the app started using dumpsys to get metrics for IpConnectivity and
   Telephony, which made ConnectivityMetricsLogger obsolete.
 - simplifications in MetricsTestUtil

Test: - runtest frameworks-net
      - manually verified $ adb shell dumpsys connmetrics
Bug: 30054585
Bug: 32648597
Change-Id: I85ef65f7f69eb9299e4636cc7af54067201d9daf

Hugo Benichi   commited 2017-02-22 12:56:38 +09:00
8a400e0c90
Merge "Add ConnectivityManager.networkCapabilitiesForType()" am: c313123afe am: 848a442b82 am: 2d0a06b308
am: 4f01ec8220

Change-Id: I15fe6fe4c9aec3d244b46516c2992ded33337a9f

Erik Kline   authored and   android-build-merger   commited 2017-02-02 20:03:51 +00:00
70585750e5
Merge "Add ConnectivityManager.networkCapabilitiesForType()" am: c313123afe am: 848a442b82
am: 2d0a06b308

Change-Id: I2ab05143299f13012dc2a88efca52160e08c6d97

Erik Kline   authored and   android-build-merger   commited 2017-02-02 07:32:09 +00:00
4f01ec8220
Merge "Add ConnectivityManager.networkCapabilitiesForType()"
am: c313123afe

Change-Id: I0ad50fbf38f11b383fd889dc598cfddd47051477

Erik Kline   authored and   android-build-merger   commited 2017-02-02 07:22:05 +00:00
848a442b82
Add ConnectivityManager.networkCapabilitiesForType()
This static method returns a NetworkCapabilities instance with
transports and capabilities set according to the given legacy type.

Also:
    - add NetworkRequest.Builder.setCapabilities(), to be able to use
      the NetworkCapabilities instances returned from the above
    - update UpstreamNetworkMonitor to make immediate use of this

Test: as follows
    - build (bullhead)
    - flashed
    - booted
    - runtest frameworks-net passes
    - WiFi to DUN upstream tethering works
Bug: 32163131

Change-Id: Idfe1ddd2815c355cbf27cf29eb0e3de177de84e9

Erik Kline   commited 2017-02-02 11:07:59 +09:00
50068e5fdd
Add an API hint for metered multipath traffic.
This allows an application that knows how to provide seamless
network connectivity (e.g., using QUIC multipath) to find out if
doing so is desired.

Test: builds, boots, runtest frameworks-net passes.
Bug: 34630278
Change-Id: Ic7fd0b9e1cd879fdfaf84009d7125391895e9087

Lorenzo Colitti   commited 2017-02-01 17:02:29 +09:00
231efb08b7
ConnectivityServiceTest: remove remaining poll loops. am: 92ec1ce668 am: b079dd8476 am: 994368a55f
am: ffbf8468ef

Change-Id: Idc5d60f9ed5fbbb39256b9983a5b292a0302b2f1

Lorenzo Colitti   authored and   android-build-merger   commited 2017-02-01 03:18:46 +00:00
b1f92149a3
Rename AvoidBadWifiTracker to MultinetworkPolicyTracker am: b8dfec4b88 am: a566163a38 am: 3cdc4f95e0
am: 1afd50b7b8

Change-Id: I5aefc453c022286e6ee2332a53e6c9f36472e9a5

Lorenzo Colitti   authored and   android-build-merger   commited 2017-02-01 03:17:19 +00:00
0ad0efae32
Attempt to make waitForIdleHandler reliable. am: 53347a0f27 am: 9f0ddc6573 am: dfd6d2e764
am: 3701103f7f

Change-Id: Ia2d7a4405ce60ca99b1ee6c80c0babf93983cf64

Lorenzo Colitti   authored and   android-build-merger   commited 2017-02-01 03:16:18 +00:00
ffb5a83d48
ConnectivityServiceTest: remove remaining poll loops. am: 92ec1ce668 am: b079dd8476
am: 994368a55f

Change-Id: I31681e1248721704a9b792962a2ef5955e375e93

Lorenzo Colitti   authored and   android-build-merger   commited 2017-02-01 03:01:52 +00:00
ffbf8468ef
Remove assertEventuallyTrue as it's unnecessary. am: 6d3b09c575 am: 7b1eb3ad2d
am: d18e432897

Change-Id: Ib16f54aeaa783a6e26a9d80e61388cbd9ecd9bd3

Lorenzo Colitti   authored and   android-build-merger   commited 2017-02-01 03:00:41 +00:00
09e4337760
Rename AvoidBadWifiTracker to MultinetworkPolicyTracker am: b8dfec4b88 am: a566163a38
am: 3cdc4f95e0

Change-Id: I91f1338f3488cfc60eef0c2147aa7b1d61107cdd

Lorenzo Colitti   authored and   android-build-merger   commited 2017-02-01 02:59:42 +00:00
1afd50b7b8
Attempt to make waitForIdleHandler reliable. am: 53347a0f27 am: 9f0ddc6573
am: dfd6d2e764

Change-Id: I2369fbd693b467283232f47703fd471c8ff60c1f

Lorenzo Colitti   authored and   android-build-merger   commited 2017-02-01 02:58:24 +00:00
3701103f7f
ConnectivityServiceTest: remove remaining poll loops.
am: 92ec1ce668

Change-Id: I675096683c8ed4bc0e540491c0ff6aa828114313

Lorenzo Colitti   authored and   android-build-merger   commited 2017-02-01 02:39:30 +00:00
b079dd8476
Remove assertEventuallyTrue as it's unnecessary.
am: 6d3b09c575

Change-Id: Id574b27b40e35fbccac49910867e9735c03118d4

Lorenzo Colitti   authored and   android-build-merger   commited 2017-02-01 02:38:30 +00:00
7b1eb3ad2d
Rename AvoidBadWifiTracker to MultinetworkPolicyTracker
am: b8dfec4b88

Change-Id: I7615c9128deed7011eb9ab6f2efdcfe2e237a1a5

Lorenzo Colitti   authored and   android-build-merger   commited 2017-02-01 02:37:31 +00:00
a566163a38
Attempt to make waitForIdleHandler reliable.
am: 53347a0f27

Change-Id: Id7e23c3a2c885ff239efa577a8d366d3df6ca9a2

Lorenzo Colitti   authored and   android-build-merger   commited 2017-02-01 02:36:22 +00:00
9f0ddc6573
ConnectivityServiceTest: remove remaining poll loops.
All the tests are now asynchronous. The only remaining uses of
Thread.sleep() are in the tests that check for NetworkRequest
timeouts.

Test: ConnectivityServiceTest passes 100 times in a row
Bug: 32561414
Change-Id: If420bd66c692a90d5031ee06a888a8cc3b4398a8

Lorenzo Colitti   commited 2017-01-31 15:44:23 +09:00
92ec1ce668
Remove assertEventuallyTrue as it's unnecessary.
The calls in testAvoidBadWifi are no longer necessary now that
waitForIdle is reliable, and the calls in testPacketKeepalives
are replaced with a wait for the NetworkAgent to disconnect.

Test: ConnectivityServiceTest passes 100 times in a row.
Bug: 32561414
Change-Id: Icbb161ca6e343bd14764a1c9ccfdd14b6cd6803f

Lorenzo Colitti   commited 2017-01-31 15:42:58 +09:00
6d3b09c575
Rename AvoidBadWifiTracker to MultinetworkPolicyTracker
Rename the class and ensure that all code related to bad wifi
avoidance has names that reflect its purpose.  This will allow us
to reuse most of the the code for other purposes in future CLs.

Test: runtest frameworks-net passes
Bug: 34630278
Change-Id: Ida190e5a79e7a12f4eec07e1a3e4d9d138e83bcd

Lorenzo Colitti   commited 2017-01-31 15:42:57 +09:00
b8dfec4b88
Attempt to make waitForIdleHandler reliable.
The current implementation of IdleableHandlerThread is based on
the assumption that MessageQueue#isIdle will return true iff the
message loop has finished processing its messages.

Unfortunately, this is incorrect: isIdle returns true iff are no
more messages waiting in the queue; thus, it will also return
true while it is processing the last message before going idle.

Instead of using idle handlers, take the simpler approach of
posting a runnable to the message loop and waiting for it to
be processed.

Test: see other CLs in this patch series
Bug: 31479480
Change-Id: Iae75781f067b762c8653a488a5e4d5ee0c789e01

Lorenzo Colitti   commited 2017-01-31 15:42:17 +09:00
53347a0f27
Merge "ConnectivityServiceTest: fix flaky tests" am: b2c16c3a95 am: 550c813eb5 am: 17f86737ec
am: cbbb8019b5

Change-Id: I3a16ff459b8f702249f14e9becbb2630ce7471fd

Lorenzo Colitti   authored and   android-build-merger   commited 2017-01-27 10:04:15 +00:00
5ff6f5afe4
Merge "ConnectivityServiceTest: remove flaky waitForIdle test." am: be80577f5b am: 100dd57c82 am: d635e56751
am: 5ba5fd6ee6

Change-Id: Iebafbf438ee4efcd53b3e6d5c71b34c0ca4e2c6b

Lorenzo Colitti   authored and   android-build-merger   commited 2017-01-27 10:00:14 +00:00
569a9fdb40
Merge "ConnectivityServiceTest: fix flaky tests" am: b2c16c3a95 am: 550c813eb5
am: 17f86737ec

Change-Id: Iaa1ab50a323133cadfa4f39440fce982cde8d1fe

Lorenzo Colitti   authored and   android-build-merger   commited 2017-01-27 10:00:06 +00:00
cbbb8019b5
Merge "ConnectivityServiceTest: remove flaky waitForIdle test." am: be80577f5b am: 100dd57c82
am: d635e56751

Change-Id: I1d3707b4bc2ae00ca0fad1c3ec7e6ca859fcdd16

Lorenzo Colitti   authored and   android-build-merger   commited 2017-01-27 09:55:36 +00:00
5ba5fd6ee6