syntax = "proto3";
option go_package = "pingtunnel";

message MyMsg {
  enum TYPE {
    DATA = 0;
    PING = 1;
    MAGIC = 0xdead;
  }

  string id = 1;
  int32 type = 2;
  string target = 3;
  bytes data = 4;
  sint32 rproto = 5;
  sint32 magic = 6;
  sint32 key = 7;
  int32 tcpmode = 8;
  int32 tcpmode_buffersize = 9;
  int32 tcpmode_maxwin = 10;
  int32 tcpmode_resend_timems = 11;
  int32 timeout = 12;
}

message Frame {
  enum TYPE {
    DATA = 0;
    REQ = 1;
    ACK = 2;
    PING = 3;
    PONG = 4;
  }
  
  int32 type = 1;
  bool resend = 2;
  int64 sendtime = 3;
  int32 id = 4;
  bytes data = 5;
  repeated int32 dataid = 6;
}