| // Copyright 2015 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. | |
| syntax = "proto2"; | |
| option optimize_for = LITE_RUNTIME; | |
| package quic; | |
| // CachedNetworkParameters contains data that can be used to choose appropriate | |
| // connection parameters (initial RTT, initial CWND, etc.) in new connections. | |
| // Next id: 8 | |
| message CachedNetworkParameters { | |
| // Describes the state of the connection during which the supplied network | |
| // parameters were calculated. | |
| enum PreviousConnectionState { | |
| SLOW_START = 0; | |
| CONGESTION_AVOIDANCE = 1; | |
| } | |
| // serving_region is used to decide whether or not the bandwidth estimate and | |
| // min RTT are reasonable and if they should be used. | |
| // For example a group of geographically close servers may share the same | |
| // serving_region string if they are expected to have similar network | |
| // performance. | |
| optional string serving_region = 1; | |
| // The server can supply a bandwidth estimate (in bytes/s) which it may re-use | |
| // on receipt of a source-address token with this field set. | |
| optional int32 bandwidth_estimate_bytes_per_second = 2; | |
| // The maximum bandwidth seen to the client, not necessarily the latest. | |
| optional int32 max_bandwidth_estimate_bytes_per_second = 5; | |
| // Timestamp (seconds since UNIX epoch) that indicates when the max bandwidth | |
| // was seen by the server. | |
| optional int64 max_bandwidth_timestamp_seconds = 6; | |
| // The min RTT seen on a previous connection can be used by the server to | |
| // inform initial connection parameters for new connections. | |
| optional int32 min_rtt_ms = 3; | |
| // Encodes the PreviousConnectionState enum. | |
| optional int32 previous_connection_state = 4; | |
| // UNIX timestamp when this bandwidth estimate was created. | |
| optional int64 timestamp = 7; | |
| }; |