proto-tf2/protos/steamdatagram_messages.proto

598 lines
19 KiB
Protocol Buffer

import "steamdatagram_auth_messages.proto";
option cc_generic_services = false;
enum ESteamDatagramMsgID {
k_ESteamDatagramMsg_Invalid = 0;
k_ESteamDatagramMsg_RouterPingRequest = 1;
k_ESteamDatagramMsg_RouterPingReply = 2;
k_ESteamDatagramMsg_GameserverPingRequest = 3;
k_ESteamDatagramMsg_GameserverPingReply = 4;
k_ESteamDatagramMsg_GameserverSessionRequest = 5;
k_ESteamDatagramMsg_GameserverSessionEstablished = 6;
k_ESteamDatagramMsg_NoSession = 7;
k_ESteamDatagramMsg_Diagnostic = 8;
k_ESteamDatagramMsg_DataClientToRouter = 9;
k_ESteamDatagramMsg_DataRouterToServer = 10;
k_ESteamDatagramMsg_DataServerToRouter = 11;
k_ESteamDatagramMsg_DataRouterToClient = 12;
k_ESteamDatagramMsg_Stats = 13;
k_ESteamDatagramMsg_ClientPingSampleRequest = 14;
k_ESteamDatagramMsg_ClientPingSampleReply = 15;
k_ESteamDatagramMsg_ClientToRouterSwitchedPrimary = 16;
k_ESteamDatagramMsg_RelayHealth = 17;
k_ESteamDatagramMsg_ConnectRequest = 18;
k_ESteamDatagramMsg_ConnectOK = 19;
k_ESteamDatagramMsg_ConnectionClosed = 20;
k_ESteamDatagramMsg_NoConnection = 21;
k_ESteamDatagramMsg_RelayToRelayPingRequest = 22;
k_ESteamDatagramMsg_RelayToRelayPingReply = 23;
k_ESteamDatagramMsg_P2PSessionRequest = 24;
k_ESteamDatagramMsg_P2PSessionEstablished = 25;
}
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;
k_ESteamNetworkingUDPMsg_Stats = 38;
}
message CMsgSteamDatagramRouterPingReply {
message RouteException {
optional fixed32 data_center_id = 1;
optional uint32 flags = 2;
optional uint32 penalty = 3;
}
optional fixed32 client_timestamp = 1;
repeated fixed32 latency_datacenter_ids = 2 [packed = true];
repeated uint32 latency_ping_ms = 3 [packed = true];
optional fixed32 your_public_ip = 4;
optional fixed32 server_time = 5;
optional fixed64 challenge = 6;
optional uint32 seconds_until_shutdown = 7;
optional fixed32 client_cookie = 8;
optional uint32 scoring_penalty_relay_cluster = 9;
repeated .CMsgSteamDatagramRouterPingReply.RouteException route_exceptions = 10;
}
message CMsgSteamDatagramGameserverPing {
optional uint32 legacy_client_session = 1;
optional fixed64 client_steam_id = 2;
optional fixed32 client_timestamp = 3;
optional fixed32 router_timestamp = 4;
optional uint32 router_gameserver_latency = 5;
optional uint32 seq_number_router = 6;
optional uint32 seq_number_e2e = 7;
optional uint32 relay_session_id = 8;
optional fixed32 connection_id = 9;
}
message CMsgSteamDatagramRelayToRelayPing {
optional fixed32 request_timestamp = 1;
optional fixed32 request_date = 2;
optional fixed32 my_pop_id = 3;
optional fixed32 your_pop_id = 4;
optional fixed32 checksum = 5;
}
message CMsgSteamDatagramSessionCryptInfo {
enum EKeyType {
INVALID = 0;
CURVE25519 = 1;
}
optional .CMsgSteamDatagramSessionCryptInfo.EKeyType key_type = 1 [default = INVALID];
optional bytes key_data = 2;
optional fixed64 nonce = 3;
optional bool is_snp = 4;
}
message CMsgSteamDatagramSessionCryptInfoSigned {
optional bytes info = 1;
optional bytes signature = 2;
}
message CMsgSteamDatagramGameserverSessionRequest {
optional bytes ticket = 1;
optional fixed32 challenge_time = 3;
optional fixed64 challenge = 4;
optional fixed32 client_connection_id = 5;
optional fixed32 server_connection_id = 8;
optional uint32 network_config_version = 6;
optional uint32 protocol_version = 7;
}
message CMsgSteamDatagramGameserverSessionEstablished {
optional fixed32 connection_id = 1;
optional fixed64 gameserver_steam_id = 3;
optional uint32 seconds_until_shutdown = 4;
optional uint32 legacy_relay_session_id = 5;
optional uint32 seq_num_r2c = 6;
}
message CMsgSteamDatagramNoSessionRelayToClient {
optional uint32 legacy_relay_session_id = 1;
optional fixed32 connection_id = 7;
optional fixed32 your_public_ip = 2;
optional fixed32 server_time = 3;
optional fixed64 challenge = 4;
optional uint32 seconds_until_shutdown = 5;
}
message CMsgSteamDatagramNoSessionRelayToServer {
optional uint32 relay_session_id = 1;
optional fixed32 client_connection_id = 7;
optional fixed32 server_connection_id = 8;
optional fixed64 kludge_pad = 99;
}
message CMsgSteamDatagramDiagnostic {
optional uint32 severity = 1;
optional string text = 2;
}
message CMsgSteamDatagramDataCenterState {
message Server {
optional string address = 1;
optional uint32 ping_ms = 2;
}
message DataCenter {
optional string code = 1;
repeated .CMsgSteamDatagramDataCenterState.Server server_sample = 2;
repeated .CMsgSteamDatagramDataCenterState.Server relay_sample = 3;
}
repeated .CMsgSteamDatagramDataCenterState.DataCenter data_centers = 1;
}
message CMsgSteamDatagramLinkInstantaneousStats {
optional uint32 out_packets_per_sec_x10 = 1;
optional uint32 out_bytes_per_sec = 2;
optional uint32 in_packets_per_sec_x10 = 3;
optional uint32 in_bytes_per_sec = 4;
optional uint32 ping_ms = 5;
optional uint32 packets_dropped_pct = 6;
optional uint32 packets_weird_sequence_pct = 7;
optional uint32 peak_jitter_usec = 8;
}
message CMsgSteamDatagramLinkLifetimeStats {
optional uint64 packets_sent = 3;
optional uint64 kb_sent = 4;
optional uint64 packets_recv = 5;
optional uint64 kb_recv = 6;
optional uint64 packets_recv_sequenced = 7;
optional uint64 packets_recv_dropped = 8;
optional uint64 packets_recv_out_of_order = 9;
optional uint64 packets_recv_duplicate = 10;
optional uint64 packets_recv_lurch = 11;
optional uint32 quality_histogram_100 = 21;
optional uint32 quality_histogram_99 = 22;
optional uint32 quality_histogram_97 = 23;
optional uint32 quality_histogram_95 = 24;
optional uint32 quality_histogram_90 = 25;
optional uint32 quality_histogram_75 = 26;
optional uint32 quality_histogram_50 = 27;
optional uint32 quality_histogram_1 = 28;
optional uint32 quality_histogram_dead = 29;
optional uint32 quality_ntile_2nd = 30;
optional uint32 quality_ntile_5th = 31;
optional uint32 quality_ntile_25th = 32;
optional uint32 quality_ntile_50th = 33;
optional uint32 ping_histogram_25 = 41;
optional uint32 ping_histogram_50 = 42;
optional uint32 ping_histogram_75 = 43;
optional uint32 ping_histogram_100 = 44;
optional uint32 ping_histogram_125 = 45;
optional uint32 ping_histogram_150 = 46;
optional uint32 ping_histogram_200 = 47;
optional uint32 ping_histogram_300 = 48;
optional uint32 ping_histogram_max = 49;
optional uint32 ping_ntile_5th = 50;
optional uint32 ping_ntile_50th = 51;
optional uint32 ping_ntile_75th = 52;
optional uint32 ping_ntile_95th = 53;
optional uint32 ping_ntile_98th = 54;
optional uint32 jitter_histogram_negligible = 61;
optional uint32 jitter_histogram_1 = 62;
optional uint32 jitter_histogram_2 = 63;
optional uint32 jitter_histogram_5 = 64;
optional uint32 jitter_histogram_10 = 65;
optional uint32 jitter_histogram_20 = 66;
optional uint32 txspeed_max = 67;
optional uint32 txspeed_histogram_16 = 68;
optional uint32 txspeed_histogram_32 = 69;
optional uint32 txspeed_histogram_64 = 70;
optional uint32 txspeed_histogram_128 = 71;
optional uint32 txspeed_histogram_256 = 72;
optional uint32 txspeed_histogram_512 = 73;
optional uint32 txspeed_histogram_1024 = 74;
optional uint32 txspeed_histogram_max = 75;
optional uint32 txspeed_ntile_5th = 76;
optional uint32 txspeed_ntile_50th = 77;
optional uint32 txspeed_ntile_75th = 78;
optional uint32 txspeed_ntile_95th = 79;
optional uint32 txspeed_ntile_98th = 80;
optional uint32 rxspeed_max = 81;
optional uint32 rxspeed_histogram_16 = 82;
optional uint32 rxspeed_histogram_32 = 83;
optional uint32 rxspeed_histogram_64 = 84;
optional uint32 rxspeed_histogram_128 = 85;
optional uint32 rxspeed_histogram_256 = 86;
optional uint32 rxspeed_histogram_512 = 87;
optional uint32 rxspeed_histogram_1024 = 88;
optional uint32 rxspeed_histogram_max = 89;
optional uint32 rxspeed_ntile_5th = 90;
optional uint32 rxspeed_ntile_50th = 91;
optional uint32 rxspeed_ntile_75th = 92;
optional uint32 rxspeed_ntile_95th = 93;
optional uint32 rxspeed_ntile_98th = 94;
}
message CMsgSteamDatagramConnectionQuality {
optional .CMsgSteamDatagramLinkInstantaneousStats instantaneous = 1;
optional .CMsgSteamDatagramLinkLifetimeStats lifetime = 2;
}
message CMsgSteamDatagramConnectionStatsClientToRouter {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality c2r = 1;
optional .CMsgSteamDatagramConnectionQuality c2s = 2;
optional fixed32 legacy_client_timestamp = 3;
repeated fixed32 ack_relay = 4;
repeated fixed32 ack_e2e = 5;
optional uint32 flags = 6;
optional fixed32 client_connection_id = 8;
optional uint32 seq_num_c2r = 9;
optional uint32 seq_num_c2s = 10;
}
message CMsgSteamDatagramConnectionStatsRouterToClient {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality r2c = 1;
optional .CMsgSteamDatagramConnectionQuality s2c = 2;
optional fixed32 legacy_client_timestamp_from_router = 3;
optional fixed32 legacy_client_timestamp_from_server = 4;
optional uint32 router_gameserver_latency = 5;
optional uint32 seconds_until_shutdown = 6;
optional fixed32 migrate_request_ip = 10;
optional uint32 migrate_request_port = 11;
optional uint32 scoring_penalty_relay_cluster = 12;
repeated fixed32 ack_relay = 13;
repeated fixed32 ack_e2e = 14;
optional uint32 flags = 15;
optional fixed32 client_connection_id = 7;
optional uint32 seq_num_r2c = 8;
optional uint32 seq_num_s2c = 9;
}
message CMsgSteamDatagramConnectionStatsRouterToServer {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality r2s = 1;
optional .CMsgSteamDatagramConnectionQuality c2s = 2;
optional fixed32 legacy_client_timestamp = 3;
optional fixed32 legacy_router_timestamp = 4;
repeated fixed32 ack_relay = 10;
repeated fixed32 ack_e2e = 11;
optional uint32 flags = 12;
optional uint32 seq_num_r2s = 5;
optional uint32 seq_num_c2s = 6;
optional fixed64 client_steam_id = 7;
optional uint32 relay_session_id = 8;
optional fixed32 client_connection_id = 9;
optional fixed32 server_connection_id = 13;
}
message CMsgSteamDatagramConnectionStatsServerToRouter {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality s2r = 1;
optional .CMsgSteamDatagramConnectionQuality s2c = 2;
repeated fixed32 ack_relay = 8;
repeated fixed32 ack_e2e = 9;
optional uint32 flags = 10;
optional uint32 seq_num_s2r = 3;
optional uint32 seq_num_s2c = 4;
optional fixed64 client_steam_id = 5;
optional uint32 relay_session_id = 6;
optional fixed32 client_connection_id = 7;
optional fixed32 server_connection_id = 11;
}
message CMsgSteamDatagramClientPingSampleRequest {
optional fixed32 connection_id = 1;
}
message CMsgSteamDatagramClientPingSampleReply {
message RoutingCluster {
optional fixed32 id = 1;
optional uint32 front_ping_ms = 2;
optional uint32 e2e_ping_ms = 3;
}
message DataCenter {
optional fixed32 data_center_id = 1;
optional fixed32 via_relay_id = 2;
optional uint32 e2e_ping_ms = 3;
}
optional fixed32 connection_id = 1;
repeated .CMsgSteamDatagramClientPingSampleReply.RoutingCluster routing_clusters = 2;
repeated .CMsgSteamDatagramClientPingSampleReply.DataCenter data_centers = 3;
}
message CMsgSteamDatagramClientSwitchedPrimary {
message RouterQuality {
optional uint32 score = 1;
optional uint32 front_ping = 2;
optional uint32 back_ping = 3;
optional uint32 seconds_until_down = 4;
}
optional fixed32 connection_id = 1;
optional fixed32 from_ip = 2;
optional uint32 from_port = 3;
optional fixed32 from_router_cluster = 4;
optional uint32 from_active_time = 5;
optional uint32 from_active_packets_recv = 6;
optional string from_dropped_reason = 7;
optional uint32 gap_ms = 8;
optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_now = 9;
optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_now = 10;
optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_then = 11;
optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_then = 12;
}
message CMsgSteamDatagramRouterHealth {
message DataCenter {
optional fixed32 datacenter_id = 1;
optional uint32 state = 2;
}
optional float cpu_load = 1;
optional uint32 active_sessions = 2;
optional uint32 data_pkts_sec = 3;
optional uint32 other_pkts_sec = 4;
optional uint32 seconds_until_shutdown = 5;
optional float cpu_cost_per_user = 8;
optional float cpu_cost_per_packet = 9;
repeated .CMsgSteamDatagramRouterHealth.DataCenter data_centers = 6;
optional fixed64 magic = 7;
}
message CMsgSteamDatagramConnectRequest {
optional fixed32 connection_id = 1;
optional fixed64 client_steam_id = 3;
optional fixed64 my_timestamp = 4;
optional uint32 ping_est_ms = 5;
optional uint32 virtual_port = 9;
optional uint32 gameserver_relay_session_id = 2;
optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6;
optional .CMsgSteamDatagramCertificateSigned cert = 7;
optional uint32 protocol_version = 8;
}
message CMsgSteamDatagramConnectOK {
optional fixed32 client_connection_id = 1;
optional fixed32 server_connection_id = 7;
optional fixed64 your_timestamp = 3;
optional uint32 delay_time_usec = 4;
optional uint32 gameserver_relay_session_id = 2;
optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5;
optional .CMsgSteamDatagramCertificateSigned cert = 6;
optional uint32 protocol_version = 8;
}
message CMsgSteamDatagramConnectionClosed {
enum ERelayMode {
None = 0;
EndToEnd = 1;
ClosedByPeer = 2;
}
optional fixed32 legacy_client_connection_id = 1;
optional fixed32 to_connection_id = 7;
optional fixed32 from_connection_id = 8;
optional fixed64 peer_steam_id = 3;
optional uint32 gameserver_relay_session_id = 2;
optional .CMsgSteamDatagramConnectionClosed.ERelayMode relay_mode = 4 [default = None];
optional string debug = 5;
optional uint32 reason_code = 6;
}
message CMsgSteamDatagramNoConnection {
optional fixed32 legacy_client_connection_id = 1;
optional fixed32 to_connection_id = 5;
optional fixed32 from_connection_id = 6;
optional uint32 gameserver_relay_session_id = 2;
optional fixed64 peer_steam_id = 3;
optional bool end_to_end = 4;
optional fixed32 dummy_pad = 1023;
}
message CMsgSteamDatagramP2PSessionRequestBody {
optional fixed32 challenge_time = 1;
optional fixed64 challenge = 2;
optional fixed32 my_connection_id = 3;
optional fixed64 peer_steam_id = 4;
optional fixed32 peer_connection_id = 5;
optional uint32 protocol_version = 8;
optional uint32 network_config_version = 9;
optional fixed32 public_ip = 10;
}
message CMsgSteamDatagramP2PSessionRequest {
optional .CMsgSteamDatagramCertificateSigned cert = 1;
optional bytes body = 2;
optional bytes signature = 3;
}
message CMsgSteamDatagramP2PSessionEstablished {
optional fixed32 connection_id = 1;
optional uint32 seconds_until_shutdown = 3;
optional fixed64 relay_routing_id = 4;
optional uint32 seq_num_r2c = 5;
}
message CMsgSteamDatagramP2PRoutes {
message RelayCluster {
optional fixed32 pop_id = 1;
optional uint32 ping_ms = 2;
optional uint32 score_penalty = 3;
optional fixed64 session_relay_routing_id = 4;
}
message Route {
optional fixed32 my_pop_id = 1;
optional fixed32 your_pop_id = 2;
optional uint32 score = 3;
}
repeated .CMsgSteamDatagramP2PRoutes.RelayCluster relay_clusters = 1;
repeated .CMsgSteamDatagramP2PRoutes.Route routes = 2;
optional uint32 revision = 3;
}
message CMsgSteamDatagramP2PRendezvous {
optional fixed32 to_connection_id = 1;
optional .CMsgSteamDatagramP2PRoutes routes = 2;
optional uint32 ack_peer_routes_revision = 3;
optional .CMsgSteamDatagramConnectRequest connect_request = 4;
optional .CMsgSteamDatagramConnectOK connect_ok = 5;
optional .CMsgSteamDatagramConnectionClosed connection_closed = 6;
}
message CMsgSteamDatagramConnectionStatsP2PClientToRouter {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality c2r = 1;
optional .CMsgSteamDatagramConnectionQuality c2s = 2;
repeated fixed32 ack_relay = 3;
repeated fixed32 ack_e2e = 4;
optional uint32 flags = 5;
optional fixed64 forward_target_relay_routing_id = 6;
optional uint32 forward_target_revision = 7;
optional .CMsgSteamDatagramP2PRoutes routes = 8;
optional uint32 ack_peer_routes_revision = 9;
optional fixed32 connection_id = 10;
optional uint32 seq_num_c2r = 11;
optional uint32 seq_num_c2s = 12;
}
message CMsgSteamDatagramConnectionStatsP2PRouterToClient {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality r2c = 1;
optional .CMsgSteamDatagramConnectionQuality p2c = 2;
optional uint32 seconds_until_shutdown = 3;
optional fixed32 migrate_request_ip = 4;
optional uint32 migrate_request_port = 5;
optional uint32 scoring_penalty_relay_cluster = 6;
repeated fixed32 ack_relay = 7;
repeated fixed32 ack_e2e = 8;
optional uint32 flags = 9;
optional uint32 ack_forward_target_revision = 10;
optional .CMsgSteamDatagramP2PRoutes routes = 11;
optional uint32 ack_peer_routes_revision = 12;
optional fixed32 connection_id = 13;
optional uint32 seq_num_r2c = 14;
optional uint32 seq_num_p2c = 15;
}
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 client_steam_id = 3;
optional fixed64 my_timestamp = 5;
optional uint32 ping_est_ms = 6;
optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7;
optional .CMsgSteamDatagramCertificateSigned cert = 4;
optional uint32 protocol_version = 8;
}
message CMsgSteamSockets_UDP_ConnectOK {
optional fixed32 client_connection_id = 1;
optional fixed32 server_connection_id = 5;
optional fixed64 server_steam_id = 2;
optional fixed64 your_timestamp = 3;
optional uint32 delay_time_usec = 4;
optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 7;
optional .CMsgSteamDatagramCertificateSigned cert = 8;
optional uint32 protocol_version = 9;
}
message CMsgSteamSockets_UDP_ConnectionClosed {
optional fixed32 legacy_client_connection_id = 1;
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 legacy_client_connection_id = 1;
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;
repeated fixed32 ack_e2e = 2;
optional uint32 flags = 3;
optional fixed32 legacy_client_connection_id = 8;
optional fixed32 to_connection_id = 9;
optional fixed32 from_connection_id = 10;
optional uint32 seq_num = 4;
}