blob: d609be9b0d1425ff764d41dd409e2ce0058c0560 [file] [log] [blame]
// 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;
};