// 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;
}
