• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2013 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
5// This protocol buffer defines the message format between the probe clients
6// and the probe servers.
7
8syntax = "proto2";
9
10package chrome_browser_net;
11
12// Chrome requires this.
13option optimize_for = LITE_RUNTIME;
14
15// Next available id: 10.
16message ProbePacket {
17  enum Type {
18    UNKNOWN = 0;
19    HELLO_REQUEST = 1;
20    HELLO_REPLY = 2;
21    PROBE_REQUEST = 3;
22    PROBE_REPLY = 4;
23  }
24
25  message Header {
26    required uint32 version = 1;
27    optional uint32 checksum = 2;
28    optional Type type = 3;
29  }
30
31  message Token {
32    required uint64 timestamp_micros = 1;
33    required bytes hash = 2;  // 16-byte MD5 hash value for authorization.
34  }
35
36  optional Header header = 1;
37  optional Token token = 2;              // For authorization.
38  // For differentiating different batches of packets.
39  optional uint32 group_id = 3;
40  optional uint32 packet_index = 4;      // Packet index in each batch.
41  optional uint32 probe_size_bytes = 5;  // Specify the probe packet size.
42  // Time duration between sending two consecutive packets.
43  optional uint32 pacing_interval_micros = 6;
44  // Total number of probe packets to send from the server.
45  optional uint32 number_probe_packets = 7;
46  optional int64 server_processing_micros = 9;
47  optional bytes padding = 8;
48}
49