# license: open-standard-license-1.0
#
# This file (assumed to be named fss-000f.txt) can be more easily read using the following iki_read commands:
-# iki_read fss-000f.txt +Q -w -WWW character "'" "'" code '"' '"' emphasis '"' '"'
+# iki_read fss-000f.txt +Q -w -WWWW character "'" "'" code '"' '"' italic '"' '"' bold '"' '"'
#
# To read the "Featureless Settings Specification: 000f - Simple Packet" section of this file, use this command sequence:
-# fss_basic_list_read fss-000f.txt +Q -cn "Featureless Settings Specification: 000f - Simple Packet" | iki_read +Q -w -WWW character "'" "'" code '"' '"' emphasis '"' '"'
+# fss_basic_list_read fss-000f.txt +Q -cn "Featureless Settings Specification: 000f - Simple Packet" | iki_read +Q -w -WWWW character "'" "'" code '"' '"' italic '"' '"' bold '"' '"'
#
Featureless Settings Specification: 000f - Simple Packet:
This is a network packet format that contains code:"FSS-000e (Payload)" within it.
- The Simple Packet structure is described in blocks, of which are structured in bytes.
+ The bold:"Simple Packet" structure is described in blocks, of which are structured in bytes.
There are only three blocks in this format\:
1) Control Block.
2) Size Block.
3) Payload Block.
- The Control Block is the first block in the packet and is considered endianless.
- There exists only a single byte within the Control Block.
- Regardless of the endianness of the packet, the leftmost bit is always the italic:"string" or italic:"binary" bit.
- The second bit following that bit represents the endianness bit.
+ The bold:"Control Block" is the first block in the packet and is considered endianless.
+ There exists only a single byte within the bold:"Control Block" (8-bits).
+ Regardless of the endianness of the packet, leftmost bit is always the endianness bit.
+ The second bit following that endianness bit represents the italic:"string" or italic:"binary" bit.
- The italic:"string" or italic:"binary" bit, a value of 0 designates that the packet is in string format and a value of 1 designates that the packet is in binary format.
- While the packet might be considered to be in string format, it is technically always in binary format due to the Control Block and Size Block.
- This means that the bit designating the packet as a italic:"string" packet or a italic:"binary" packet is referring to whether or not the Payload Block is in italic:"string" format or is in italic:"binary" format.
+ Control Block Structure\:
+ code:"
+ [ Endianness Bit ] [ String / Binary Bit ] [ Remaining 6 bits (unused) ]
+ [ 0b0 ] [ 0b0 ] [ 0b000000 ]
+ "
The endianness bit designates whether or not the packet is in big endian or little endian format.
A bit value of 0 designates that this packet is in little endian and a value of 1 designates that this packet is in big endian format.
- All binary data within this packet, following the Control Block, must respect this endianness bit (including the Size Block).
+ All italic:"binary" data within this packet, following the Control Block, must respect this endianness bit (including the bold:"Size Block").
+
+ The italic:"string" or italic:"binary" bit, a value of 0 designates that the packet is in string format and a value of 1 designates that the packet is in italic:"binary" format.
+ While the packet might be considered to be in string format, it is technically always in italic:"binary" format due to the bold:"Control Block" and bold:"Size Block".
+ This means that the italic:"binary" bit designating the packet as either a italic:"string" packet or a italic:"binary" packet is referring to whether or not the bold:"Payload Block" is in italic:"string" or italic:"binary" format.
+ The bold:"Payload Block" itself can contain italic:"binary" data even when in italic:"string" format as per code:"FSS-000e (Payload)".
The remaining bits are not defined by this standard and are expected to be 0.
Non-formal or local uses may utilize these remaining 6 bits as desired.
- However, there may be additional standards that expand upon this and utilize these remaining Control bits.
- Anything that utilizes these unused Control bits may add or remove additional Blocks after the Control Block as they see fit.
+ However, there may be additional standards that expand upon this and utilize these remaining bold:"Control" bits.
+ Anything that utilizes these unused bold:"Control" bits may add or remove additional bold:"Blocks" after the bold:"Control Block" as they see fit.
+ One possible use of the remaining bits is to designate a different variation of this bold:"Simple Packet" standard.
+
+ Size Block Structure\:
+ code:"
+ [ Endianness Bit ] [ String / Binary Bit ] [ Remaining 6 bits (unused) ]
+ [ 0b0 ] [ 0b0 ] [ 0b000000 ]
+ "
- The Size Block is an unsigned 32-bit integer representing the size of the entire packet, including the Control Block and Size Block.
+ The bold:"Size Block" is an unsigned 32-bit integer representing the size of the entire packet, including the bold:"Control Block" and bold:"Size Block".
This size must exactly match the packet to be a valid packet.
The size represents number of bytes in the file.
- The Control Block is 1 byte long and the Size Block is 4 bytes long and so the maximum available size is (2^32)-6.
+ The bold:"Control Block" is 1 byte long and the bold:"Size Block" is 4 bytes long, therefore the maximum available size of the entire bold:"Simple Packet" structure is code:"(2^32)-6".
+
+ Payload Block Structure\:
+ code:"
+ [ Payload Block ]
+ [ size: (2^32)-6 ]
+ "
- The Payload Block is not defined by this standard of that that it exists and should be in code:"FSS-000e (Payload)" format.
- The code:"FSS-000e (Payload)" may be represented in either string format or binary format.
+ The bold:"Payload Block" is not defined by this standard of that that it exists and should be in code:"FSS-000e (Payload)" format.
+ The code:"FSS-000e (Payload)" may be represented in either italic:"string" format or italic:"binary" format.
The code:"FSS-000e (Payload)" may contain multiple italic:"header"(s) but may only contain a single italic:"payload".
- With this in mind, it is recommended that only a single italic:"header" be supported in the Payload Block.
+ With this in mind, it is recommended that only a single italic:"header" be supported in the bold:"Payload Block".
+ The italic:"payload" bold:"Content" may be in either a italic:"binary" or italic:"string" format regardless of the italic:"binary" bit in the bold:"Simple Packet" bold:"Header Block".
- See the file:"fss-000e.txt" specification file for details on the syntax rules for the Payload Block.
+ See the file:"fss-000e.txt" specification file for details on the syntax rules for the bold:"Payload Block".
Example Packet Structure\:
+ code:"
[ Control Block ] [ Size Block ] [ Payload Block ]
[ 0b10000000 ] [ 0b00000000 0b00000000 0b00000100 0b11010010 ] [ size: 1229 (1234 - 5) ]
+ "