// Copyright 2013 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. // 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; }