History log of /system/connectivity/shill/metrics.cc
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
90259aacb47485f30a6f26796300fc069905772f 01-Dec-2015 Bertrand SIMONNET <bsimonnet@google.com> shill: Replace user action with an enum histogram.

Instead of reporting the cellular failures with a user action which is
not practical, report it with an enum histogram.
The user action is not currently used and an enum is easier to use.

Bug: 25818567
Test: unit tests.
Test: Compile and unit tests pass on Chrome OS (daisy).

Change-Id: I3c7b6120c0944060fef10be98be49d4c1e4d8f21
/system/connectivity/shill/metrics.cc
289a5a5e18bb1a676b3dfce111af4c2c00c7776e 21-Sep-2015 Samuel Tan <samueltan@google.com> shill: use different service_constants.h path for Android builds

Use the service_constants.h file from the external/cros/system_api/dbus
instead of chromeos/dbus/service_constants.h, since this header file
is installed into different directories when building shill for Android
and Chrome OS.

BUG: 22956441
Change-Id: I7e6ea46b4893588d2862792cf43aa83fdf7c30b4
TEST: shill still compiles using emerge.
/system/connectivity/shill/metrics.cc
d22e24836dc2c6fdd33688394671f7743031ab9d 18-Sep-2015 Samuel Tan <samueltan@google.com> shill: do not use bootstat when building in Android

Do not use bootstat in shill/metrics.cc when building for Android,
since we do not currently plan to collect boot statistics in
Android.

BUG: 22956441
Change-Id: I2aa995902fd30a152fd2084129712d25a6e3ec54
TEST: shill compiles and unit tests pass when building with emerge.
/system/connectivity/shill/metrics.cc
c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5 03-Sep-2015 Peter Qiu <zqiu@google.com> License shill to Apache2

This patch automatically replaced the license on all text files from
Chromium OS (BSD style) to AOSP (Apache2), keeping the original year as
a reference.

The license header was added to .gyp and .gypi, the NOTICE was added with a copy
of the Apache2 license and MODULE_LICENSE_* file was added.

BUG=23587594
TEST=grep 'Chromium OS Authors' doesn't find anything.

Change-Id: If41ede586c2465f5831fb7fee270ff41dbfdb596
/system/connectivity/shill/metrics.cc
d1c7166402c414a851da721c2a3aaec713c25bad 15-Aug-2015 Samuel Tan <samueltan@google.com> shill: log metrics for connection diagnostics issue

Log UMA metrics for the connectivity issue found whenever
ConnectionDiagnostics completes its diagnostics.

Also: add periods at the end of connection diagnostics
issue strings that were not already period-terminated.

BUG=chromium:216691
TEST=Compile shill and run unit tests.

Change-Id: I353fdb6b7d174ef6a3907de43c7299f00b6c5a98
Reviewed-on: https://chromium-review.googlesource.com/293803
Reviewed-by: Samuel Tan <samueltan@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
Tested-by: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/metrics.cc
9dd6d6d37df195759f0f41239b4c4c1edd86c709 25-Jun-2015 Garret Kelly <gdk@chromium.org> shill: PPPDevice: add UMA metric for tracking PPP MTU size

Whenever a PPP connection is made, report the MTU size negotiated via
LCP to UMA.

BUG=chrome-os-partner:41926
TEST=FEATURES=test emerge-amd64-generic shill

Change-Id: I975c22d7891446bae14488d95916761ea9504c79
Reviewed-on: https://chromium-review.googlesource.com/281929
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
c8a1988fba97f8c9e863a08f679a3dde6631ef23 26-Jun-2015 Paul Stewart <pstew@chromium.org> shill: DHCPV4Config: Switch to using sparse histograms

This works better for the type of data being represented: output
is closely clustered around a small set of values, and it is
desired that these values be preserved at their highest fidelity.

BUG=chromium:504591
TEST=Unit tests

Change-Id: Iab278440a37b6a970a209ddcc32c136320c51566
Reviewed-on: https://chromium-review.googlesource.com/282064
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
3d857add8704b1d09cf66054b4e51585be4cfb2f 26-Jun-2015 Paul Stewart <pstew@chromium.org> shill: Metrics: Add SendSparseToUMA

This method adds sparse metrics to the histogram.

BUG=chromium:504591
TEST=Unit tests

Change-Id: Idc5486d6a83151d961aa954e8f5a636fad180f3e
Reviewed-on: https://chromium-review.googlesource.com/282063
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
/system/connectivity/shill/metrics.cc
f923aeb630c2e9d86556bc82710637e05ac63fce 13-Jun-2015 Paul Stewart <pstew@chromium.org> shill: DHCPConfig: Ignore 576 as an MTU value

The minimum IPv4 MTU value, 576, is also used as a failsafe
"I don't know what the MTU is" value. Unfortunately this is
used often enough that it is no longer of practical value as
a parameter to be honored by the DHCP client. This CL adds
logic to ignore this specific value in DHCP negotiation. It
also adds a metric so we can monitor what values appear in the
wild.

As a consequence of this change, DHCP-based networks that
actually have an MTU of 576 will likely not work correctly.
For the network types that this change affects in shill,
namely WiFi, LTE and Ethernet, this is unlikely to be the case.
Nonetheless, it should be noted that such unfortunate networks
will be affected.

This method is implemented in parallel to the minimum MTU
command-line option in order to separate the concerns -- the
minimum MTU parameter specifies a range of MTU values, while
this change is meant to highlight a specific value that should
be disregarded.

BUG=chromium:498358
TEST=Unit test

Change-Id: Ice7310b2ad7dc0092a80d0953757109e956fa4cd
Reviewed-on: https://chromium-review.googlesource.com/277455
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
8ae18741780300de3126826b72593391f2d00313 16-Jun-2015 Paul Stewart <pstew@chromium.org> shill: Top-level files f-m: Switch pointer/ref spacing

Switch to Chrome style spacing.

BUG=chromium:501026
TEST=Unit tests

Change-Id: I107e2f78ca2e3edb3e8b333e2c1792a924361eb3
Reviewed-on: https://chromium-review.googlesource.com/278039
Reviewed-by: Rebecca Silberstein <silberst@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
1a72f5444e077ed21b8e085b17d7f9f1bc44fa5e 15-Apr-2015 Peter Qiu <zqiu@chromium.org> shill: compiler option support for wifi and wired 802.1x

This allows shill to be compiled without wifi and wired 802.1x independently.
The supplicant related code will not be compiled when both wifi and wired
802.1x compiler option are disabled.

BUG=chromium:475665
TEST=USE="asan clang -wifi" FEATURES=test emerge-$BOARD shill
USE="asan clang -wired_8021x" FEATURES=test emerge-$BOARD shill
USE="asan clang -wifi -wired_8021x" FEATURES=test emerge-$BOARD shill
USE="asan clang" FEATURES=test emerge-$BOARD shill
Default shill (including both wifi and wired 802.1x):
Passes wifi_matfunc test suite
shill without wifi
No wifi connectivity
Have ethernet connectivity
Passes network_8021xWiredAuthentication test
shill without wired 802.1x
Have wifi and ethernet connectivity
Fail network_8021xWiredAuthentication test
shill without both wifi and wired 802.1x
No wifi connectivity
Have ethernet connectivity
Fail network_8021xWiredAuthentication test
CQ-DEPEND=CL:265614

Change-Id: I6abaa150657f6ca0f6d5c37229fde9a2c0bb36aa
Reviewed-on: https://chromium-review.googlesource.com/265774
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
/system/connectivity/shill/metrics.cc
029feaca0309984367c2f824957ee250ada45a78 28-Mar-2015 Samuel Tan <samueltan@chromium.org> shill: add dark resume scan retry metrics

Add metrics to track how many dark resume scan retries were launched in each
dark resume, and whether or not these retries led us to re-suspend connected.

Also, remove unnecessary string local variables in
Metrics::NotifyDarkResumeActionsCompleted.

BUG=chromium:471410
TEST=Compile shill and run unit tests.

Change-Id: Ib8c63a3a2b4fe9669e3cf853ee03a8058109661e
Reviewed-on: https://chromium-review.googlesource.com/262906
Tested-by: Samuel Tan <samueltan@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/metrics.cc
d1bec5d563afc9074a1875e2302d5ecf54c95f95 06-Mar-2015 Samuel Tan <samueltan@chromium.org> shill: log metrics when scans are launched in dark resume

Have shill parse NL80211_CMD_TRIGGER_SCAN scan started notifications, and log
metrics if a scan is started in dark resume.

BUG=chromium:462801
TEST=Compile shill and run unit tests.

Change-Id: I920ae3bd1026f5dc2b1e16c71627bcfe13e8b1e1
Reviewed-on: https://chromium-review.googlesource.com/257740
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
Tested-by: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/metrics.cc
a49334304182db378741214a1a82e47351c3fddb 07-Feb-2015 Samuel Tan <samueltan@chromium.org> shill: add wakeup reason metrics

Add metrics to track the wakeup reason received in dark resume, and whether
or not the wakeup reason is received before WakeOnWiFi::OnDarkResume uses it
to perform dark resume actions.

Also:
- Add unit tests for previously untested functions in the Metrics class.
- Rearrange wake on WiFi-related constants in metrics.h and metrics.cc.

BUG=chrome-os-partner:36471
TEST=Compile shill and run unit tests using the following commands:

P2_TEST_FILTER="shill::*" FEATURES="test" \
USE="wake_on_wifi clang asan" emerge-samus shill

P2_TEST_FILTER="shill::*" FEATURES="test" \
USE="-wake_on_wifi clang asan" emerge-samus shill

Change-Id: If20dd0cb903e71fe5b58b15142b2efb008809f7b
Reviewed-on: https://chromium-review.googlesource.com/249423
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Samuel Tan <samueltan@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/metrics.cc
c36b410afd8d68a5ced58b3a937aa4efdde2aa7d 27-Jan-2015 Samuel Tan <samueltan@chromium.org> shill: add metrics for wake on WiFi throttling

Add metric to log whether or not wake on WiFi is disabled
in the duration of a single suspend because of excessive
dark resume wakes.

BUG=chrome-os-partner:35518
TEST=Compile shill and run unit tests using the following commands:

P2_TEST_FILTER="shill::*" FEATURES="test" USE="wake_on_wifi \
clang asan" emerge-samus shill

P2_TEST_FILTER="shill::*" FEATURES="test" USE="-wake_on_wifi \
clang asan" emerge-samus shill

Change-Id: I2c6552d1f2d7b5c6857bf565f65a7c9ecb92b873
Reviewed-on: https://chromium-review.googlesource.com/243428
Tested-by: Samuel Tan <samueltan@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/metrics.cc
ea7dcda5aae9c2579f16b142e5832e8aa7bd7ec4 05-Jan-2015 Samuel Tan <samueltan@chromium.org> shill: add 10 seconds to max dark resume delay

Add an additional 10 seconds to the max dark resume
delay so that shill can establish a connection with APs
that take longer to issue DHCP leases.

