Commit Graph

3535 Commits

Author SHA1 Message Date
Hugo Benichi
d03ff4e363 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
2017-03-21 10:18:56 +09:00
Hugo Benichi
9ee5e7a0a0 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
2017-03-21 10:18:11 +09:00
TreeHugger Robot
f6b939b076 Merge "ConnectivityMetricsEvent: add ifname, netid, transports" 2017-03-16 02:50:23 +00:00
Hugo Benichi
4781b3c93c 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
2017-03-16 09:58:02 +09:00
Hugo Benichi
8e4bbe7aca Merge "Connectivity metrics: simplify ConnectivityMetricsEvent" 2017-03-16 00:37:47 +00:00
Hugo Benichi
f7e50b1b8f 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
2017-03-15 15:12:38 +09:00
TreeHugger Robot
3807fecc94 Merge "IP connectivity metrics: add new APF counters." 2017-03-15 04:24:30 +00:00
Hugo Benichi
5865a0f0d8 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
2017-03-15 11:49:48 +09:00
Hugo Benichi
f8c2041da1 Merge "ConnectivityManager: unhide methods with Handler argument" am: 45a54e122b am: 08fda7ecb3
am: 1673f71afb

Change-Id: Ic575f187803548ce15965d6fde942a5322d9e35e
2017-03-13 07:18:54 +00:00
Hugo Benichi
08fda7ecb3 Merge "ConnectivityManager: unhide methods with Handler argument"
am: 45a54e122b

Change-Id: I470d68a25e62b9493ac7cfb5887e8345968f1097
2017-03-13 07:09:49 +00:00
Hugo Benichi
45a54e122b Merge "ConnectivityManager: unhide methods with Handler argument" 2017-03-13 06:58:30 +00:00
TreeHugger Robot
9603d2a9e7 Merge "IP connectivity metrics: ConnectStats additions" 2017-03-13 03:02:01 +00:00
Hugo Benichi
3ce639664a 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
2017-03-13 09:25:15 +09:00
Hugo Benichi
269acc4c51 Merge "Simple cleanups to Tethering" am: 7eaa2ad172 am: a24e00242d
am: bc559bad9d

Change-Id: I393817fac7402d51fbd8dfd1fda20d16b398de17
2017-03-13 00:23:32 +00:00
Hugo Benichi
a24e00242d Merge "Simple cleanups to Tethering"
am: 7eaa2ad172

Change-Id: I3bb7e4756eaa0b7e702ff7270beb7420b7b6aac5
2017-03-13 00:14:55 +00:00
Hugo Benichi
c0b3f6eaeb Simple cleanups to Tethering
- regroup together static final class fields, final instance fields, and
  mutable instance fields.
- uses correct Android naming conventions for instance fields.
- reorder imports correctly.

Test: no functional change.
Change-Id: If3d73bc28972a004c2ba3cc14d869a2a679abfce
2017-03-10 15:32:30 +09:00
Hugo Benichi
a57b30c6b2 ConnectivityManager: unhide methods with Handler argument
Test: no functionality change
Bug: 32130437
Change-Id: I2a57175142683f991a215b584282db143a76ed9d
2017-03-09 15:25:26 +09:00
Hugo Benichi
b266fa2cdb 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
2017-03-09 15:19:02 +09:00
Etan Cohen
77ae56918b Merge "[CM] Allow timeout in request network" am: 0fc482e2bf am: e7de02a091
am: ac879cbcaf

Change-Id: If42250966d619073d45d608aab454589213b1756
2017-03-07 17:02:05 +00:00
Etan Cohen
e7de02a091 Merge "[CM] Allow timeout in request network"
am: 0fc482e2bf

