import "steamnetworkingsockets_messages_certs.proto";
import "steamnetworkingsockets_messages.proto";

option optimize_for = SPEED;
option cc_generic_services = false;

enum ESteamNetworkingUDPMsgID {
	k_ESteamNetworkingUDPMsg_ChallengeRequest = 32;
	k_ESteamNetworkingUDPMsg_ChallengeReply = 33;
	k_ESteamNetworkingUDPMsg_ConnectRequest = 34;
	k_ESteamNetworkingUDPMsg_ConnectOK = 35;
	k_ESteamNetworkingUDPMsg_ConnectionClosed = 36;
	k_ESteamNetworkingUDPMsg_NoConnection = 37;
}

message CMsgSteamSockets_UDP_ChallengeRequest {
	optional fixed32 connection_id = 1;
	optional fixed64 my_timestamp = 3;
	optional uint32 protocol_version = 4;
}

message CMsgSteamSockets_UDP_ChallengeReply {
	optional fixed32 connection_id = 1;
	optional fixed64 challenge = 2;
	optional fixed64 your_timestamp = 3;
	optional uint32 protocol_version = 4;
}

message CMsgSteamSockets_UDP_ConnectRequest {
	optional fixed32 client_connection_id = 1;
	optional fixed64 challenge = 2;
	optional fixed64 my_timestamp = 5;
	optional uint32 ping_est_ms = 6;
	optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7;
	optional .CMsgSteamDatagramCertificateSigned cert = 4;
	optional uint32 protocol_version = 8;
	optional .CMsgSteamNetworkingIdentity identity = 9;
	optional fixed64 legacy_client_steam_id = 3;
}

message CMsgSteamSockets_UDP_ConnectOK {
	optional fixed32 client_connection_id = 1;
	optional fixed32 server_connection_id = 5;
	optional fixed64 your_timestamp = 3;
	optional uint32 delay_time_usec = 4;
	optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7;
	optional .CMsgSteamDatagramCertificateSigned cert = 8;
	optional uint32 protocol_version = 9;
	optional .CMsgSteamNetworkingIdentity identity = 10;
	optional fixed64 legacy_server_steam_id = 2;
}

message CMsgSteamSockets_UDP_ConnectionClosed {
	optional fixed32 to_connection_id = 4;
	optional fixed32 from_connection_id = 5;
	optional string debug = 2;
	optional uint32 reason_code = 3;
}

message CMsgSteamSockets_UDP_NoConnection {
	optional fixed32 from_connection_id = 2;
	optional fixed32 to_connection_id = 3;
}

message CMsgSteamSockets_UDP_Stats {
	enum Flags {
		ACK_REQUEST_E2E = 2;
		ACK_REQUEST_IMMEDIATE = 4;
	}

	optional .CMsgSteamDatagramConnectionQuality stats = 1;
	optional uint32 flags = 3;
	optional fixed32 to_connection_id = 9;
	optional fixed32 from_connection_id = 10;
	optional uint32 seq_num = 4;
}
