The Donet Protocol
Recognizing Original Works
The original designers of this protocol are the Astron contributors, with special recognition to:
Sam “CFSworks” Edwards
Kevin “Kestred” Stenerson
The Donet network protocol is made up of two separate, yet similar protocols:
The Client and the Internal protocols.
Client messages are sent only between the clients and the CA.
Internal messages are sent only in between services inside the ‘trusted zone’, that is the cluster network.
Every message type defined has a certain 16-bit number identifier. Message type number IDs are organized in ranges, each range designated to a certain Donet service.
Overview
Client Protocol
All message types in the client protocol are in the 0-999 range.
0 - 99: Basic messages for maintaining the connection with the Client Agent.
100 - 199: Distributed Object generates and field updates.
200 - 999: Client Interest controls.
Internal Protocol
- 1000 - 1999 | Client Agent
1000 - 1099 - Client State and Session controls
1100 - 1199 - Channel Controls
1200 - 1999 - Interest Controls
- 2000 - 2999 | State Server / DBSS
2000 - 2009 - Object Create / Delete
2010 - 2039 - Object Fields
2040 - 2049 - Object Location
2050 - 2059 - Object Designated AI
2060 - 2099 - Object Ownership
2100 - 2199 - Zone Controls
2200 - 2229 - DBSS Object Activation
2230 - 2239 - Object Data on Disk
- 3000 - 3999 | Database Server
3000 - 3009 - Object Create
3010 - 3019 - Object Get Fields
3020 - 3029 - Object Set Fields
3030 - 3039 - Object Delete Fields
- 9000 - 9999 | Message Director
9000 - 9009 - Channels and Channel Ranges
9010 - 9019 - Post Removes
Protocol Reference
Message Director | Control Messages
Message |
ID |
Parameters |
---|---|---|
9000 |
uint64 channel |
|
9001 |
uint64 channel |
|
9002 |
uint64 low, uint64 high |
|
9003 |
uint64 low, uint64 high |
|
9010 |
uint64 sender, blob datagram |
|
9011 |
uint64 sender |
|
9012 |
string name |
|
9013 |
string url |
|
9014 |
blob msgpack_datagram |
Client Messages
Message |
ID |
Parameters |
---|---|---|
1 |
uint32 dc_hash, string version |
|
2 |
||
3 |
||
4 |
uint16 error_code, string reason |
|
5 |
||
142 |
uint32 do_id,
uint32 parent_id,
uint32 zone_id,
uint16 dclass_id,
|
|
143 |
uint32 do_id,
uint32 parent_id,
uint32 zone_id,
uint16 dclass_id,
|
|
172 |
uint32 do_id,
uint32 parent_id,
uint32 zone_id,
uint16 dclass_id,
|
|
173 |
uint32 do_id,
uint32 parent_id,
uint32 zone_id,
uint16 dclass_id,
|
|
120 |
uint32 do_id,
uint16 field_id,
|
|
121 |
uint32 do_id,
uint16 n_fields,
[uint16 field_id,
|
|
132 |
uint32 do_id |
|
140 |
uint32 do_id, uint32 parent_id, uint32 zone_id |
|
200 |
uint32 context, uint16 interest_id, uint32 parent_id, uint32 zone_id |
|
201 |
uint32 context, uint16 interest_id, uint32 parent_id, uint16 n_zones, [uint32 zone_id] * n_zones |
|
203 |
uint32 context, uint16 interest_id |
|
204 |
uint32 context, uint16 interest_id |
Client Agent Messages
Message |
ID |
Parameters |
---|---|---|
1000 |
uint16 ca_state |
|
1001 |
uint64 channel |
|
1002 |
blob datagram |
|
1004 |
uint16 error_code, string reason |
|
1005 |
||
1006 |
uint32 context |
|
1007 |
uint32 context, string remote_ip, uint16 remote_port, string local_ip, uint16 local_port |
|
1010 |
uint32 do_id, uint16 dclass_id |
|
1011 |
uint32 do_id |
|
1012 |
uint32 do_id |
|
1013 |
uint32 do_id |
|
1014 |
uint32 do_id, [uint16 field_id], […] |
|
1015 |
uint32 context |
|
1016 |
uint32 context, blob tlvs |
|
1100 |
uint64 channel |
|
1101 |
uint64 channel |
|
1110 |
blob datagram |
|
1111 |
||
1200 |
uint16 interest_id, uint32 parent_id, uint32 zone_id |
|
1201 |
uint16 interest_id, uint32 parent_id, uint16 n_zones, [uint32 zone_id] * n_zones |
|
1203 |
uint16 interest_id |
State Server Messages
Message |
ID |
Parameters |
---|---|---|
2000 |
uint32 do_id,
uint32 parent_id,
uint32 zone_id,
uint16 dclass_id,
|
|
2001 |
uint32 do_id,
uint32 parent_id,
uint32 zone_id,
uint16 dclass_id,
|
|
2009 |
uint64 ai_channel |
State Server | Distributed Object Accessor Messages
Message |
ID |
Parameters |
---|---|---|
2010 |
uint32 context, uint32 do_id, uint16 field_id |
|
2011 |
uint32 context, uint8 success,
[uint16 field_id, |
|
2012 |
uint32 context, uint32 do_id, uint16 n_fields, [uint16 field_id] * n_fields |
|
2013 |
uint32 context, uint8 success,
uint16 n_fields,
[uint16 field_id, |
|
2014 |
uint32 context, uint32 do_id |
|
2015 |
uint32 context, uint32 do_id,
uint32 parent_id,
uint32 zone_id,
uint16 dclass_id,
|
|
2020 |
uint32 do_id, uint16 field_id,
|
|
2021 |
uint32 do_id, uint16 n_fields,
[uint16 field_id, |
|
2030 |
uint32 do_id, uint16 field_id |
|
2031 |
uint32 do_id, uint16 n_fields, [uint16 field_id] * n_fields |
|
2032 |
uint32 do_id |
State Server | Distributed Object Visibility Messages
Message |
ID |
Parameters |
---|---|---|
2040 |
uint32 parent_id, uint32 zone_id |
|
2041 |
uint32 do_id, uint32 parent, uint32 zone, uint32 old_parent , uint32 old_zone |
|
2042 |
uint32 do_id,
uint32 parent_id,
uint32 zone_id,
uint16 dclass_id,
|
|
2043 |
uint32 do_id,
uint32 parent_id,
uint32 zone_id,
uint16 dclass_id,
|
|
2044 |
uint32 context |
|
2045 |
uint32 context, uint32 do_id, uint32 parent_id, uint32 zone_id |
|
2046 |
uint32 parent_id, uint32 zone_id |
|
2050 |
uint64 ai_channel |
|
2051 |
uint32 do_id, uint64 new_ai, uint64 old_ai |
|
2052 |
uint32 do_id,
uint32 parent_id,
uint32 zone_id,
uint16 dclass_id,
|
|
2053 |
uint32 do_id,
uint32 parent_id,
uint32 zone_id,
uint16 dclass_id,
|
|
2054 |
uint32 context |
|
2055 |
uint32 context, uint32 do_id, uint64 ai_channel |
|
2060 |
uint64 owner_chan |
|
2061 |
uint32 do_id, uint64 new_owner, uint64 old_owner |
|
2062 |
uint32 do_id,
uint32 parent_id,
uint32 zone_id,
uint16 dclass_id,
|
|
2063 |
uint32 do_id,
uint32 parent_id,
uint32 zone_id,
uint16 dclass_id,
|
|
2064 |
uint32 context |
|
2065 |
uint32 context, uint32 do_id, uint64 owner_chan |
|
2066 |
uint32 context,
uint32 do_id,
uint32 parent_id,
uint32 zone_id,
uint16 dclass_id,
|
|
2067 |
uint32 context,
uint32 do_id,
uint32 parent_id,
uint32 zone_id,
uint16 dclass_id,
|
State Server | Parent Object Methods
Message |
ID |
Parameters |
---|---|---|
2100 |
uint32 context, uint32 parent_id, uint32 zone_id |
|
2102 |
uint32 context, uint32 parent_id, uint16 n_zones, [uint32 zone_id] * n_zones |
|
2104 |
uint32 context, uint32 parent_id |
|
2110 |
uint32 context, uint32 parent_id, uint32 zone_id |
|
2111 |
uint32 context, uint32 count |
|
2112 |
uint32 context, uint32 parent_id, uint16 n_zones, [uint32 zone_id] * n_zones |
|
2113 |
uint32 context, uint32 count |
|
2114 |
uint32 context, uint32 parent_id |
|
2115 |
uint32 context, uint32 object_count |
|
2120 |
uint32 parent_id, uint32 zone_id |
|
2122 |
uint32 parent_id, uint16 n_zones, [uint32 zone_id] * n_zones |
|
2124 |
uint32 parent_id |
|
2125 |
uint32 context |
|
2126 |
uint32 context, uint16 n_zones, [uint32 zone_id] * n_zones |
DBSS Object Messages
Message |
ID |
Parameters |
---|---|---|
2200 |
uint32 do_id, uint32 parent_id, uint32 zone_id |
|
2201 |
uint32 do_id,
uint32 parent_id,
uint32 zone_id,
uint16 dclass_id,
|
|
2207 |
uint32 context, uint32 do_id |
|
2208 |
uint32 context, uint32 do_id, uint8 is_active |
|
2230 |
uint32 do_id, uint16 field_id |
|
2231 |
uint32 do_id, uint16 n_fields, [uint16 field_id] * n_fields |
|
2232 |
uint32 do_id |
DBServer | Database Object Messages
Message |
ID |
Parameters |
---|---|---|
3000 |
uint32 context,
uint16 dclass_id,
uint16 n_fields,
[uint16 field_id,
|
|
3001 |
uint32 context, uint32 do_id |
|
3010 |
uint32 context, uint32 do_id, uint16 field_id |
|
3011 |
uint32 context,
uint8 success,
[uint16 field_id,
|
|
3012 |
uint32 context, uint32 do_id, uint16 n_fields, [uint16 field_id] * n_fields |
|
3013 |
uint32 context,
uint8 success,
[uint16 n_fields],
[uint16 field_id,
|
|
3014 |
uint32 context, uint32 do_id |
|
3015 |
uint32 context,
uint8 success,
[uint16 dclass_id,
uint16 n_fields],
[uint16 field_id,
|
|
3020 |
uint32 do_id,
uint16 field_id,
|
|
3021 |
uint32 do_id,
uint16 n_fields,
[uint16 field_id,
|
|
3022 |
uint32 context,
uint32 do_id,
uint16 field_id,
|
|
3023 |
uint32 context,
uint8 success,
[uint16 field_id,
|
|
3024 |
uint32 context,
uint32 do_id,
uint16 n_fields,
[uint16 field_id,
|
|
3025 |
uint32 context,
uint8 success,
[uint16 n_fields],
[uint16 field_id,
|
|
3026 |
uint32 context,
uint32 do_id,
uint16 field_id,
|
|
3027 |
uint32 context,
uint8 success,
[uint16 field_id,
|
|
3030 |
uint32 do_id, uint16 field_id |
|
3031 |
uint32 do_id, uint16 n_fields, [uint16 field_id] * n_fields |
|
3032 |
uint32 do_id |