m2.mbcp/doc/my-rfc.txt
2006-03-06 21:16:17 +00:00

88 lines
1.8 KiB
Plaintext

RFC : Multi-BroadCast Protocol (MBCP)
-------------------------------------
In the case of TEST :
nothing to say...
In the case of ABCAST :
the first datagram (from emiter) contains the real message
the second datagram (from sites) contains the type/timestamp of the first datagram and
the new timestamp in the message part
the last datagram (from emiter) contains the type/timestamp of the first datagram and
the final official timestamp in the message part
Datagrams :
~~~~~~~~~~~
|------|-----------|---------|
| Type | Timestamp | Message |
|------|-----------|---------|
Type = unsigned char :
~~~~~~~~~~~~~~~~~~~~~~
Values:
- 'T' for test messages
- 'A' for ABCAST messages
- 'C' for CBCAST messages
- _ for unknown messages
Timestamp :
~~~~~~~~~~~
If Type == 'T' then
No timestamp, empty block, null size...
If Type == 'A' then
|------------|-------------|
| Site index | Clock value |
|------------|-------------|
If Type == 'C' then
|------------|------------|-------------|
| Site_index | Clock_size | Clock_value |
|------------|------------|-------------|
If Type is unknown then
can't be read, drop packet
Site_index : unsigned short (16 bits)
~~~~~~~~~~~~
Site indexes start at index = 0
Clock_size : same size than "Site index" (unsigned short 16 bits)
~~~~~~~~~~~~
Clock_value :
~~~~~~~~~~~~~
If Type = 'A' then
unsigned short (16 bits)
If Type = 'C' then
array of unsigned shorts (16 bits * Clock_size)
Message :
~~~~~~~~~
|--------------|--------------|
| Message_size | Message_data |
|--------------|--------------|
Message_size : unsigned short (16 bits)
~~~~~~~~~~~~~~
Message_data :
~~~~~~~~~~~~~~
array of unsigned shorts (16 bits * Message_size)
Notes:
~~~~~~
Timestamps start at time = 0