| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef NET_NQE_NETWORK_QUALITY_OBSERVATION_SOURCE_H_ |
| #define NET_NQE_NETWORK_QUALITY_OBSERVATION_SOURCE_H_ |
| |
| namespace net { |
| |
| // On Android, a Java counterpart will be generated for this enum. |
| // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.net |
| // GENERATED_JAVA_CLASS_NAME_OVERRIDE: NetworkQualityObservationSource |
| // GENERATED_JAVA_PREFIX_TO_STRIP: NETWORK_QUALITY_OBSERVATION_SOURCE_ |
| enum NetworkQualityObservationSource { |
| // The observation was taken at the request layer, e.g., a round trip time |
| // is recorded as the time between the request being sent and the first byte |
| // being received. |
| NETWORK_QUALITY_OBSERVATION_SOURCE_HTTP = 0, |
| |
| // The observation is taken from TCP statistics maintained by the kernel. |
| NETWORK_QUALITY_OBSERVATION_SOURCE_TCP = 1, |
| |
| // The observation is taken at the QUIC layer. |
| NETWORK_QUALITY_OBSERVATION_SOURCE_QUIC = 2, |
| |
| // The observation is a previously cached estimate of the metric. The metric |
| // was computed at the HTTP layer. |
| NETWORK_QUALITY_OBSERVATION_SOURCE_HTTP_CACHED_ESTIMATE = 3, |
| |
| // The observation is derived from network connection information provided |
| // by the platform. For example, typical RTT and throughput values are used |
| // for a given type of network connection. The metric was provided for use |
| // at the HTTP layer. |
| NETWORK_QUALITY_OBSERVATION_SOURCE_DEFAULT_HTTP_FROM_PLATFORM = 4, |
| |
| // The observation came from a Chromium-external source. The metric was |
| // computed by the external source at the HTTP layer. |
| // Deprecated since external estimate provider is not currently queried. |
| DEPRECATED_NETWORK_QUALITY_OBSERVATION_SOURCE_HTTP_EXTERNAL_ESTIMATE = 5, |
| |
| // The observation is a previously cached estimate of the metric. The metric |
| // was computed at the transport layer. |
| NETWORK_QUALITY_OBSERVATION_SOURCE_TRANSPORT_CACHED_ESTIMATE = 6, |
| |
| // The observation is derived from the network connection information provided |
| // by the platform. For example, typical RTT and throughput values are used |
| // for a given type of network connection. The metric was provided for use |
| // at the transport layer. |
| NETWORK_QUALITY_OBSERVATION_SOURCE_DEFAULT_TRANSPORT_FROM_PLATFORM = 7, |
| |
| NETWORK_QUALITY_OBSERVATION_SOURCE_MAX, |
| }; |
| |
| namespace nqe { |
| |
| namespace internal { |
| // Returns the string equivalent of |source|. |
| const char* GetNameForObservationSource(NetworkQualityObservationSource source); |
| |
| // Different categories to which an observation source can belong to. Each |
| // observation source belongs to exactly one category. |
| enum ObservationCategory { |
| // HTTP RTT observations measure the RTT from this device taken at the |
| // HTTP layer. If a HTTP-layer proxy is in use, then the RTT observations |
| // would measure the RTT from this device to the proxy. |
| OBSERVATION_CATEGORY_HTTP = 0, |
| // Transport RTT observations measure the RTT from this device taken at the |
| // transport layer. If a transport-layer proxy (e.g., TCP proxy) is in use, |
| // then the RTT observations would measure the RTT from this device to the |
| // proxy. |
| OBSERVATION_CATEGORY_TRANSPORT = 1, |
| // End to end RTT observations measure the RTT from this device to the remote |
| // web server. Currently, this only includes RTT observations taken from the |
| // QUIC connections. |
| OBSERVATION_CATEGORY_END_TO_END = 2, |
| OBSERVATION_CATEGORY_COUNT = 3 |
| }; |
| |
| } // namespace internal |
| |
| } // namespace nqe |
| |
| } // namespace net |
| |
| #endif // NET_NQE_NETWORK_QUALITY_OBSERVATION_SOURCE_H_ |