• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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