Change-Id: Ic7a3da0a5292be5e13abca9c98c422bc2f50f3a0
2017-03-07 16:49:53 +00:00
Etan Cohen
0fc482e2bf Merge "[CM] Allow timeout in request network" 2017-03-07 16:40:27 +00:00
Erik Kline
b55e2f55cf Merge "request{LinkProperties,NetworkCapabilities} no longer needed" am: 6a589b03e6 am: 14025c741e
am: bb54baba04

Change-Id: Id2aa8aeff6d299edb85955c12ab0a04023458597
2017-03-07 13:42:11 +00:00
Erik Kline
14025c741e Merge "request{LinkProperties,NetworkCapabilities} no longer needed"
am: 6a589b03e6

Change-Id: I79b9323be242ed5d2bf83962f78c613a465a20b8
2017-03-07 13:33:29 +00:00
Treehugger Robot
6a589b03e6 Merge "request{LinkProperties,NetworkCapabilities} no longer needed" 2017-03-07 13:27:11 +00:00
Erik Kline
0a59189b8d 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
2017-03-07 17:18:06 +09:00
Erik Kline
521b2892b6 Merge "Always send all available state when calling onAvailable()." am: 1a4d506305 am: 8beee2f864
am: 3765538bab

Change-Id: Ic82e3cb92841ea99972faad6ae004d77c725831b
2017-03-07 06:08:40 +00:00
Erik Kline
8beee2f864 Merge "Always send all available state when calling onAvailable()."
am: 1a4d506305

Change-Id: I81e70fecf060a4103b51084a60a32c78f6219f6b
2017-03-07 06:00:09 +00:00
Treehugger Robot
1a4d506305 Merge "Always send all available state when calling onAvailable()." 2017-03-07 05:51:41 +00:00
Erik Kline
81fdc8a3d6 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
2017-03-07 12:57:26 +09:00
Hugo Benichi
69c4d665e1 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
2017-03-06 12:45:10 +00:00
Hugo Benichi
052f041730 Merge "Revert "ConnectivityManager: no double NetworkCallback registration" because oit caused regressions http://b/35955593, http://b/35921499."
am: 704520c392

Change-Id: Ia0ae78f8406b81377491407cf5ef8ca339952def
2017-03-06 12:30:05 +00:00
Hugo Benichi
98f8f1e81f Revert "ConnectivityManager: no double NetworkCallback registration" because oit caused regressions http://b/35955593, http://b/35921499.
This reverts commit e2b14dc251.

Change-Id: I86c07c113f24753be7c977e6d7f570b99391e1b5
2017-03-06 06:16:51 +00:00
Etan Cohen
67e58a0adb [CM] Allow timeout in request network
Add (unhide) a public API which provides network requests with a
timeout. When timed-out the (newly unhidden) onUnavailable() callback
is triggered.

Note: this CL does not add a handler to the API to be consistent
with the existing APIs. There is a separate effort (b/32130437)
to update these APIs with Handlers.

Bug: 31399536
Test: unit tests and CTS (new)
Change-Id: I45ce9ada63372cb56937bb620bfbb7729e5e25d2
2017-03-02 08:06:27 -08:00
Hugo Benichi
3d9ad6f6c1 Merge "ConnectivityManager: no double NetworkCallback registration" am: 06a192fa49 am: 584c12d4cf
am: 974e83cc0b

Change-Id: I73569fd084c14a78067e09565418f296994cd424
2017-03-02 08:12:09 +00:00
Hugo Benichi
584c12d4cf Merge "ConnectivityManager: no double NetworkCallback registration"
am: 06a192fa49

Change-Id: I250fa7d3c5e37a66caa41cc898a44bcb18c9a0c4
2017-03-02 08:04:03 +00:00
Hugo Benichi
e2b14dc251 ConnectivityManager: no double NetworkCallback registration
Test: new test in ConnectivityManagerTest
Bug: 20701525
Change-Id: I205333d31d43e6e6c7fe704ce63b458065f345ce
2017-03-02 15:19:37 +09:00
Geoffrey Pitsch
482e99a6c7 Channels for Frameworks notifications
Adapts all notifications used by system services to use channels.
Channels are initialized by SystemServer after the NotificationService
has started.