BUG=chromium:443458
TEST=Perform the following manual test twice, using the Netgear WNDR3400v3 as
the AP on the first run, and the D-Link DGL-5500 as the AP on the second run:
1) Boot into a samus test image.
2) Run 'ff_debug +wifi; ff_debug --level -3'
3) Run 'echo 0 > /var/lib/power_manager/disable_dark_resume; restart \
powerd'
4) Enable all wake on WiFi features with the following command:
dbus-send --system --print-reply --dest=org.chromium.flimflam \
/device/wlan0 org.chromium.flimflam.Device.SetProperty \
string:WakeOnWiFiFeaturesEnabled \
variant:string:"packet_and_ssid"
5) Set the wake-to-scan frequency to 60 seconds with the
following command:
dbus-send --system --print-reply --dest=org.chromium.flimflam \
/device/wlan0 org.chromium.flimflam.Device.SetProperty \
string:WakeToScanFrequency variant:uint32:60
6) Connect samus to an AP.
7) Disable the AP. Verify that the samus is fully disconnected by the WiFi
icon state (a cross over empty WiFi bars).
8) Run 'powerd_dbus_suspend' to suspend the system.
9) Wait for the samus to fully suspend. You can verify this by observing that
the light bar turns off. Then, immediately re-enable the AP.
10) Wait ~50 more seconds and verify that the samus wakes on dark resume
by observing that light bar turns on while the screen is off.
11) Wait again till the samus completes dark resume and suspends again.
12) Wake the samus by pressing any key.
13) Verify that the samus is connected immediately upon waking by observing that
the WiFi icon is in the connected state (i.e. solid, filled bars).

Change-Id: Iaff9a8e4a7a4451f9ae2238f72d82bb3ed466c96
Reviewed-on: https://chromium-review.googlesource.com/238890
Tested-by: Samuel Tan <samueltan@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@google.com>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/metrics.cc
0e0ac0de9ac592495f780d7c372ba1212d4d374c 30-Dec-2014 Samuel Tan <samueltan@chromium.org> shill: metrics: add metrics to track receipt of unmatched scan results

Add metric that tracks how often shill receives scan results from
a scan not initiated directly by shill in the current dark resume
cycle.

BUG=chromium:444652
TEST=Compile shill.

Change-Id: Ife09a75cc131cffaba0863b7211a4bb36f90a0c9
Reviewed-on: https://chromium-review.googlesource.com/237960
Reviewed-by: Samuel Tan <samueltan@chromium.org>
Tested-by: Samuel Tan <samueltan@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/metrics.cc
1964b5de186ef06fa89a78b27c3a112686bc36f7 02-Dec-2014 Samuel Tan <samueltan@chromium.org> shill: add metric for WiFi connection status after wake

Add metric that tracks if the WiFi device is connected to
a service after waking from suspend, if the relevant wake
on WiFi features are enabled and supported.

Also added unit tests for previously WiFi metrics reporting
functions.

BUG=chromium:427731
TEST=Compile shill and run unit tests using:

P2_TEST_FILTER="shill::*" FEATURES="test" USE="wake_on_wifi \
clang asan" emerge-samus shill

P2_TEST_FILTER="shill::*" FEATURES="test" USE="-wake_on_wifi \
clang asan" emerge-samus shill

Change-Id: Ie1251e455bab3b5bb9f9e666c83a466a06079979
Reviewed-on: https://chromium-review.googlesource.com/232816
Tested-by: Samuel Tan <samueltan@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/metrics.cc
f144d5df124e56f3df3b6982b85bffd0442ac2d0 26-Nov-2014 Samuel Tan <samueltan@chromium.org> shill: add metrics for VerifyWakeOnWiFiSettings

Add metrics to report the results of VerifyWakeOnWiFiSettings.
This will provide data to understand whether or not the wake on
WiFi setting verification process is necessary.

Also:
- Add unit tests to ensure the metric is reported in WakeOnWiFi.
- Remove previously unused mock method in MockMetrics.
- Remove unnecessary virtual flag from
Metrics::NotifyWakeOnWiFiFeaturesEnabledState since this
function is not mocked.

BUG=chromium:436106
TEST=Compile shill and run unit tests.

Change-Id: I95a2d1296841545a7c31439ec4c748e359316ea2
Reviewed-on: https://chromium-review.googlesource.com/231973
Tested-by: Samuel Tan <samueltan@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/metrics.cc
3294d46559f92ef268f1ca57604659ee91565e2d 19-Nov-2014 Samuel Tan <samueltan@chromium.org> shill: metrics: move WakeOnWiFiFeaturesEnabledState to WiFi subdomain

Rename the WakeOnWiFiFeaturesEnabledState metric so that it
belongs to the WiFi metrics subdomain (i.e. Network.Shill.WiFi instead
of Network.Shill).

BUG=chromium:427731
TEST=none.

Change-Id: I12be2e23a6d7e3de8e69082de9e63f2faec04e40
Reviewed-on: https://chromium-review.googlesource.com/230631
Tested-by: Samuel Tan <samueltan@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/metrics.cc
d6a8b519e3057f52313e502f502a4819a942e089 18-Nov-2014 Ben Chan <benchan@chromium.org> shill: wifi: Move wifi code to its own sub-directory.

This CL is part of a series of CLs, which aim to reorganzie shill's flat
source code structure into a more modular form by moving technology
specific code into their own sub-directories.

BUG=chromium:433419
TEST=`FEATURES=test emerge-$BOARD shill`
TEST=`USE='clang asan' FEATURES=test emerge-$BOARD shill`

Change-Id: Ic6bf64e7fe263fd0b2277877d78cf776f179e7d7
Reviewed-on: https://chromium-review.googlesource.com/230460
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/metrics.cc
66bddc67c71dd197211ca08c5a4835bd6cfa5ed2 14-Nov-2014 Samuel Tan <samueltan@chromium.org> shill: add metrics for reporting wake on WiFi features enabled

Periodically report the wake on WiFi features enabled at
run-time to metrics.

Also:
- Remove manager_ from WakeOnWiFi since it is not used.
- Add unit tests for WakeOnWiFi::SetWakeOnWiFiFeaturesEnabled.

BUG=chromium:427731
TEST=Run shill unit tests using the following commands:

P2_TEST_FILTER="shill::*" FEATURES="test" USE="wake_on_wifi \
clang asan" emerge-samus shill

P2_TEST_FILTER="shill::*" FEATURES="test" USE="-wake_on_wifi \
clang asan" emerge-samus shill

Change-Id: If0b79d2a7ff39116baeaa2d5fa57a18a3a8bce14
Reviewed-on: https://chromium-review.googlesource.com/229840
Reviewed-by: Samuel Tan <samueltan@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
Tested-by: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/metrics.cc
c9c31d8497c3f053c2160408cc386010fc125fad 22-Oct-2014 Rebecca Silberstein <silberst@chromium.org> shill: add object id to scoped log messages

Add object identifier (DBus::Path) string to scoped logging messages. If
the logging message is called from a static method, SLOG will be called
with nullptr and the log will use (anon) for the object id. Objects
without identifying information will use the (class_name) as their logged
identifier.

BUG=chromium:403996
TEST=ran unit tests and manually inspected net.log

Change-Id: Idf23911a303f5edc4b82917bf1e2cea3f8e44e60
Reviewed-on: https://chromium-review.googlesource.com/224812
Tested-by: Rebecca Silberstein <silberst@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Rebecca Silberstein <silberst@chromium.org>
/system/connectivity/shill/metrics.cc
02e3dc3bc6e9fdb475bd13944f1c6764c921abbb 31-Oct-2014 Peter Qiu <zqiu@chromium.org> shill: Move netlink functionality to libshill-net shared library

By exporting netlink functionality to a shared library, other
applications can use the interfaces provided by this library
to communicate with the cfg80211 kernel module and mac80211 drivers.

