/
steamdatagram_messages_sdr.proto
389 lines (342 loc) 路 12 KB
/
steamdatagram_messages_sdr.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
import "steamnetworkingsockets_messages_certs.proto";
import "steamnetworkingsockets_messages.proto";
option cc_generic_services = false;
message CMsgSteamDatagramGameserverPing {
optional fixed32 router_timestamp = 4;
optional fixed64 dummy_pad = 99;
}
message CMsgSteamDatagramNoSessionRelayToClient {
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 CMsgSteamDatagramNoSessionRelayToPeer {
optional uint32 legacy_relay_session_id = 1;
optional fixed32 from_relay_session_id = 2;
optional fixed32 from_connection_id = 7;
optional fixed64 kludge_pad = 99;
}
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 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 to_connection_id = 7;
optional fixed32 from_connection_id = 8;
optional fixed64 from_steam_id = 3;
optional uint32 legacy_gameserver_relay_session_id = 2;
optional fixed32 to_relay_session_id = 9;
optional fixed32 from_relay_session_id = 10;
optional bytes forward_target_relay_routing_token = 11;
optional uint32 forward_target_revision = 12;
optional .CMsgSteamDatagramConnectionClosed.ERelayMode relay_mode = 4 [default = None];
optional string debug = 5;
optional uint32 reason_code = 6;
}
message CMsgSteamDatagramNoConnection {
optional fixed32 to_connection_id = 5;
optional fixed32 from_connection_id = 6;
optional uint32 legacy_gameserver_relay_session_id = 2;
optional fixed32 to_relay_session_id = 9;
optional fixed32 from_relay_session_id = 10;
optional fixed64 from_steam_id = 3;
optional bool end_to_end = 4;
optional fixed32 dummy_pad = 1023;
}
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 seq_num_r2c = 6;
}
message CMsgSteamDatagramConnectionStatsClientToRouter {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
repeated fixed32 ack_relay = 4;
repeated fixed32 legacy_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 quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
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 legacy_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 quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
repeated fixed32 ack_relay = 10;
repeated fixed32 legacy_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 quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
repeated fixed32 ack_relay = 8;
repeated fixed32 legacy_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 CMsgSteamDatagramP2PSessionRequestBody {
optional fixed32 challenge_time = 1;
optional fixed64 challenge = 2;
optional fixed32 client_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 bytes relay_routing_token = 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 bytes session_relay_routing_token = 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;
optional bytes failed_relay_routing_token = 7;
}
message CMsgSteamDatagramConnectionStatsP2PClientToRouter {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
repeated fixed32 ack_relay = 3;
repeated fixed32 legacy_ack_e2e = 4;
optional uint32 flags = 5;
optional bytes forward_target_relay_routing_token = 6;
optional uint32 forward_target_revision = 7;
optional bytes routes = 8;
optional uint32 ack_peer_routes_revision = 9;
optional fixed32 connection_id = 10;
optional uint32 seq_num_c2r = 11;
optional uint32 seq_num_e2e = 12;
}
message CMsgSteamDatagramConnectionStatsP2PRouterToClient {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 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 legacy_ack_e2e = 8;
optional uint32 flags = 9;
optional uint32 ack_forward_target_revision = 10;
optional bytes routes = 11;
optional uint32 ack_peer_routes_revision = 12;
optional fixed32 connection_id = 13;
optional uint32 seq_num_r2c = 14;
optional uint32 seq_num_e2e = 15;
}
message CMsgSteamDatagramP2PBadRouteRouterToClient {
optional fixed32 connection_id = 1;
optional bytes failed_relay_routing_token = 2;
optional uint32 ack_forward_target_revision = 3;
optional fixed64 kludge_pad = 99;
}
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 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 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 CMsgSteamDatagramConnectionStatsP2PRouterToRouter {
enum Flags {
ACK_REQUEST_RELAY = 1;
ACK_REQUEST_E2E = 2;
ACK_REQUEST_IMMEDIATE = 4;
}
optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
repeated fixed32 ack_relay = 3;
repeated fixed32 legacy_ack_e2e = 4;
optional uint32 flags = 5;
optional uint32 ack_forward_target_revision = 6;
optional bytes routes = 7;
optional uint32 ack_peer_routes_revision = 8;
optional uint32 seq_num_r2r = 26;
optional uint32 seq_num_e2e = 27;
optional fixed32 from_relay_session_id = 22;
optional fixed32 to_relay_session_id = 25;
}
message CMsgSteamDatagramP2PBadRouteRouterToRouter {
optional fixed32 from_relay_session_id = 1;
optional fixed64 kludge_pad = 99;
}