Striven
2025-09-10 15ce2d6a817b193516f024e43a075ae64d69c29c
04_rendezvous/05_rmc_protocol.md
@@ -13,6 +13,8 @@
| ...                                                                 | ...                                                               | ...                  |
## Base Packet Format
##### Parsing
| Name          | Description                                                                                                                                                 | Type                                            |
|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| Packet Length | The total number of bytes in the packet, not including the length itself.                                                                                   | `u32`                                           |
@@ -21,7 +23,8 @@
| ...           | See [Request Packet Format](#request-packet-format) or [Response Packet Format](#response-packet-format) for parsing the packet depending on `Is Request?`. | ...                                             |
## Request Packet Format
Example:
##### Example
```
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000  F8 00 00 00 0E 00 4C 6F 67 69 6E 50 72 6F 74 6F  ΓΈ.....LoginProto
@@ -42,6 +45,7 @@
000000F0  39 31 30 33 3B 73 69 64 3D 31 35 00              9103;sid=15.
```
##### Parsing
| Name           | Description                                                                                                                               | Type                                                                              |
|----------------|-------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|
| ...            | See [Base Packet Format](#base-packet-format) for parsing the prologue of a request packet.                                               | ...                                                                               |
@@ -64,7 +68,8 @@
| Version        | The version of the structure.                     | `u16`                                           |
## Response Packet Format
Examples:
##### Example
```
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000  25 00 00 00 0E 00 4C 6F 67 69 6E 50 72 6F 74 6F  %.....LoginProto
@@ -75,6 +80,7 @@
> [!NOTE]
> TODO: Successful response example
##### Parsing
| Name           | Description                                                                                                                                                                           | Type   |
|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------|
| ...            | See [Base Packet Format](#base-packet-format) for parsing the prologue of a response packet.                                                                                          | ...    |
@@ -83,16 +89,20 @@
### Successful Response Format
##### Parsing
| Name          | Description                                                                                                                                | Type                                            |
|---------------|--------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| ...           | See [Response Packet Format](#response-packet-format) for parsing the prologue of a successful response packet.                            | ...                                             |
| Call ID       | The nonce token for the call to associate the response to the request.                                                                     | `u32`                                           |
| Method Name   | The method that was called by the client.                                                                                                  | [`String`](./03_rendezvous_structure.md#string) |
| Response Data | Raw data to pass to the response handler, see the respective [protocol and method specification](#known-protocols) to write and read this. | `<remaining bytes>`                             |
### Unsuccessful Response Format
| Name            | Description                                                            | Type                                            |
|-----------------|------------------------------------------------------------------------|-------------------------------------------------|
| Error Namespace | The category of error that occurred.                                   | [`String`](./03_rendezvous_structure.md#string) |
| Error Code      | The code of the error in the specified namespace                       | `u16`                                           |
| Call ID         | The nonce token for the call to associate the response to the request. | `u32`                                           |
##### Parsing
| Name            | Description                                                                                                        | Type                                            |
|-----------------|--------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| ...             | See [Response Packet Format](#response-packet-format) for parsing the prologue of an unsuccessful response packet. | ...                                             |
| Error Namespace | The category of error that occurred.                                                                               | [`String`](./03_rendezvous_structure.md#string) |
| Error Code      | The code of the error in the specified namespace                                                                   | `u16`                                           |
| Call ID         | The nonce token for the call to associate the response to the request.                                             | `u32`                                           |