| // Copyright 2013 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // This protocol buffer defines the message format between the probe clients |
| // and the probe servers. |
| |
| syntax = "proto2"; |
| |
| package chrome_browser_net; |
| |
| // Chrome requires this. |
| option optimize_for = LITE_RUNTIME; |
| |
| // Next available id: 10. |
| message ProbePacket { |
| enum Type { |
| UNKNOWN = 0; |
| HELLO_REQUEST = 1; |
| HELLO_REPLY = 2; |
| PROBE_REQUEST = 3; |
| PROBE_REPLY = 4; |
| } |
| |
| message Header { |
| required uint32 version = 1; |
| optional uint32 checksum = 2; |
| optional Type type = 3; |
| } |
| |
| message Token { |
| required uint64 timestamp_micros = 1; |
| required bytes hash = 2; // 16-byte MD5 hash value for authorization. |
| } |
| |
| optional Header header = 1; |
| optional Token token = 2; // For authorization. |
| // For differentiating different batches of packets. |
| optional uint32 group_id = 3; |
| optional uint32 packet_index = 4; // Packet index in each batch. |
| optional uint32 probe_size_bytes = 5; // Specify the probe packet size. |
| // Time duration between sending two consecutive packets. |
| optional uint32 pacing_interval_micros = 6; |
| // Total number of probe packets to send from the server. |
| optional uint32 number_probe_packets = 7; |
| optional int64 server_processing_micros = 9; |
| optional bytes padding = 8; |
| } |