Test: runtest systemui-notification
Change-Id: I25c45293b786adb57787aeab4c2613c9d7c89dab
2017-03-01 10:17:15 -05:00
Erik Kline
ab58a4f471 Merge "Also test for additional NetworkCallback calls" am: dff6c5c30d am: a0dd58235a
am: 02310829cf

Change-Id: I0264a471312423e896a1c2f479c0eeda737a1567
2017-03-01 11:13:14 +00:00
Erik Kline
a0dd58235a Merge "Also test for additional NetworkCallback calls"
am: dff6c5c30d

Change-Id: I00b3f7be06bde167872d0cdefe940cda5e138846
2017-03-01 11:03:08 +00:00
Erik Kline
4948c14c7f 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
2017-03-01 18:24:36 +09:00
Erik Kline
0ecd579f4b Merge "Update UpstreamNetworkMonitor to use custom Handlers" am: 35c89886c2 am: 46175db538
am: c239511cdb

Change-Id: I9a210b4896810e7365b2403495716395b3866650
2017-02-24 08:24:51 +00:00
Erik Kline
46175db538 Merge "Update UpstreamNetworkMonitor to use custom Handlers"
am: 35c89886c2

Change-Id: I76433822a9b7c124e4b7cfcf2a20cb0e43a60199
2017-02-24 08:15:19 +00:00
Erik Kline
f913e3a717 Update UpstreamNetworkMonitor to use custom Handlers
Test: as follows
    - built (bullhead)
    - flashed
    - booted
    - runtest frameworks-net passes
Bug: 32130437
Bug: 32163131

Change-Id: I2bc3f87cdf7fa6392b4750eb8adb4ea33c6a3f43
2017-02-24 13:06:51 +09:00
Hugo Benichi
7256669a28 Merge "IP connectivity metrics: cleanup obsolete code" 2017-02-23 07:02:30 +00:00
Hugo Benichi
c5371193f2 Merge "ConnectivityManager: allow custom Handlers" am: ef69246260 am: b608e7574c
am: 0f99e5367b

Change-Id: I9f7fc64c2d3d6f88344c9547b8e1ac17cf3d1104
2017-02-22 05:59:44 +00:00
Hugo Benichi
8a400e0c90 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
2017-02-22 12:56:38 +09:00
Hugo Benichi
b608e7574c Merge "ConnectivityManager: allow custom Handlers"
am: ef69246260

Change-Id: I8da5540f6561cdef4adc91bbeeb9c21a91c08d49
2017-02-22 03:48:10 +00:00
Hugo Benichi
cd5a0e09e9 ConnectivityManager: allow custom Handlers
This patch adds overloaded version of registerDefaultNetworkCallback
registerNetworkCallback, and requestNetwork with an additional Handler
argument that is used for running the caller provided NetworkCallback.

It also clarifies the documentation of the existing methods that
implicitly uses the internal singleton ConnectivityThread about which
internal Handler is used for running NetworkCallbacks.

Test: build, flashed, booted device
Bug: 32130437
Change-Id: Iae15f81e47e2dc0355baf2f2c1679b77e56af299
2017-02-22 09:24:01 +09:00
Robin Lee
4180aed562 Merge "Reinstate USER_PRESENT for ConnectivityService" am: e6aea7d299 am: ebb56ce1fb
am: 4d00a13c35

Change-Id: Id22859b30b848418cbc1bcf46c74ebd2aa88cd06
2017-02-21 18:13:12 +00:00
Robin Lee
ebb56ce1fb Merge "Reinstate USER_PRESENT for ConnectivityService"
am: e6aea7d299

Change-Id: If8b7239cdabdd79d9ea24baf99e95c6ec1a9acf3
2017-02-21 17:55:07 +00:00