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>
diff --git a/metrics.h b/metrics.h
index c33a7a5..28208aa 100644
--- a/metrics.h
+++ b/metrics.h
@@ -75,8 +75,37 @@
kWiFiChannelMax
};
+ enum WiFiNetworkPhyMode {
+ kWiFiNetworkPhyModeUndef = 0, // Unknown/undefined
+ kWiFiNetworkPhyMode11a = 1, // 802.11a
+ kWiFiNetworkPhyMode11b = 2, // 802.11b
+ kWiFiNetworkPhyMode11g = 3, // 802.11g
+ kWiFiNetworkPhyMode11n = 4, // 802.11n
+ kWiFiNetworkPhyModeHalf = 5, // PSB Half-width
+ kWiFiNetworkPhyModeQuarter = 6, // PSB Quarter-width
+ kWiFiNetworkPhyModeTurbo = 7, // Atheros Turbo mode
+
+ kWiFiNetworkPhyModeMax
+ };
+
+ enum WiFiSecurity {
+ kWiFiSecurityUnknown = 0,
+ kWiFiSecurityNone = 1,
+ kWiFiSecurityWep = 2,
+ kWiFiSecurityWpa = 3,
+ kWiFiSecurityRsn = 4,
+ kWiFiSecurity8021x = 5,
+ kWiFiSecurityPsk = 6,
+
+ kWiFiSecurityMax
+ };
+
static const char kMetricNetworkChannel[];
static const int kMetricNetworkChannelMax;
+ static const char kMetricNetworkPhyMode[];
+ static const int kMetricNetworkPhyModeMax;
+ static const char kMetricNetworkSecurity[];
+ static const int kMetricNetworkSecurityMax;
static const char kMetricNetworkServiceErrors[];
static const int kMetricNetworkServiceErrorsMax;
static const char kMetricTimeToConfigMilliseconds[];
@@ -95,6 +124,9 @@
// Converts the WiFi frequency into the associated UMA channel enumerator.
static WiFiChannel WiFiFrequencyToChannel(uint16 frequency);
+ // Converts a flimflam security string into its UMA security enumerator.
+ static WiFiSecurity WiFiSecurityStringToEnum(const std::string &security);
+
// Registers a service with this object so it can use the timers to track
// state transition metrics.
void RegisterService(const Service *service);