Difference between revisions of "Packet Layout"
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
Header: | Header: | ||
* Byte 0, most | * Byte 0, 4 most significant bits: Packet Information | ||
** LL_ACK_FLAG | ** LL_ACK_FLAG 0x10 -- This packet contains appended acks. | ||
** LL_RESENT_FLAG | ** LL_RESENT_FLAG 0x20 -- This packet is a resend from the source. | ||
** LL_RELIABLE_FLAG 0x40 | ** LL_RELIABLE_FLAG 0x40 -- This packet was sent reliably (implies please ack this packet) | ||
** LL_ZERO_CODE_FLAG | ** LL_ZERO_CODE_FLAG 0x80 -- Packet data is run length encoded, such that series of 1 to 255 zero bytes are encoded to take 2 bytes. | ||
* Bytes 0, (4 least significant bits) to byte 3: (for a total of 28 bit) Packet ID, assigned by circuit | * Bytes 0, (4 least significant bits) to byte 3: (for a total of 28 bit) Packet ID, assigned by circuit | ||
* Everything beyond this is potentially zerocoded for compression | * Everything beyond this is potentially zerocoded for compression |
Revision as of 13:28, 31 October 2006
Header:
- Byte 0, 4 most significant bits: Packet Information
- LL_ACK_FLAG 0x10 -- This packet contains appended acks.
- LL_RESENT_FLAG 0x20 -- This packet is a resend from the source.
- LL_RELIABLE_FLAG 0x40 -- This packet was sent reliably (implies please ack this packet)
- LL_ZERO_CODE_FLAG 0x80 -- Packet data is run length encoded, such that series of 1 to 255 zero bytes are encoded to take 2 bytes.
- Bytes 0, (4 least significant bits) to byte 3: (for a total of 28 bit) Packet ID, assigned by circuit
- Everything beyond this is potentially zerocoded for compression
- Bytes n thru n+(frequency size)
- 1/2/4 byte ID of the message the packet contains
- Bytes n thru n+(data length)
- Body of packet, possibly zero coded.
- Bytes n+(data length) thru acks
- Rest of packet is fill with as many acks as will fit from reliable messages