1// Copyright 2015 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5syntax = "proto2"; 6 7option optimize_for = LITE_RUNTIME; 8 9package quic; 10 11// CachedNetworkParameters contains data that can be used to choose appropriate 12// connection parameters (initial RTT, initial CWND, etc.) in new connections. 13// Next id: 8 14message CachedNetworkParameters { 15 // Describes the state of the connection during which the supplied network 16 // parameters were calculated. 17 enum PreviousConnectionState { 18 SLOW_START = 0; 19 CONGESTION_AVOIDANCE = 1; 20 } 21 22 // serving_region is used to decide whether or not the bandwidth estimate and 23 // min RTT are reasonable and if they should be used. 24 // For example a group of geographically close servers may share the same 25 // serving_region string if they are expected to have similar network 26 // performance. 27 optional string serving_region = 1; 28 // The server can supply a bandwidth estimate (in bytes/s) which it may re-use 29 // on receipt of a source-address token with this field set. 30 optional int32 bandwidth_estimate_bytes_per_second = 2; 31 // The maximum bandwidth seen to the client, not necessarily the latest. 32 optional int32 max_bandwidth_estimate_bytes_per_second = 5; 33 // Timestamp (seconds since UNIX epoch) that indicates when the max bandwidth 34 // was seen by the server. 35 optional int64 max_bandwidth_timestamp_seconds = 6; 36 // The min RTT seen on a previous connection can be used by the server to 37 // inform initial connection parameters for new connections. 38 optional int32 min_rtt_ms = 3; 39 // Encodes the PreviousConnectionState enum. 40 optional int32 previous_connection_state = 4; 41 // UNIX timestamp when this bandwidth estimate was created. 42 optional int64 timestamp = 7; 43}; 44