I updated with all the feedback and here is a version 1.0 pdf specification. I appreciate any comments or suggestions you may have for this. https://www.dropbox.com/s/ywu9pjxrfvg1hys/FrameTypes.pdf?dl=0 Thank you, Robert On 12/20/2015 10:51 AM, Robert Withers wrote:
More, sorry. I left out the msgSize in the FEC spec. Let me reorder the tagging, fit the 3 bytes of normal msgSpec into 4bytes and thusly...
---Default non-FEC msgSpec + header + payload layout:
- 8bytes (X) messageSpecification... - - (32bits...) - 4bits tagging - 6bits multicastSymbol - 6bits messageVersion - 2bits sanguinity - 6bits headerType "Implies Y header size. NOTE: except for FEC encodings" - 8bits unused - (32bits...) - 4bytes messageSize (X+Y+Z) (Z bytes = (messageSize - headerSize(Y) - 8bytes msgSpec (X = 8)) - - Ybytes message header https://www.dropbox.com/s/ywu9pjxrfvg1hys/FrameTypes.pdf?dl=0 - - Zbytes message payload
Special FEC coded 64bit <msgSpec + header> + payload layout, for 64bit alignment:
- 8bytes (X) message specification... - - (32bits...) - 4bits tagging - 6bits multicastSymbol - 6bits messageVersion - 2bits sanguinity - 6bits FEC message type "NOTE: this means different layout" - 2bits rsMode - 6bits partial blockCount - (32bits...) - 4bits blockCount "NOTE: for 1MB encoded/982KB data - blockCount * blockCodeBytes = Z" - 20bits messageSize (X+Y+Z) (Z bytes = (messageSize - headerSize(Y) - 8bytes msgSpec (X = 8)) "NOTE: this can specify 1MB data" - 8bits primitivePolynomial spec (good for our current rsModes) - - Y = 0 - - Zbytes-sized payload
Ok, that's what it is I think, this proposal.
robert
On 12/20/2015 10:33 AM, Robert Withers wrote:
---Default non-FEC msgSpec + header + payload layout:
- 6bits multicastSymbol - 2bits sanguinity - 6bits messageVersion - 6bits headerType "NOTE: except for FEC encodings" - 4bytes messageSize - Xbytes header - - (messageSized - headerSize - 7specBytes) Bytes-sized payload
Special FEC coded 64bit <msgSpec + header> + payload layout, for 64bit alignment:
- (32bits...) - 6bits multicastSymbol - 2bits sanguinity - 6bits messageVersion - 6bits FEC message type "NOTE: this means different layout" - 2bits rsMode - (32bits...) - 10bits blockCount "NOTE: for 1MB encoded/982KB data" - 20bits messageSize "NOTE: this can specify 1MB data plus - 8bits primitivePolynomial spec (good for our current rsModes) - 4bits tagging - - (messageSized - headerSize - 4specBytes) OR (blockCount * rsMode's blockCodeBytes) Bytes-sized payload
-- . .. ... ^,^ robert Go Panthers!