To use this library, add dependency for libshill-net-<(libbase_ver) in
your gyp file, and include the headers from <shill/net/*>

BUG=chromium:427982
TEST=unittests, run wifi_matfunc suite for shill regression test

Change-Id: Ia8ea063daaa63de27fe81e153458e149586086ec
Reviewed-on: https://chromium-review.googlesource.com/226830
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/metrics.cc
68b73d232e8a03ed55401f36ea1a72a2b69cf912 29-Oct-2014 Samuel Tan <samueltan@chromium.org> shill: make Manager::OnDarkSuspendImminent asynchronous

Use a ResultAggregator to make Manager::OnDarkSuspendImminent
asynchronous. This mirrors the approach used to make
Manager::OnSuspendImminent asynchronous in CL:218551.

Also:
- Add appropriate metrics for DarkResume actions.
- Added calls to SuspendAction metrics in the suspend actions
code path, and modified some calls that wrongly collected
termination action metrics.

BUG=chromium:428167
TEST='P2_TEST_FILTER="shill::*" FEATURES="test" USE="clang asan"
emerge-samus shill' succeeds.

Change-Id: I7b0a0e32a708479a4f1127ff1f587fd7ce3e803f
Reviewed-on: https://chromium-review.googlesource.com/226123
Tested-by: Samuel Tan <samueltan@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/metrics.cc
fbe8d2b361a51e89fcf1207050729be86a961f5f 16-Sep-2014 Samuel Tan <samueltan@chromium.org> shill: use ResultAggregator for device suspend actions

Use ResultAggregator to have manager asynchronously execute each device's
suspend actions before a system suspend takes place. The previous
implementation executed these suspend actions synchronously and used
a HookTable for other termination/suspend actions. This implementation does
not change the use of the HookTable for termination action, but
uses only a ResultAggregator to wait for asynchronous suspend actions.

Manager now creates a ResultAggregator in OnSuspendImminent() and passes
a callback to every device as an argument to OnBeforeSuspend(). Each
device then performs synchronous actions and/or posts asychronous tasks
in OnBeforeSuspend(), and is responsible for running the received
callback after completing these actions.

Also:
- rename RetrySetWakeOnPacketConnection to RetryApplyWakeOnWiFiSettings
for consistency.
- add detailed documentation to result_aggregator.h explaining and
stating the conventions to be followed when using ResultAggregator.
- remove TerminationActionReason from metrics and add separate
Termination action and Suspend action metrics in preparation for
complete splitting of termination and suspend action codepaths.

BUG=chromium:390668
CQ-DEPEND=CL:223098
TEST='P2_TEST_FILTER="shill::*" FEATURES="test" USE="clang asan"
emerge-samus shill' succeeds.

Change-Id: I5a9d9039669a822e0cb82bf6784522f1ce86a966
Reviewed-on: https://chromium-review.googlesource.com/218551
Reviewed-by: Samuel Tan <samueltan@chromium.org>
Tested-by: Samuel Tan <samueltan@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/metrics.cc
cc225ef3b77b5e098cc12c661a947e1737480777 30-Sep-2014 Ben Chan <benchan@chromium.org> shill: Replace NULL with nullptr.

BUG=None
TEST=`USE=wimax FEATURES=test emerge-$BOARD shill`

Change-Id: I30ab47ff32dcadad09ae7a2baf4d4123a6ef0d8e
Reviewed-on: https://chromium-review.googlesource.com/220657
Reviewed-by: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/metrics.cc
facf7ad71dd19d113f1457d89e186d5356b130b7 01-Oct-2014 mukesh agrawal <quiche@chromium.org> shill: add metrics identifiying the source of wifi services

Services can be configured in the default (system-wide) profile,
or in user-specific profiles. We'd like to know how different types
of WiFi services are configured.

For unencrypted networks, we expect that all will be in the default
profile. This is because Chrome always configures such networks into
the default profile.

For encrypted networks, the answer is less clear. The answer depends
on whether the network was set up before login (in which case it will
be in the default profile), or after login (in which case the logged
in user can choose whether the network is in the default profile, or
the user's profile).

Add a couple of new metrics, to help us figure out what the world
looks like.

While there: move the remembered network count reporting code to
using std::count_if.

BUG=chromium:418723
TEST=unit tests (on peppy)

Change-Id: I3a6bc7324e13d2fa6bcb659b500b9a7c85222913
Reviewed-on: https://chromium-review.googlesource.com/220671
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/metrics.cc
a0572036bd4374282fb26e861e7a242fe55a54a3 26-Sep-2014 Peter Qiu <zqiu@chromium.org> shill: Report network signal strength when link is perceived as unreliable.

Link is perceived as unreliable when more than one link monitor failures are
detected on the same network within the last 5 minutes. AP usually performs
rekey operation every 60 minutes, so the consecutive failures are most
likely related to the quality of the link (bad signal or noisy env).

Signal strength reported here is the normalize value, (120 + -dbm) in the
case of WiFi.

BUG=chromium:416631
TEST=unit tests

Change-Id: I6e20eb48405eec77a3fafb123babfb9dd823a5c3
Reviewed-on: https://chromium-review.googlesource.com/220170
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/metrics.cc
27df364826f6f8ac5eb36b8e62f2960516cf9b1b 19-Sep-2014 Peter Qiu <zqiu@chromium.org> shill: Map service failures to integer values for metric reporting.

Currently, the metric reporting for service errors use the ConnectFailure
enum directly, where the elements of the enum are kept in alphabetical order.
So when new element is added, some of the buckets get shift around.

Explicitly map the elements in ConnectFailure Enum to integer values,
and use those integer values for metric reporting.

BUG=chromium:402202
TEST=unit tests, manual test
Manual Test:
1. Initiate a connection to a password protected AP, and enter a
random password. The connection should fail with bad passphrase
error.
2. Browse to "Chrome://histograms", verify there is a hit for bucket
3 (bad passphrase) for histogram "Network.Shill.ServiceErrors".

Change-Id: I75df436f1d746b318ec0f3e10af49a93f5eca465
Reviewed-on: https://chromium-review.googlesource.com/219070
Tested-by: Peter Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/metrics.cc
9f5159e07028a01e1353d68bc19da9817a6785fe 13-Sep-2014 Peter Qiu <zqiu@chromium.org> shill: Add a metric for tracking device removed event

Device removed events are being tracked per technology type.

BUG=chromium:411512
TEST=unit tests, manual test
Manual Test:
1. Start a peppy device, then reload the wifi (ath9k) driver with
"rmmod ath9k_btcoex" then "modprobe ath9k_btcoex".
2. Browse to "chrome://histograms", verify there is a histogram
"Network.Shill.DeviceRemovedEvent" with hit for bucket 2 (wifi).

Change-Id: Ib48202fb3aecf40e82de973526b26b6ac9702450
Reviewed-on: https://chromium-review.googlesource.com/217969
Tested-by: Peter Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/metrics.cc
94d18aff4f9f26e08929add6f5376f3df546d89e 12-Sep-2014 Peter Qiu <zqiu@chromium.org> shill: Add new metrics for tracking device presence status per technology

The new metrics will track the presence or absence of a device of
each technology type.

BUG=chromium:411510
TEST=unit tests, manual test
Manual Test:
1. Log in to a peppy device, wait around 3 minutes.
2. Browse to "chrome://histograms", verify histogram
"Network.Shill.Ethernet.DevicePresenceStatus" with a hit for
bucket 1 (present), "Network.Shill.Wifi.DevicePresenceStatus"
with a hit for bucket 1 (present),
"Network.Shill.Cellular.DevicePresenceStatus" with a hit for
bucket 0 (not present), and "Network.Shill.Wimax.DevicePresenceStatus"
with a hit for bucket 0 (not present).

Change-Id: I1571bdbaf2abf7d2fc909389638105e4213dce5a
Reviewed-on: https://chromium-review.googlesource.com/217786
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/metrics.cc
3d49ea435a59436f762c2cc5e750ff27ece0d3c5 21-Aug-2014 Rebecca Silberstein <silberst@chromium.org> shill: Create ConnectivityTrial class to hold logic for connection tests

Create a new class, ConnectivityTrial, that contains the logic and handling
for each attempt in portal detection. This separates the higher level logic
of retries and maximum number of attempts from the individual connection tests.

This architectural change enables code-reuse for an upcoming feature for on
demand connection testing.

BUG=chromium:402888
TEST=ran shill unit tests and tested on peppy

Change-Id: I90d2bca4cd0778c3aeac82677b675247769a5597
Reviewed-on: https://chromium-review.googlesource.com/216505
Commit-Queue: Rebecca Silberstein <silberst@chromium.org>
Tested-by: Rebecca Silberstein <silberst@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
300769ea57941a26bccfa7fe1e1cc4d9ad96b23e 27-Aug-2014 Peter Qiu <zqiu@chromium.org> shill: Add UMA stats for tracking IPv6 connectivity

When a device is connected, report the IP type of its connection and
existence of complete IPv6 configuration (contain both global scope
addresses and DNS servers) to UMA stats.

BUG=chromium:207192
TEST=unit tests, manual
Manual Test:
1. Connect a Chrome device to "GoogleGuest", then browse to
"chrome://histograms", and verify there is a histogram for
"Network.Shill.Wifi.NetworkConnectionIPType" with a hit for bucket 0
(IPv4 connection) and a histogram for
"Network.Shill.Wifi.IPv6ConnectivityStatus" with a hit for bucket 0
(no complete IPv6 configuration).

Change-Id: I91dc72255e56a9cf24eaa85d77e8d23dcfc01783
Reviewed-on: https://chromium-review.googlesource.com/214504
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/metrics.cc
f734873a420bbdb8a666ccba226e20e6d971215f 07-Aug-2014 mukesh agrawal <quiche@chromium.org> shill: mac80211_monitor: add metrics

Add metrics reporting, so that we know how often the mac80211
TX queues are getting stuck.

BUG=chromium:392209
TEST=unit tests

Change-Id: I56874da399ec47a19bc1ba3a3796b0a922da2ce6
Reviewed-on: https://chromium-review.googlesource.com/211707
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/metrics.cc
7fab89734d88724a288e96a9996b15548c5294c7 11-Aug-2014 Ben Chan <benchan@chromium.org> shill: Use integer types from stdint.h

This CL replaces the deprecated int* and uint* types from
'base/basictypes.h' with the int*_t and uint*_t types from 'stdint.h'.

BUG=chromium:401356
TEST=`USE='cellular gdmwimax wimax' FEATURES=test emerge-$BOARD platform2`

Change-Id: I3d4c195881203dd2a47dbb5af150b6c90b9c206e
Reviewed-on: https://chromium-review.googlesource.com/211770
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/metrics.cc
4ef524d362dd96f987cf34ed412486a7ed0d9863 23-Jul-2014 Paul Stewart <pstew@chromium.org> shill: WiFiProvider: Emit metrics for remembered WiFi Services

Whenever a profile is loaded, emit an UMA metric indicating how
many WiFi services are now configured by a non-ephemeral profile.
This will allow us to maintain statistics on how many WiFi
services users tend to have at once.

BUG=chromium:396785
TEST=Unit tests + manual: restart shill while logged in, browse to
chrome://histograms and note there are now two (more)
"Network.Shill.RememberedWiFiNetworkCount" metrics -- one when the
default profile was loaded, and one for when the user profile
loaded.

Change-Id: Ia63806106cb88d230e71ce9dde5f81749918b46a
Reviewed-on: https://chromium-review.googlesource.com/209624
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
a72a79ca06e42b537a7785a00303c5af11d3f768 21-Jul-2014 Paul Stewart <pstew@chromium.org> shill: Metrics: Small histogram mods for DHCP

Responding to feedback for histograms.xml, I've made two small
changes:

- Changed from "Dhcp" to "DHCP" in the histogram name in order
to harmonize with "Network.Shill.DHCPOptionFailureDetected".
- Changed the enum to be 0-based instead of 1-based.

BUG=chromium:384897
TEST=Unit tests

Change-Id: If346f0aba04fd77c399ffbebe75631be71a3ba98
Reviewed-on: https://chromium-review.googlesource.com/209171
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
3bdf1abfba480415a4714108e615649f422197e0 18-Jul-2014 Paul Stewart <pstew@chromium.org> shill: DHCPClient: Output status metrics

Output metrics about the DHCP client status whenever this state
changes. This will allow us track aggregate activity so we can
track the efficacy of the various DHCP client features.

BUG=chromium:384897
TEST=Unit tests + manual: restart shill and browse to chrome://histograms

Change-Id: I8e9628243c8b9b6e8bd0270e86795737a2f75846
Reviewed-on: https://chromium-review.googlesource.com/208825
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
d87179e93502d72d20e31f0d6233736213a0545b 11-Jul-2014 Peter Qiu <zqiu@chromium.org> shill: Report failure reasons for user-initiated conenction attempts

When user-initiated connection attmpts failed, report the failure
reasons to UMA stats.

BUG=chromium:392965
TEST=unit tests, manual test
Manual Test
1. Manually connect a chrome device to an unknown hidden SSID.
2. Browse to "chrome://histograms", and make sure there is a histogram
for "Network.Shill.WiFi.UserInitiatedConnectionFailureReason" with
a hit for bucket 9 (Out-of-range).

Change-Id: Id051fc2c2bebf7cde4363e2e1716a4a7cc4fe948
Reviewed-on: https://chromium-review.googlesource.com/207617
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/metrics.cc
700de6400c18f8cba77821f8cd2a1935b96999a6 15-Jul-2014 Peter Qiu <zqiu@chromium.org> shill: Reporting of device's connection status

Report device's connection status to UMA stats periodically. Possible status
are offline (not connected to an AP), connected (connected to an AP), and
online (connected to an AP with internet connectivity). When the device is
in online state, it will report both connected and online to UMA stats.

This data will allow us to determine the percentage of time when the device
have internet connectivity, also the percentage of time when the device is
connected to an AP but without internet connectivity.

While at it, update the old IsOnline function in manager.cc to IsConnected
to be more semantically correct, since that function return true if there is a
service that's in connected or above state. And Add a new IsOnline function
which will return true only if there is a service that's in online state.

BUG=chromium:392990
TEST=unit tests, manual
Manual Test:
1. Boot up a chrome device without any network connectivity.
2. Wait for 3 minutes, and browse to "chrome://histograms", veriyf
there is a histogram for "Network.Shill.DeviceConnectionStatus"
with a hit for bucket 0 (offline).
3. Connect the chrome device to an AP without internet connectivity.
4. Wait for 3 minutes, and browse to "chrome://histograms", verify
there is a hit for bucket 1 (connected) for histogram
"Network.Shill.DeviceConnectionStatus".
5. Connect the chrome device to an AP with internet connectivity.
6. Wait for 3 minutes, and browse to "chrome://histograms", verify
there sia hit for bucket 1 (connected) and 2 (online) for
histogram "Network.Shill.DeviceConnectionStatus".

Change-Id: I1a949b17398214d745ca1d5a37e35202e087181a
Reviewed-on: https://chromium-review.googlesource.com/207960
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/metrics.cc
7b5cee92f29791ebd3867b858fc1d301b39d26bd 25-Jun-2014 Paul Stewart <pstew@chromium.org> shill: Service: Remove DHCP minimal config code

This code does not end up being very useful (as evidenced by
UMA stats) and can reduce functionality in infrastructures
that require the use of some DHCP options.

This reverts commit 26a997b04bd65a6252987ea6fdcbbb70785d1d8d,
except for the cleanup of "*service" in unit tests and the
setting of SelectedService in ethernet.cc.

BUG=chromium:360452
TEST=Unit tests

Change-Id: Ib2c49fc5639452bfffd5cd03c1bb69e32568cc60
Reviewed-on: https://chromium-review.googlesource.com/205588
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
8a5322984f2d81bcbfd8d44c59747a11bd9b904b 17-Jun-2014 Alex Vakulenko <avakulenko@chromium.org> shill: Fix most of warnings from cpplint

Fix most cpplinter's warnings. On a few occasisions, the warnings
produced were false-positives, so added explicit // NOLINT comment
overrides.

There were a few instances of disallowed non-const reference usage
(reported as runtime/reference error by cpplint) for
"DBus::Error &error" which should potentially be changed
to pointers to comply with C++ coding style but I will let Shill
owners do that since there is quite a few of those and the
change isn't brain-dead simple...

BUG=None
TEST=platform2 still compiles and all unit tests pass.

Change-Id: Ic2e31896aa13d20eeb1a85dee74f3db8cccfde2e
Reviewed-on: https://chromium-review.googlesource.com/204164
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
/system/connectivity/shill/metrics.cc
f18e7717c642dcfd6b4dbe1f01f50e2d9671f5ce 20-May-2014 Peter Qiu <zqiu@chromium.org> Update FallbackDNSTestResult metric.

Update the metric for FallbackDNSTestResult to be technology specific.

BUG=chromium:366301
TEST=unit tests, manaul
Manual Test:
1. Connect a chrome device to an AP with no internet access, then
browse to "chrome://histograms" and verify there is a histogram
for "Network.Shill.Wifi.FallbackDNSTestResult".

Change-Id: I12606d34bede86557d00e0cb5b32b0c12ad37710
Reviewed-on: https://chromium-review.googlesource.com/200573
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/metrics.cc
dc335f81a9d0ffe8efd02a96d3cd17399a06e61e 15-May-2014 Peter Qiu <zqiu@chromium.org> UMA Metric for reporting network problem while connected.

Added a UMA metric for reporting network problem while connected to
a network. Network problem is detected by TrafficMonitor. Max of one
network problem will be reported per connection.

BUG=chromium:374274
TEST=unit tests, manual
Manual Test:
1. Connect a chrome device an AP without internet access.
2. Wait for few minutes, then browse to "chrome://histograms", and verify
there is a histogram for Network.Shill.Wifi.NetworkProblemDetected".

Change-Id: Iad019d147feebcd429445c687a7c37d8e1e281f9
Reviewed-on: https://chromium-review.googlesource.com/200469
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/metrics.cc
b9256f3d485e4c6c5c301a0aa00554059473b41d 10-May-2014 Peter Qiu <zqiu@chromium.org> Add metric for broken DNS configuration.

Attempt a DNS test using Google's public DNS server if portal detection
failed due to DNS failure, and report the result of the DNS test
to UMA metric.

BUG=chromium:366301
TEST=unit tests, manual
Manual Test:
1. Connect a chrome device to an AP with no internet access,
then browse to "chrome://histograms" and verify there is a
histogram for "Network.Shill.DNSTestResult" with a hit for
value 1 (Failure).
2. Manually update the code to perform DNS test when portal detection
succeed. Connect a chrome device to "GoogleGuest", and verify
there is a hit for value 0 (Success) for the histogram
"Network.Shill.DNSTestResult".

Change-Id: I8cb22f7664fcfa7fd08d3d3dd24902f7896a4e3e
Reviewed-on: https://chromium-review.googlesource.com/199174
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/metrics.cc
dc4e099103a56f0427ed0969fea2c46c88ab2e9e 01-May-2014 Peter Qiu <zqiu@chromium.org> Metric report for result of user-initiated wifi connection

Added an UMA metric for result of user-initiated wifi connection.

BUG=chromium:369135
TEST=unit tests, manual
Manual Test:
1. Initiate a connection to a wifi service on a chrome device.
2. Browse to "chrome://histograms" after connection is established.
3. Verify there is a historgram for
"Network.Shill.WiFi.UserInitiatedConnectionResult", and there
is a hit for value 0 (success).
4. Initiate a connection to a secure wifi service, and intentionally
enter a wrong password.
5. Browse to "chrome://histograms" after connection is failed, and
verify there is a hit for value 1 (failure).
6. Initiate a connection to a wifi service, and then initiated another
connection to a different wifi service before the connection is
established to the first wifi service.
7. Browse to "chrome://histograms", verify there is a hit for
value 2 (aborted).

Conflicts:
metrics.cc
metrics.h
metrics_unittest.cc
mock_metrics.h

Change-Id: I6d7ffe9f73334715775d76d17a9b977a926c4b94
Reviewed-on: https://chromium-review.googlesource.com/197813
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/metrics.cc
8e43058d862502b49c769742f6d5e61e28286254 30-Apr-2014 Peter Qiu <zqiu@chromium.org> UMA metric reporting for WIFI TX bitrate.

Added UMA metric for WIFI TX bitrate, which is reported every
minute when wifi is connected.

BUG=chromium:368761
TEST=unit tests, manual
Manual Test:
1. Connect a chrome device to a wireless AP
2. Browse to "chrome://histograms", and verify there is a histogram
for "Network.Shill.WiFi.TXBitrate"

Conflicts:
metrics.cc
metrics.h
metrics_unittest.cc
mock_metrics.h

Change-Id: Ib4280f2df89269f30fb988904b97d35c16569218
Reviewed-on: https://chromium-review.googlesource.com/197731
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/metrics.cc
6db7b24348e69639e19cd6c408388b10d6ee54fe 03-May-2014 Paul Stewart <pstew@chromium.org> shill: Remove trivial use of iterators

Move trivial iterations through containers from using an iterator
to using range-based for loops. In instances where it makes sense
also use "auto" for iterators in non-trivial for loops as well.

BUG=None
TEST=Unit tests

Change-Id: I840d90fb62dc96d45f63144462b9a53b28c25ee9
Reviewed-on: https://chromium-review.googlesource.com/198051
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
e783f1c2004e35db6eff036e5d7b3a5b99b724ff 02-May-2014 Peter Qiu <zqiu@chromium.org> UMA metric reporting for user-initiated wifi scan.

Created a historgram for reporting user-initiated network events,
and add an entry for user-initiated wifi scan.

Also changed the histograms for DHCPOptionFailure. Instead of having
one histogram per technology type, changed to one histogram with one
entry per technology type.

BUG=chromium:369545
TEST=unit tests, manual
Manual Test:
1. On a chrome device, open the network menu in chrome to
initate wifi scan.
2. Browse to "chrome://histograms" to verify there is a histogram
for "Network.Shill.UserInitiatedEvents", and a hit for value
0 (WifiScan).

Change-Id: I6a34ed3906cdfd1d74f104e2670d78dec1768e3f
Reviewed-on: https://chromium-review.googlesource.com/197988
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/metrics.cc
0dd90df64398223e52446bdab92f67d241b86fc7 29-Apr-2014 Peter Qiu <zqiu@chromium.org> Correct histograms name.

Correct histograms name for wifi network selection related metrics.

BUG=None
TEST=unit tests

Change-Id: I15ba7e319b2a48b3251fd8c9bb2a704454ba0505
Reviewed-on: https://chromium-review.googlesource.com/197543
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/metrics.cc
132e96ff1c3dade1b08cdae82b0f4ed27a9a45d0 24-Apr-2014 mukesh agrawal <quiche@chromium.org> shill: metrics: better encapsulate metric naming

Prior to this CL, Metrics exposed metric names as a bunch of
format strings. Other classes (e.g. Device, WiFiService) would
pass these format strings in to Metrics::GetFullMetricName, to
get the metric name including the technology type.

Exposing the format strings to other modules is unnecessary,
and makes it difficult for the compiler to check that the
format string matches the parameters used in the body of
GetFullMetricName. This leads g++ to generate warnings if
-Wformat-nonliteral is enabled.

Re-factor the code so that the format string lives inside
of Metrics::GetFullMetricName. This way, g++ can check
the format strings against the remaining arguments to
base::StringPrintf. Then -Wformat-nonliteral doesn't
generate warnings for Metrics.

We'll enable (or, more precisely, stop disabling)
-Wformat-nonliteral in a later CL, after fixing some other
code that triggers the warning.

BUG=chromium:293668
TEST=unit tests

Change-Id: Ic6f533e02a5e882d8454548602dfdbd5630ab887
Reviewed-on: https://chromium-review.googlesource.com/197039
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/metrics.cc
fac0953b10f3c13f47ecd588c0f9a0382bc32776 18-Apr-2014 Daniel Erat <derat@chromium.org> shill: Use SuspendDone signal instead of PowerStateChanged.

PowerStateChanged will be removed from powerd soon; clients
should use SuspendImminent and SuspendDone instead.

Also simplify the interface exposed by PowerManager for
adding and removing suspend delays.

BUG=chromium:359619
TEST=updated tests

Change-Id: I7f96774570170591c2e5944245c368e165aaf972
Reviewed-on: https://chromium-review.googlesource.com/195690
Reviewed-by: Daniel Erat <derat@chromium.org>
Tested-by: Daniel Erat <derat@chromium.org>
Commit-Queue: Daniel Erat <derat@chromium.org>
/system/connectivity/shill/metrics.cc
39d4af0d78ed7c91bc52c5882877989f8d4fed5d 14-Apr-2014 Peter Qiu <zqiu@chromium.org> Metric reporting for services on the same network.

Added metric for reporting number of services that are connected
to the currently connected network.

BUG=chromium:359302
TEST=unittest

Change-Id: I8a88cea19c4d956ef5242fdfb0419c1ca79bc003
Reviewed-on: https://chromium-review.googlesource.com/194820
Tested-by: Peter Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/metrics.cc
574996af8ed3e3c2fe2bc16970f73c665296cfcc 04-Apr-2014 Peter Qiu <zqiu@chromium.org> Add metrics for effectiveness of wifi network selection.

Report number of auto connectable wifi services available when
auto connect is started for wifi.
Report number of BSSes associated with a wifi service when connecting
to that service.

BUG=chromium:230884
TEST=unittest, manual
1. Connect a peppy to GoogleGuest.
2. Browse to "chrome://histograms", and verify histogram for
Network.Shill.wifi.AvailableBSSesWhenConnect existed.
3. Verify GoogleGuest is in Preferred Network
4. Restart shill to start auto connect.
5. Browse to "chrome://histograms", and verify histogram for
Network.Shill.wifi.AutoConnectableServices existed.

Change-Id: I5315210944e8f5a5a2253562f680de8217963024
Reviewed-on: https://chromium-review.googlesource.com/193226
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/metrics.cc
a0ddf46e466bd4ba3d20952f0a6988c680c1af14 06-Feb-2014 Ben Chan <benchan@chromium.org> shill: Update to build against libchrome-242728.

BUG=chromium:341521
CQ-DEPEND=CL:193660
TEST=Tested the following:
1. `FEATURES=test USE='cellular wimax' emerge-$BOARD platform2`
2. Run the following tests:
- network_3GSmokeTest
- network_VPNConnect.*
- network_WiMaxSmoke
- wifi_matfunc

Change-Id: Ic1553c182ab7a833a68c45f012f646b8930cb095
Reviewed-on: https://chromium-review.googlesource.com/193606
Reviewed-by: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/metrics.cc
1f916e4adae8f937b9023e74307bde8ef8743282 23-Dec-2013 Paul Stewart <pstew@chromium.org> shill: DhcpConfig: Vacate lease if it expires

If the DHCP client fails to renew a lease, we should disconnect
the service, and stop using the IP address. We implement this
by adding a timer to the DHCPConfig that re-starts the DHCP
instance if the lease is not renewed before the lease expires.
This covers a variety of situations where the DHCP client was
unable to acquire a lease in time:

- The DHCP server was actively denying a renewal
- The DHCP server stopped responding responding
- The DHCP client encountered some failure but didn't exit

By restarting the DHCP instance, we start a fresh DHCP process
with a new acquisition timer. If this acquisition process times
out the service will disconnect with a DHCP failure.

BUG=chromium:216710
TEST=Unit tests; modified network_DhcpRenew autotest (CL:181069)

Change-Id: I63037246f9fefca65a4c0f5ca30a29ac39a51662
Reviewed-on: https://chromium-review.googlesource.com/181133
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
dded00702cf33f15b1f2eaafbbaccc13231e08d8 24-Oct-2013 Paul Stewart <pstew@chromium.org> shill: Service: Track DHCP failures and inform ShouldUseMinimalDHCPConfig()

The default DHCP configuration used by ChromeOS requests a
large number of options in order to support features like
Web Proxy Auto-Discovery. Unfortunately this practice
sometimes runs afoul of issues in some network topologies.
In some networks, a large number of option values in the
DHCP response can cause MTU problems with proxies or other
network elements. This may prevent the reply from being
forwarded back to the client.

Although the problem may not lie with the outgoing request,
it may be possible to mitigate this issue by modifying these
requests. This CL provides a means for the Service to track
such failures and infer from a series of experiments whether
it is likely to be due to an MTU issue. To do this, the
Device informs the selected Service of each DHCP success and
failure, and queries the Service before starting each DHCP
session to inquire whether it should request an extensive or
minimal DHCP options from the server.

In order to detect and respond to such issues, this CL
maintains state in the Service about how DHCP has been
performing. If there have been a spate of recent DHCP
failures, we should suspect that this may be due to the
number of options we are requesting from the DHCP server.

We should confirm that this is in fact the issue by testing
whether a request for a smaller response succeeds. If this
request succeeds we can consider the hunch confirmed and the
client should switch to using small requests for some period
of time. If our test request fails, we can assume for now
that the problem isn't realated to a DHCP response size and
return to the default behavior.

If we have confirmed our hunch earlier and the time period
expires, we should try again to use a more comprehensive
DHCP request. If this succeeds, we can assume either the
network infrastructure has repaired itself or that the
previous hunch was in error, and return to the "not
detected" state. If it fails, we should confirm whether
this is the identical problem to before by re-testing a
small DHCP request size. Since the "confirmed" state did
not pay attention to DHCP failures, it's possible that they
have been failing across the board as of late. If indeed
both large and small DHCP responses fail to reach us, we
should put off our re-test until we start receiving DHCP
replies again.

The state machine implemented for DHCP failures is
illustrated in state machine diagram below (all events not
shown do not cause a state change):

[ Not Detected (send full request) ] <------------
| ^ |
| | |
n * failure failure |
| | |
V | |
[ Suspected (send minimal request) ] |
| |
success |
| |
V |
[ Confirmed (send minimal request) ] |
^ | |
| hold timer elapsed |
| | |
success V |
| [ Retest Full Request ] ----success--/
| | ^
| failure |
| | |
| V |
[ Retest Minimal Request ] |
| success
failure |
| |
V |
[ Retest With No Reply (send minimal requests) ]

The Service only persists two states: "Not Detected" and
"Confirmed". This is done via the presence or absence of
the stored "LastDHCPOptionFailure" property, which is the
time the system last entered the "Confirmed" state. A
third state, "Reset Full Request" is implicitly persisted
if this timestamp is old enough that the hold timer has
expired.

BUG=chromium:297607
TEST=Unit tests

Change-Id: I1ee83debf4d11f25678fe3586574ec04f254a83f
Reviewed-on: https://chromium-review.googlesource.com/174634
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
7ac610b7edc059fbcc378cdac9ca235975470563 02-Oct-2013 Wade Guthrie <wdg@chromium.org> shill: Converts many metrics calls to take references, not pointers.

I noticed some code that takes pointers that could crash if given a NULL
pointer. While I fixed that, I decided that I'd modify other methods
that take pointers but where NULL is not a valid parameter. This seems
consistent with Google style.

BUG=None.
TEST=unittest

Change-Id: I368fd66e1aa9d3ff81ec0fc2902af4721d6c1dde
Reviewed-on: https://chromium-review.googlesource.com/171510
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
Commit-Queue: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/metrics.cc
9ec08060ec87f25b572228cda70d8993c84f3179 26-Sep-2013 Wade Guthrie <wdg@chromium.org> shill: Adds Network.Shill.Wifi.SignalAtDisconnect UMA stat.

Reports the most recent signal value (in -dBm since the metrics don't
seem to handle negative values) when shill disconnects.

Fixed a few spelling errors in the files involved.

BUG=chromium:217054
TEST=unittest and manual:

On the ChromeOS DUT:
* Connect to a wifi network
* Manually disconnect from the wifi network
* Wait a few seconds (it takes a little time for the stat to propagate)
* Navigate to chrome://histograms
* Search for Network.Shill.Wifi.SignalAtDisconnect (verify that it
exists).

Change-Id: I6cb98937529036006abb019946f5c337bf01b1cc
Reviewed-on: https://chromium-review.googlesource.com/170668
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
Commit-Queue: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/metrics.cc
e71aa499d637c48b159dc4ee7638f0003789e409 23-Sep-2013 Wade Guthrie <wdg@chromium.org> shill: Removes unused code in metrics.cc, adds comment to wifi.

While toiling in metrics.cc (NotifyDeviceConnectFinished, to be
specific), I spied a couple lines that were unused. In a fit of
efficiency, I removed them.

At a nearby time, I noticed that, while background scan times were not
recorded, it's ok that we leave them unrecorded. I thought a comment
explaining why might reduce future consternation. I added such a
comment.

Lint also pointed out a missing space in existing code (in metrics.cc).
Upon reflection, I attended to this oversight.

BUG=None
TEST=unittest

Change-Id: I996909a1d8d8e126db3c6197c517b7b6521f9d6a
Reviewed-on: https://chromium-review.googlesource.com/170309
Reviewed-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/metrics.cc
923a5025a5e1138b052cbeffa60ea387d479696f 20-Sep-2013 Ben Chan <benchan@chromium.org> shill: Deprecate flimflam namespace.

CL:170123 moves all DBus service constants from the flimflam namespace
to the shill namespace. This CL removes the use of the flimflam
namespace in device, manager, metrics, service and technology code.

BUG=chromium:295425
CQ-DEPEND=CL:170123
TEST=Unit tests and trybot runs on release builders.

Change-Id: Ic9a853cbb623ec7e996dfc7590039dbe2d245db9
Reviewed-on: https://chromium-review.googlesource.com/170205
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/metrics.cc
09e0811c0d54facab2874cfac8b3563005220c2b 16-Aug-2013 mukesh agrawal <quiche@chromium.org> shill: remove Network.Shill.CellularDropsPerHour metric

This metric can't be too important, because nobody noticed it was
missing from histograms.xml (and hence, not viewable in the metrics
dashboard).

Also, a per-hour metric can be misleading, because it doesn't account
for what fraction of the hour the device was actually trying to use
Cellular.

This commit sort-of reverts 6c1e3bbc, but it leaves some of the
hooks of that commit in place. In particular, metrics still takes
an EventDispatcher pointer in its ctor, so that it can report
periodic statistics. While there aren't presently any other periodic
statistics, it's easier to leave these hooks in place than to rip
them out.

BUG=chromium:274640
TEST=unit tests

Change-Id: I7ad88e2e2dd54935f4d8f743203802612eed52df
Reviewed-on: https://gerrit.chromium.org/gerrit/66123
Commit-Queue: mukesh agrawal <quiche@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/metrics.cc
6cfe53faf6c6406e1f7695bdbec26c38e9dd1553 13-Aug-2013 mukesh agrawal <quiche@chromium.org> shill: fix Network.Shill.Wifi.TimeToJoin metric

The Network.Shill.Wifi.TimeToJoin metric was not being collected, due
to subtleties of how it was supposed to be hooked in to Metrics. So
fix it.

More specifically, What's supposed to happen is this:

Metrics::RegisterService
-> WiFiService::InitializeCustomMetrics // overrides base class impl
-> Metrics::AddServiceStateTransitionTimer(...)

The problem was that Metrics::RegisterService is called from
Service::Service. Thus, at the time that Metrics::RegisterService is called,
we only have a Service object, not a WiFiService object. Consequently, the
virtual method call from Manager::RegisterService resolves to the base class
implementation of InitializeCustomMetrics, which has an empty body.

To fix this, we make InitializeCustomMetrics a non-virtual method (it
only had a meaningful implementation in WiFiService, anyway), and call
it explicitly from the WiFiService ctor, rather than implicitly via
Metrics::RegisterService.

While there:
- Remove RegisterService calls in MetricsTests. These are both
unnecessary, and actively harmful. The harm comes from the fact
that the explicit call to RegisterService in the unit tests overrides
the effect of the RegisterService in the Service.

In the case of WiFiService, this meant calling the derived-class
implementation of InitializeCustomMetrics. That meant the test passed,
but only because it did not reflect actual program behavior.
- Log a WARNING if a Service is re-registered with Metrics (without an
intervening call to DeregisterService).
- Remove unused |service| field of ServiceMetrics.
- Add parenthesis to ctor invocation in Metrics::RegisterService. I
believe the fields are non-POD, and initialized either way (with or
without parentheses). But it seems clearer to use the parentheses,
since we want the fields initialized.
- Fix whitespace issue in WiFiService::InitializeCustomMetrics.
- Tweak log message in service.cc.

BUG=chromium:268058
TEST=new unit test, manual

Manual testing
--------------
1. boot system
2. connect to wifi
3. open chrome://histograms
4. find that Network.Shill.Wifi.TimeToJoin exists, and has at least one sample

Change-Id: Icd925148415ea30fb63709bf034e63b8930c179c
Reviewed-on: https://gerrit.chromium.org/gerrit/65739
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/metrics.cc
6f4ab424b39de2002dffc83f6821972f41195ca6 13-Aug-2013 mukesh agrawal <quiche@chromium.org> shill: add more metrics logging

Add some logging that was useful in debugging chromium:268058,
and tweak an existing log message to be provide more context.

BUG=chromium:268061
TEST=unit tests

Change-Id: I7dc6036a661cb0086f468b3d73957609fbc5da22
Reviewed-on: https://gerrit.chromium.org/gerrit/65738
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/metrics.cc
94cde5868317c2f874f97cf9a31ad147c8058109 13-Aug-2013 mukesh agrawal <quiche@chromium.org> shill: metrics: add ability to log metrics for debugging

To help us debug issues with metrics, log a message at scope
"metrics", level -5, whenever shill sends an enum or histogram
sample to UMA.

BUG=chromium:268061
TEST=new unit tests, manual

Manual testing
--------------
1. connect to wifi
2. ff_debug +metrics
3. ff_debug --level -5
4. wait 10 seconds
5. grep "Sending metric Network.Shill.Wifi.LinkMonitorResponseTimeSample" \
/var/log/net.log
-> should see matching lines

Change-Id: Iea2a8bfc3eb7d13d23a72d78d6c949d8a32b0e77
Reviewed-on: https://gerrit.chromium.org/gerrit/65651
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/metrics.cc
bb2231c2d6e39267a3f9e55e74efd9a1ea8e4c98 18-Jul-2013 mukesh agrawal <quiche@chromium.org> shill: accelerate link monitoring after a suspend/resume event

When going into suspend, devices using the ath9k chipset do not disassociate
from the AP. Consequently, on networks like GoogleGuest, we are often able
to re-use the prior-to-suspend association following resume.

For some APs, however, this leads to the AP ending up in a confused state.
In particular, the Airport Extreme 802.11ac (A1521) sends DEAUTH frames
while we're sleeping, but it acknowledges our Nullfunc frames when we resume.
In fact, the AP even answers our ADDBA request with a Successful ADDBA respone.
When in this state, however, the AP does not deliver our frames to the IP
stack. E.g. ARPs fail.

Improve our post-suspend-resume behavior on these APs by running LinkMonitor
immediately on resume, and with a lower timeout. We use a per-probe timeout
of 200ms, which is at the 98.48%-ile of ARP response time observed in the
field last week. The total timeout is 1 second, and I believe we accept
late replies, so if the first ARP probe is replied too slowly, we'll still
accept it. A one-second ARP reply is at the 99.24%-ile.

Note that after LinkMonitor fails, it still takes ~10 seconds to establish
connectivity to this AP. That's because the Reassociate attempt times out.

While there:
- clarify a log message in Device::StopPortalDetection
- fix bad indent in LinkMonitor::StartInternal
- add some diagnostic infomation in cases where the IsArpRequest
matcher fails to match expected values

BUG=chromium:244920
TEST=unit tests, manual (see below)

Manual testing
--------------
1. grab a device which has an atheros wifi chip (e.g. lumpy, link)
2. connect to "cros airport extreme wpa2", with password "chromeos"
3. suspend device (e.g. close lid)
4. wait >5 minutes.
5. resume device (e.g. open lid)
6. verify that the device detects a link failure in < 5 seconds
"Link monitor has reached the failure threshold" should occur
less than 5 seconds after "OnAfterResume" in /var/log/net.log
7. wait 15-20 seconds
8. verify that the device reconnects to the AP
9. wait 45 seconds
10. verify that the device does not detect another link failure
11. switch to GoogleGuest.
12. suspend device
13. wait >5 minutes
14. resume device
15. check that device does not detect a link failure

Change-Id: I900ba45714875f5785bba3d47c73f37b863553fb
Reviewed-on: https://gerrit.chromium.org/gerrit/63126
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/metrics.cc
e4cedde9ce9b21d2317e50cf267be31b1d6c279b 17-Jul-2013 Paul Stewart <pstew@chromium.org> shill: Metrics: Report AP Mode (Managed vs IBSS)

When a connection completes report the AP mode of the service.
This way we can track aggregate statistics of IBSS-mode connections.

BUG=chromium:260922
TEST=Unit test; connect to AP and look for "Network.Shill.Wifi.ApMode"
in chrome://histograms

Change-Id: I272ac04d7a1fa9479512e35ae844d31041a7694b
Reviewed-on: https://gerrit.chromium.org/gerrit/62347
Commit-Queue: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
08757aa8221a55004d3ab0a6405c8e0113554fa7 16-May-2013 Prathmesh Prabhu <pprabhu@chromium.org> cellular: Upload UMA stats for 3GPP delayed registration drop.

crbug.com/238820 ensures that small glitches in 3GPP bearer registration
do not cause connection drop. These glitches were originally observed
for E362 modem. Upload UMA stats to figure out if the workaround should
be restricted to devices with E362.

BUG=chromium:241231
TEST=(1) build and run unit-tests.
(2) Check that the following increments the value of
the histogram Network.Shill.Cellular.3GPPRegistrationDelayedDrop in
chrome://histograms on DUT.
- Connect to cellular network on DUT.
- Move the DUT to an area with bad reception, so that cellular
connection is dropped.
- Check that the histogram value for '0' is incremented and value for
'1' remains unchanged.
(3) Check that the following increments the value of
the histogram Network.Shill.Cellular.3GPPRegistrationDelayedDrop in
chrome://histograms on DUT.
- Connect to cellular network on DUT.
- Move the DUT to an area with bad reception so that signal strength
goes down to 0. Return to an area with good reception within 10
seconds.
- Ensure that the cellular connection is never dropped.
- Check that the histogram values for '0' and '1' are incremented.

Change-Id: Ic24ca0293226cefd4d334aec48a331a8b1f9b401
Reviewed-on: https://gerrit.chromium.org/gerrit/51398
Reviewed-by: Thieu Le <thieule@chromium.org>
Commit-Queue: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
/system/connectivity/shill/metrics.cc
44f290d07875cd3a6dc21c36ed0364a6ac5c31fa 28-May-2013 Wade Guthrie <wdg@chromium.org> shill: Adds UMA for scan-connect time.

This metric covers time from start of scan through end of a successful
connect.

BUG=chromium:245807
TEST=unittest and manual. For manual tests, do the following:

1) reboot your chrome device
b) browse to chrome://histograms
iii) Verify that there's an entry for
"Network.Shill.Wifi.TimeToScanAndConnect"

Change-Id: I3ef3f142c65b2e1d8449cf9b5405c63891261fc2
Reviewed-on: https://gerrit.chromium.org/gerrit/57271
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/metrics.cc
b9e0ee7f0418f3fe62dfde62fe8bc916fb2801fd 31-May-2013 Wade Guthrie <wdg@chromium.org> shill: Adds UMA metrics for scan termination reason.

BUG=chromium:245814
TEST=unittest and manual. For manual tests, do the following:

* reboot the machine (to force a scan)
* navigate to chrome//histograms
* verify that there's an entry for Network.Shill.WiFi.ScanResult

Change-Id: I36613ad1eb6682dfca880d94b11ec4eeacb442bc
Reviewed-on: https://gerrit.chromium.org/gerrit/57275
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
Commit-Queue: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/metrics.cc
f22681f67771e4f3f79984ba77eb94d1f6294405 31-May-2013 Wade Guthrie <wdg@chromium.org> shill: Adds UMA stat for scan time held-off by EBUSY.

BUG=chromium:245908
TEST=unittest and manual. For manual test, do the following:

* reboot machine (to force a scan)
* go to chrome://histograms
* search for "Network.Shill.WiFi.ScanTimeInEbusy" -- it should be
there.

Change-Id: I5ff707198cadc23845a40d5beb9d64359e1b5c81
Reviewed-on: https://gerrit.chromium.org/gerrit/57279
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/metrics.cc
91fccf6ff2ee20d77905ce71a7e9815b2e2c02d7 23-Apr-2013 Thieu Le <thieule@chromium.org> shill: cellular: Add metric to track out-of-credits detection.

BUG=chromium:233452
TEST=Unit tests

Change-Id: Idcb5cabc44892a2ed5bd3c4fe8768fe734155e3c
Reviewed-on: https://gerrit.chromium.org/gerrit/48829
Reviewed-by: Arman Uguray <armansito@chromium.org>
Commit-Queue: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
60a3706bee5686ae2322a774b9e7d5e8e63fcaf7 02-Apr-2013 Wade Guthrie <wdg@chromium.org> shill: Keeps track of successful wifi connection frequencies.

Saves the connection frequencies (and counts therefor) in the default
profile. Sends number of frequencies on which successful connections
have been made to an UMA stat.

BUG=chromium:222081
TEST=unittests and manual (look for UMA stat
'Network.Shill.Wifi.FrequenciesConnectedEver', disconnect from
wifi, reconnect, verify that the UMA stat went up by 1).

Change-Id: I1e3c75b82ac387dd01066c4da4ebfce2c4b2ddc0
Reviewed-on: https://gerrit.chromium.org/gerrit/47154
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/metrics.cc
68d4109ff0176f7e5a9b67b916478d638aac577a 02-Apr-2013 Wade Guthrie <wdg@chromium.org> shill: Adds UMA metric for scan time for certain scans.

Future code will perform a different type of scan (called "progressive
scan") for resume from disconnect, resume from suspend, and boot up.
This CL differentiates between those cases and the traditional, full,
scan in the code and adds a time-to-scan UMA metric for progressive
scan.

BUG=chromium:222096
TEST=unittest and manual (cycle power on the chromebook and notice on
chrome://histograms that Network.Shill.Wifi.TimeToScan got a new entry).

Change-Id: I450602c4b0a418c2b9322edeceec970c79de1330
Reviewed-on: https://gerrit.chromium.org/gerrit/47562
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/metrics.cc
091c41cdbfbd0ffc4908d3231de88d48c345f52e 22-Mar-2013 Wade Guthrie <wdg@chromium.org> shill: Fixes metric timers to report nothing for non-started timers.

Metrics::NotifyDevice*Finished used to report a time to UMA even when
the timer hadn't been started. This CL changes that and adds a unittest
to ensure that this behaviour operates as expected.

BUG=chromium:223285
TEST=unittests.

Change-Id: I5e40f65b153cf578f83a825dc067ed0a07e83906
Reviewed-on: https://gerrit.chromium.org/gerrit/46335
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/metrics.cc
91a43cb5ddb565ed9e4abcaee2d5f9373250012a 03-Mar-2013 Paul Stewart <pstew@chromium.org> shill: VPNDriver: Emit UMA metrics for VPN Authentication

Whenever an L2TP-IPSec or OpenVPN connection completes, report
authentication metrics to UMA.

BUG=chromium-os:39424
TEST=Unit tests

Change-Id: Ia5fef6d432e591f6f2ec18f59c529021f42719e5
Reviewed-on: https://gerrit.chromium.org/gerrit/44504
Reviewed-by: Darin Petkov <petkov@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
21f4096b66e7d16f211942fb2c27bd3a7ad0859e 01-Mar-2013 Paul Stewart <pstew@chromium.org> shill: WiFiService: Report EAP Authentication Type Metrics

When an 802.1x WiFi connection completes, report the inner and
outer authentication methods configured for this connection.

BUG=chromium-os:39424
TEST=Unit tests; Connect to a PEAP/MSCHAPv2 access point and look
at chrome://histograms.

Change-Id: Ic66b470cbd7019fe551e094c47782eb47bc1338f
Reviewed-on: https://gerrit.chromium.org/gerrit/44422
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
5133b71eaa00535739ebbddd8a8f31cd8fcf33a8 19-Feb-2013 Thieu Le <thieule@chromium.org> shill: Add metric to track corrupted profiles

New metric Network.Shill.CorruptedProfile.

BUG=chromium-os:38669
TEST=1. Unit tests
2. Stop shill
Corrupt /var/cache/shill/default.profile by adding junk
Start shill
Verify new metric appears in chrome://histograms

Change-Id: I629ed00884ecd2d2fe90744583bd72bf2e9e6af4
Reviewed-on: https://gerrit.chromium.org/gerrit/43556
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
Commit-Queue: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
6c1e3bbca64d642cb30ed9952203626942bc1451 07-Feb-2013 Thieu Le <thieule@chromium.org> shill: cellular: Add Network.Shill.Cellular.DropsPerHour.

BUG=chromium-os:38557
TEST=Unit tests, manually lose LTE signal and check chrome://histograms

Change-Id: I82aa1edabd21c5dfde4834cd36a34a12b629ba8f
Reviewed-on: https://gerrit.chromium.org/gerrit/42813
Reviewed-by: Arman Uguray <armansito@chromium.org>
Commit-Queue: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
b7aa5f705211f5a0e5ee8f2389f4592cace3011e 01-Feb-2013 Thieu Le <thieule@chromium.org> shill: cellular: Add Network.Shill.Cellular.FailureReason.

BUG=chromium-os:38422
TEST=Unit tests, Manually verify user action is in
/mnt/stateful_partition/encrypted/var/log/metrics/uma-events

Change-Id: I07e71f08b136581237233c9f29c8dd0c6d2db80e
Reviewed-on: https://gerrit.chromium.org/gerrit/42429
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
7cf36b0cbc1e382fb714cf412d100c9f7ad86c09 31-Jan-2013 Thieu Le <thieule@chromium.org> shill: cellular: Track auto-connect metrics.

Network.Shill.Cellular.AutoConnectTries and
Network.Shill.Cellular.AutoConnectTotalTime.

BUG=chromium-os:38406
TEST=Connect modem via auto-connect and check chrome://histograms

Change-Id: I79c2db2b8f4897779275675c9c0fb6278298d462
Reviewed-on: https://gerrit.chromium.org/gerrit/42361
Commit-Queue: Thieu Le <thieule@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
26fc01b466ef193b91f4d38d13ccf32b1aa60756 28-Jan-2013 Thieu Le <thieule@chromium.org> shill: cellular: Add LTE drop metrics.

Network.Shill.Cellular.Drop and
Network.Shill.Cellular.SignalStrengthBeforeDrop.

BUG=chromium-os:38165
TEST=Drop cellular signal and check chrome://histograms

Change-Id: Iddf25c903e07d55486c77cadd9b1d5898d40de0a
Reviewed-on: https://gerrit.chromium.org/gerrit/42329
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
Commit-Queue: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
18c1107512ccd6ff8460246f690fbffbdc381979 29-Jan-2013 Thieu Le <thieule@chromium.org> shill: cellular: Add Network.Shill.Cellular.TimeToScan metric.

BUG=chromium-os:38298
TEST=Unit tests, check for new metric under chrome://histograms

Change-Id: I4209898b49314b462cdde695bc607a051a531245
Reviewed-on: https://gerrit.chromium.org/gerrit/42196
Reviewed-by: Arman Uguray <armansito@chromium.org>
Commit-Queue: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
cdb5a2112e71c68b094eaaf32dfb0ec295b6fc76 25-Jan-2013 Thieu Le <thieule@chromium.org> shill: Add Network.Shill.Cellular.TimeToConnect metric.

BUG=chromium-os:38086
TEST=Connect modem and look for metric in chrome://histograms

Change-Id: Icd4746508095cc23e104af8d47b3e3a0a03c040f
Reviewed-on: https://gerrit.chromium.org/gerrit/42026
Reviewed-by: Arman Uguray <armansito@chromium.org>
Commit-Queue: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
9abd6749e69712e9ec4ed4a54fbba243f16ae7f3 24-Jan-2013 Thieu Le <thieule@chromium.org> shill: Add device metrics registration for devices without link message.

Cellular devices may be created and registered without a preceding RTNL
link message.

BUG=chromium-os:38187
TEST=Restart modemmanager and make sure shill doesn't crash

Change-Id: I13697f53a007a5c4ff67106f980380db338fba64
Reviewed-on: https://gerrit.chromium.org/gerrit/41918
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
85aea151c69ff40967becfa8751d821feebf3bb9 22-Jan-2013 Paul Stewart <pstew@chromium.org> shill: WiFiService: Fix-up old-style WiFi Service entries

Add a utility to upgrade WiFi service entries that don't contain
the "Type", "Mode" or "Security" properties, and only contain
this information in the fields of the storage identifier. Use
this utility whenever the WiFi device loads a new profile.
Follow-on CLs will clean up all remaining direct callers of
WiFiServce::ParseStorageIdentifier().

BUG=chromium-os:38048
TEST=Unit Tests, inspect chrome://histograms for new histogram
entries when profiles are updated.

Change-Id: I0f1d4e75abc1edfe6da1bbfe68183cab1b1c0021
Reviewed-on: https://gerrit.chromium.org/gerrit/41802
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
769d50d3eb4f7fc5b7af06077200ebfba841f495 24-Jan-2013 Thieu Le <thieule@chromium.org> shill: Bump Network.Shill.*.TimeToInitialize to 30 seconds.

BUG=chromium-os:38086
TEST=Unit tests

Change-Id: I71c9639f774e2e3cbea3e1eada05b4d0329b75cb
Reviewed-on: https://gerrit.chromium.org/gerrit/41897
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
a2519bfa1b13957ce0466d353fcbc1be5ad80e13 24-Jan-2013 Thieu Le <thieule@chromium.org> shill: Add Network.Shill.Cellular.TimeToDisable.

BUG=chromium-os:38086
TEST=Unit tests, disable modem and check chrome://histograms

Change-Id: I691af3a98eed014f601a140c81f52f0f7bf38a33
Reviewed-on: https://gerrit.chromium.org/gerrit/41894
Reviewed-by: Arman Uguray <armansito@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
ce4483e054058ab3f6d940c7aa2e7b5697af325a 24-Jan-2013 Thieu Le <thieule@chromium.org> shill: Add Network.Shill.Cellular.TimeToEnable metrics.

This metric tracks the amount of time it takes the modem manager to
enable the modem.

BUG=chromium-os:38086
TEST=Unit tests, check chrome://histograms for new metrics

Change-Id: Ie12e8cee20586f4ebf0070721c6327c13c175474
Reviewed-on: https://gerrit.chromium.org/gerrit/41878
Reviewed-by: Arman Uguray <armansito@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
c8078a6c44d0e30b71642856ef46e0cf6c5edb46 23-Jan-2013 Thieu Le <thieule@chromium.org> shill: Add support for device metrics.

Also add first device metrics, TimeToInitialize, which is the time
between when the kernel notifies shill about a link to when a Device
object is created for that link.

BUG=chromium-os:38086
TEST=New unit test and checking chrome://histograms for new metrics

Change-Id: If42081a42eb39b1782e0d7603e5d79116645ebad
Reviewed-on: https://gerrit.chromium.org/gerrit/41794
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
Commit-Queue: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
ab22c166ccfb33fd99169bee645d67306ae26ced 09-Oct-2012 Arman Uguray <armansito@chromium.org> shill: Add metrics for recording termination/suspend time

Added the following metrics:

- Network.Shill.TerminationActionResult.OnSuspend,
- Network.Shill.TerminationActionResult.OnTerminate,

which log success/failure;

- Network.Shill.TerminationActionTime.OnSuspend,
- Network.Shill.TerminationActionTime.OnTerminate,

which measure the time it takes to complete the termination actions.

BUG=chromium-os:35029
TEST=Manually suspended machine and terminated shill on separate
occasions and observed the output on chrome://histograms

Change-Id: I5183d7c3dd5d4633f661598b7a0cacab6d205d8b
Reviewed-on: https://gerrit.chromium.org/gerrit/34975
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Ready: Arman Uguray <armansito@chromium.org>
Tested-by: Arman Uguray <armansito@chromium.org>
/system/connectivity/shill/metrics.cc
23b393ab3d44c0c3a95c30078978cab53b50c9f2 26-Sep-2012 Paul Stewart <pstew@chromium.org> shill: WiFi: Add metric for Signal Strength

Add a metric that gives the signal strength at time of
successful association.

BUG=chromium-os:34782
TEST=Run unit tests (with edits for new metric), run on device,
connect to WiFi network, browse to chrome://histograms

Change-Id: Idf0754fd5adf7f4931a0a647940477922335d196
Reviewed-on: https://gerrit.chromium.org/gerrit/34095
Reviewed-by: Thieu Le <thieule@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
f1961f836f8f6fc8afaa5b97872b45d31cd081f6 12-Sep-2012 Paul Stewart <pstew@chromium.org> shill: LinkMonitor: Apply readability-review comments

Modify LinkMonitor and those affected by it to add
changes suggested during readability review.

BUG=chromium-os:32600
TEST=Unit tests

Change-Id: Ie48ac6d6ea1727207042fe5bf1519875b0673501
Reviewed-on: https://gerrit.chromium.org/gerrit/33047
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
6d528f1a43c01f7be11f292d6e1c3829a1e867dc 13-Sep-2012 Arman Uguray <armansito@chromium.org> shill: metrics: Collect termination action statistics

When shill terminates, it executes a set of termination actions that
were queued while it was running (e.g. a cellular device queues a
disconnection request as an action). This CL adds code to track the
percentage of termination actions that succeed within the given timeout
period for termination.

BUG=chromium-os:31475
TEST=Manually tested changes via chrome://histograms

Change-Id: Id2d5e5fef2a02a2d1e4b6a17c8a1366c9ac6676e
Reviewed-on: https://gerrit.chromium.org/gerrit/33225
Reviewed-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Gary Morain <gmorain@chromium.org>
Tested-by: Arman Uguray <armansito@chromium.org>
Commit-Ready: Arman Uguray <armansito@chromium.org>
/system/connectivity/shill/metrics.cc
d4977f264f403ed5825d343b57da90b550b41287 22-Aug-2012 Wade Guthrie <wdg@chromium.org> shill: Exposing wifi disconnect reason to UMA.

This change provides UMA with a reason for each WiFi deauthentication
that occurs. These values are extracted from the deauthentication
message that we get from the mac80211 drivers in the kernel (because
we've asked that driver to send us events).

BUG=chromium-os:33637,26854
TEST=Manual (disconnected in various ways and verified with UMA). Ran
shill unit tests.

Change-Id: I630ffbba02b40484fc3c6b20e444e71093cfce65
Reviewed-on: https://gerrit.chromium.org/gerrit/31475
Commit-Ready: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/metrics.cc
0443aa578aea08a313e9879a6dce4cacec32952c 09-Aug-2012 Paul Stewart <pstew@chromium.org> shill: LinkMonitor: Add more metrics

LinkMonitorSecondsToFailure, LinkMonitorUnicastErrorsAtFailure,
and LinkMonitorBroadcastErrorsAtFailure.

BUG=chromium-os:32600
TEST=Unit tests.

Change-Id: I0a90deee5675ebfb665a76f8e7707eaaecc23ce9
Reviewed-on: https://gerrit.chromium.org/gerrit/29792
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
b691efd71561246065eae3cdd73a96ca1b8a528d 09-Aug-2012 Christopher Wiley <wiley@chromium.org> shill: Rename SMLOG to SLOG

Rewrite SMLOG as SLOG, thus saving many edits. Change the location of
the SLOG macro to be memory_log.h, requiring includes to be rewritten
and reordered. While we're rewriting includes, moving all assorted
logging includes into a generic shill/logging.h, thus saving future
logging changes from altering these includes ever again.

BUG=chromium-os:31145
TEST=Builds, unit tests still pass

Change-Id: Ie5129fcbdda87f3149460209a682c698b876b09a
Reviewed-on: https://gerrit.chromium.org/gerrit/29650
Commit-Ready: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
/system/connectivity/shill/metrics.cc
ff845fc996d6742c9ce2d0cd1939745e7034411f 07-Aug-2012 Paul Stewart <pstew@chromium.org> shill: LinkMonitor: Add Metrics

BUG=chromium-os:32600
TEST=Unit tests

Change-Id: I4a7625fb006e939a5ea63efeede8ca9982115332
Reviewed-on: https://gerrit.chromium.org/gerrit/29421
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
c31e6f9010d2e5d8910f35dc413e836f27932513 03-Aug-2012 Thieu Le <thieule@chromium.org> shill: Fix disconnect metrics values.

Change Disconnect histogram min=1, max=2, num_buckets=3.

BUG=chromium-os:33248
TEST=Unit tests, Manually verify using about:histograms.

Change-Id: If4250dec633b6ad7a72b65b5c120106534119672
Reviewed-on: https://gerrit.chromium.org/gerrit/29203
Tested-by: Thieu Le <thieule@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
58f0b6dbd71f52c3abdac91aed44024a35bc4898 12-Jun-2012 Darin Petkov <petkov@chromium.org> shill: Log boot statistics for service state changes.

BUG=chromium-os:30169
TEST=unit tests, booted device, /tmp/disk-network-ready is populated

Change-Id: I8f0de3d3f9da2f73ca10977d46262fbbbbd56584
Reviewed-on: https://gerrit.chromium.org/gerrit/25084
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/metrics.cc
bbdef5fc35b48d9b43ba0dc005384abd36b72213 23-Apr-2012 Ben Chan <benchan@chromium.org> shill: Ignore missing-field-initializers warning on LAZY_INSTANCE_INITIALIZER.

When compiling with -Wextra, GCC gives a missing-field-initializers
warning (which is promoted to an error by -Werror) on the
LAZY_INSTANCE_INITIALIZER macro defined in base/lazy_instance.h.

This CL adds -Wno-missing-field-initializers to CXXFLAGS in Makefile to
ignore the warning on LAZY_INSTANCE_INITIALIZER.

BUG=chromium-os:29866
TEST=Build and run unit tests.

Change-Id: I8533f3b89780d1ec2b2c7222be3f5e26aa0e3b83
Reviewed-on: https://gerrit.chromium.org/gerrit/20888
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Ready: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/metrics.cc
fad4a0b7e55dd82d3815ee96862b6e546727eb6e 19-Apr-2012 Ben Chan <benchan@chromium.org> shill: Replace VLOG with SLOG.

This CL replaces all uses of VLOG(level) with SLOG(scope, level) with
the same verbose level and an appropriate scope for each affected
logging statement.

BUG=chromium-os:29641
TEST=Build and run unit tests. Test scope logging with ff_debug.

Change-Id: Ifdcf1faa2a309bcbd9ee369a66179ce9c7f1ad19
Reviewed-on: https://gerrit.chromium.org/gerrit/20629
Commit-Ready: Ben Chan <benchan@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/metrics.cc
85e050b4923878a57aec1415314d2b39ff233e00 13-Mar-2012 Thieu Le <thieule@chromium.org> shill: Add portal metrics

Add support for Network.*.PortalAttempts,
Network.*.PortalAttemptsToOnline and Network.*.PortalResult.

BUG=chromium-os:27670
TEST=Unit tests

Change-Id: I0589c0f811a46f249ebb97540fc9d8a6ed7293ad
Reviewed-on: https://gerrit.chromium.org/gerrit/18036
Commit-Ready: Thieu Le <thieule@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
3e20a2341d0aeb7681e4ee0f89eae6817ade2b3b 16-Feb-2012 Eric Shienbrood <ers@chromium.org> shill: Convert code to use the newest version of libchrome.

The biggest change is a switch from using the deprecated
Task and CallbackN mechanisms to using the new Callback
mechanism.

Note: Original CL was https://gerrit.chromium.org/gerrit/16156.
This is logically another patch to that CL, but since the
latter was already merged, and is considered closed by
Gerrit, it's necessary to create a new CL.

BUG=chromium-os:15330
TEST=Build shill and run it on a zgb with a modem. Build and
run unit tests.
CQ-DEPEND=I37628863370323d30cac493764ea28f8ffd42637

Change-Id: I3ae78a3aa44ec167b79f2170d07650ece888254f
Reviewed-on: https://gerrit.chromium.org/gerrit/18030
Reviewed-by: Eric Shienbrood <ers@chromium.org>
Tested-by: Eric Shienbrood <ers@chromium.org>
Commit-Ready: Eric Shienbrood <ers@chromium.org>
/system/connectivity/shill/metrics.cc
b5c8940ae68f85c8c822936f41f4993c51624dcf 13-Mar-2012 Eric Shienbrood <ers@chromium.org> Revert "shill: Convert code to use the newest version of libchrome."

This reverts commit ffebe0c489e0ecccf497547d7078c30cbc8072e2

Unit tests ran on local machine, but wouldn't run on CQ because of some kind of environment difference.

Change-Id: Ia876c0c17f4cd84bca5e2f1bacd7e24a81832d4d
Reviewed-on: https://gerrit.chromium.org/gerrit/17969
Reviewed-by: Eric Shienbrood <ers@chromium.org>
Tested-by: Eric Shienbrood <ers@chromium.org>
/system/connectivity/shill/metrics.cc
08a4ffb4ecf5893eb55c523d528bf3e52c66facf 16-Feb-2012 Eric Shienbrood <ers@chromium.org> shill: Convert code to use the newest version of libchrome.

The biggest change is a switch from using the deprecated
Task and CallbackN mechanisms to using the new Callback
mechanism.

This cannot be submitted until vapier submits his CL that
slot-enables the libchrome build
(https://gerrit.chromium.org/gerrit/15415).

BUG=chromium-os:15330
TEST=Build shill and run it on a zgb with a modem. Build and
run unit tests.
CQ-DEPEND=Ic24bb16aac3e1d130a784f34e848e308719a43be

Change-Id: I081a7aa66bee391b867a43e08db2eacdff760945
Reviewed-on: https://gerrit.chromium.org/gerrit/16156
Tested-by: Eric Shienbrood <ers@chromium.org>
Commit-Ready: Eric Shienbrood <ers@chromium.org>
Reviewed-by: Eric Shienbrood <ers@chromium.org>
/system/connectivity/shill/metrics.cc
b84ba34aec59d083980d840fb845a3e2bea893cb 03-Mar-2012 Thieu Le <thieule@chromium.org> shill: Add support for Network.*.TimeResumeToReady

BUG=chromium-os:24440
TEST=Unit tests, network_WiFiManager, manually suspend/resume system

Change-Id: Ica618f2c713bac92f609d7894b16b0dd93af1645
Reviewed-on: https://gerrit.chromium.org/gerrit/17263
Commit-Ready: Thieu Le <thieule@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
20088d860631a67c151a12783fbbee63c708792f 16-Feb-2012 Paul Stewart <pstew@chromium.org> shill: Perform Portal Detection in Device

When a connection completes, start a portal detection request, which
may change the state of the selected service. Bonus changes: removed
Service::kStateReady, since Service::kStateConnected maps directly
to flimflam::kStateReady. Also, move technology list parsing over
to technology.cc.

BUG=chromium-os:23318
TEST=New unit tests

Change-Id: I2fad724165af6914c8f83bc123f07db5af223a05
Reviewed-on: https://gerrit.chromium.org/gerrit/16117
Commit-Ready: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/metrics.cc
67370f6ebe6757f55249f6e87f4a96922d0c4518 15-Feb-2012 Thieu Le <thieule@chromium.org> shill: Add code to track disconnect metric.

BUG=chromium-os:25958
TEST=Unit tests, network_WiFiManager

Change-Id: I4cee4d4380dc822c9bed61e006df304c6c6fbdde
Reviewed-on: https://gerrit.chromium.org/gerrit/15850
Commit-Ready: Thieu Le <thieule@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
a20cbc2864edf5491cfa1fa240ba83c30b8a483c 09-Jan-2012 Thieu Le <thieule@chromium.org> shill: Add metrics Network.Shill.TimeToDrop and Network.Shill.*.TimeOnline

Also changed some existing constant names for consistency purposes.

BUG=chromium-os:24810
TEST=Unit tests, network_WiFiManager (7/9)

Change-Id: I49db32dc0a4b6b80a5114b910b9be6e45a30d7f0
Reviewed-on: https://gerrit.chromium.org/gerrit/13883
Commit-Ready: Thieu Le <thieule@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
3426c8fc7a3943f2d8fcb2ec78f0593088b42bed 12-Jan-2012 Thieu Le <thieule@chromium.org> shill: Move Metrics from singleton to Shill daemon

While implementing chromium-os:24810, it was discovered that Metrics is
cleaner if it is passed around like ControlInterface, Dispatcher,
Manager, etc. This approach also makes Metrics more testable.

BUG=chromium-os:24810
TEST=Unit tests, network_WiFiManager suite

Change-Id: I556a1bd11f21f0b93ecfeaae8855dfb99ed5e5f9
Reviewed-on: https://gerrit.chromium.org/gerrit/14099
Commit-Ready: Thieu Le <thieule@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
ad1ec2c02af19d65b1302db59a1cebb1c9465516 06-Jan-2012 Thieu Le <thieule@chromium.org> shill: UMA stats Network.Shill.WiFi.Security and Network.Shill.WiFi.PhyMode

Add code to send WiFi security and physical mode UMA metrics.

BUG=chromium-os:24441
TEST=Unit tests

Change-Id: I30bf90d55110dc543f105c06e916b58f73692637
Reviewed-on: https://gerrit.chromium.org/gerrit/13765
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
Commit-Ready: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc
48e6d6d0ec0f90d9b2206f60c1ff2a825c5ce9c1 06-Dec-2011 Thieu Le <thieule@chromium.org> shill: Add preliminary UMA support

Add preliminary UMA framework and support for common service metrics and one
WiFi metric (Network.Shill.WiFi.Channel) so we can thrash out how the
metrics fit in the current code. Other metrics will be added in the
future and are tracked by separate bugs.

BUG=chromium-os:22062
TEST=Unit tests

Change-Id: If3dc6da2e66e846e2178a1700b2576218b90abda
Reviewed-on: https://gerrit.chromium.org/gerrit/12474
Commit-Ready: Thieu Le <thieule@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/metrics.cc