Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(56)

Unified Diff: net/nqe/network_quality_estimator_params.cc

Issue 2481373004: NQE: Add default RTT and throughput observations (Closed)
Patch Set: Rebased, addressed bengr comments Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/nqe/network_quality_estimator.cc ('k') | net/nqe/network_quality_estimator_test_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/nqe/network_quality_estimator_params.cc
diff --git a/net/nqe/network_quality_estimator_params.cc b/net/nqe/network_quality_estimator_params.cc
index 1479e3e7bc0ed26c835a6e03a847dbc7ae4dae6a..ace6eae19f74990518ee2ff4276509f1ed779395 100644
--- a/net/nqe/network_quality_estimator_params.cc
+++ b/net/nqe/network_quality_estimator_params.cc
@@ -127,26 +127,79 @@ void ObtainDefaultObservations(
const std::map<std::string, std::string>& variation_params,
NetworkQuality default_observations[]) {
for (size_t i = 0; i < NetworkChangeNotifier::CONNECTION_LAST; ++i) {
- NetworkChangeNotifier::ConnectionType type =
- static_cast<NetworkChangeNotifier::ConnectionType>(i);
DCHECK_EQ(InvalidRTT(), default_observations[i].http_rtt());
DCHECK_EQ(InvalidRTT(), default_observations[i].transport_rtt());
DCHECK_EQ(kInvalidThroughput,
default_observations[i].downstream_throughput_kbps());
+ }
+
+ // Default observations for HTTP RTT, transport RTT, and downstream throughput
+ // Kbps for the various connection types. These may be overridden by
+ // variations params. The default observation for a connection type
+ // corresponds to typical network quality for that connection type.
+ default_observations[NetworkChangeNotifier::CONNECTION_UNKNOWN] =
+ NetworkQuality(base::TimeDelta::FromMilliseconds(115),
+ base::TimeDelta::FromMilliseconds(55), 1961);
+
+ default_observations[NetworkChangeNotifier::CONNECTION_ETHERNET] =
+ NetworkQuality(base::TimeDelta::FromMilliseconds(90),
+ base::TimeDelta::FromMilliseconds(33), 1456);
+
+ default_observations[NetworkChangeNotifier::CONNECTION_WIFI] =
+ NetworkQuality(base::TimeDelta::FromMilliseconds(116),
+ base::TimeDelta::FromMilliseconds(66), 2658);
+
+ default_observations[NetworkChangeNotifier::CONNECTION_2G] =
+ NetworkQuality(base::TimeDelta::FromMilliseconds(1726),
+ base::TimeDelta::FromMilliseconds(1531), 74);
+
+ default_observations[NetworkChangeNotifier::CONNECTION_3G] =
+ NetworkQuality(base::TimeDelta::FromMilliseconds(272),
+ base::TimeDelta::FromMilliseconds(209), 749);
+
+ default_observations[NetworkChangeNotifier::CONNECTION_4G] =
+ NetworkQuality(base::TimeDelta::FromMilliseconds(137),
+ base::TimeDelta::FromMilliseconds(80), 1708);
+
+ default_observations[NetworkChangeNotifier::CONNECTION_NONE] =
+ NetworkQuality(base::TimeDelta::FromMilliseconds(163),
+ base::TimeDelta::FromMilliseconds(83), 575);
+
+ default_observations[NetworkChangeNotifier::CONNECTION_BLUETOOTH] =
+ NetworkQuality(base::TimeDelta::FromMilliseconds(385),
+ base::TimeDelta::FromMilliseconds(318), 476);
+
+ // Override using the values provided via variation params.
+ for (size_t i = 0; i <= NetworkChangeNotifier::CONNECTION_LAST; ++i) {
+ NetworkChangeNotifier::ConnectionType type =
+ static_cast<NetworkChangeNotifier::ConnectionType>(i);
- base::TimeDelta default_rtt = InvalidRTT();
int32_t variations_value = kMinimumRTTVariationParameterMsec - 1;
std::string parameter_name = std::string(GetNameForConnectionType(type))
.append(".DefaultMedianRTTMsec");
auto it = variation_params.find(parameter_name);
+ if (it != variation_params.end() &&
+ base::StringToInt(it->second, &variations_value) &&
+ variations_value >= kMinimumRTTVariationParameterMsec) {
+ default_observations[i] =
+ NetworkQuality(base::TimeDelta::FromMilliseconds(variations_value),
+ default_observations[i].transport_rtt(),
+ default_observations[i].downstream_throughput_kbps());
+ }
+ variations_value = kMinimumRTTVariationParameterMsec - 1;
+ parameter_name = std::string(GetNameForConnectionType(type))
+ .append(".DefaultMedianTransportRTTMsec");
+ it = variation_params.find(parameter_name);
if (it != variation_params.end() &&
base::StringToInt(it->second, &variations_value) &&
variations_value >= kMinimumRTTVariationParameterMsec) {
- default_rtt = base::TimeDelta::FromMilliseconds(variations_value);
+ default_observations[i] =
+ NetworkQuality(default_observations[i].http_rtt(),
+ base::TimeDelta::FromMilliseconds(variations_value),
+ default_observations[i].downstream_throughput_kbps());
}
- int32_t downstream_throughput_kbps = kInvalidThroughput;
variations_value = kMinimumThroughputVariationParameterKbps - 1;
parameter_name = std::string(GetNameForConnectionType(type))
.append(".DefaultMedianKbps");
@@ -155,12 +208,10 @@ void ObtainDefaultObservations(
if (it != variation_params.end() &&
base::StringToInt(it->second, &variations_value) &&
variations_value >= kMinimumThroughputVariationParameterKbps) {
- downstream_throughput_kbps = variations_value;
+ default_observations[i] = NetworkQuality(
+ default_observations[i].http_rtt(),
+ default_observations[i].transport_rtt(), variations_value);
}
-
- default_observations[i] =
- NetworkQuality(default_rtt, default_observations[i].transport_rtt(),
- downstream_throughput_kbps);
}
}
« no previous file with comments | « net/nqe/network_quality_estimator.cc ('k') | net/nqe/network_quality_estimator_test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698