@node Plain
+@cindex plain packet
@section Plain packet
Plain packet contains either the whole file, or file request (freq), or
@item trns (transition)
@item exec-fat (uncompressed exec)
@item area (@ref{Multicast, multicast} area message)
+ @item ack (receipt acknowledgement)
@end enumerate
@item Niceness @tab
unsigned integer @tab
@item UTF-8 encoded, zero byte separated, exec's arguments
@item Node's id the transition packet must be relayed on
@item Multicast area's id
+ @item Packet's id (its @ref{MTH} hash)
@end itemize
@end multitable
compressed exec body
@item Whole encrypted packet we need to relay on
@item Multicast area message wrap with another encrypted packet inside
+@item Nothing, if it is acknowledgement packet
@end itemize
Also depending on packet's type, niceness level means:
@itemize
@item Preferable niceness level for files sent by freq
-@item @env{NNCP_NICE} variable's value passed during @ref{CfgExec} invocation.
+@item @env{$NNCP_NICE} variable's value passed during @ref{CfgExec} invocation.
@end itemize
So plain packets can hold following paths and payloads:
@item exec
@example
- +----------------------- PATH -------------------------+ +---- PAYLOAD ---+
- / \ / \
-+----------------------------------------------------------+---------------...--+
-| HANDLE | ARG0 0x00 ARG1 ...| 0x00 ... variable ... 0x00 | ZSTD DATA |
-+----------------------------------------------------------+---------------...--+
- \ /
- +-------- PATHLEN --------+
+ +------------------------- PATH ----------------------------+ +---- PAYLOAD ---+
+ / \ / \
++---------------------------------------------------------------+---------------...--+
+| HANDLE 0x00 | ARG0 0x00 ARG1 ...| 0x00 ... variable ... 0x00 | ZSTD DATA |
++---------------------------------------------------------------+---------------...--+
+ \ /
+ +-------- PATHLEN -------------+
@end example
@item exec-fat
@example
- +----------------------- PATH -------------------------+ +---- PAYLOAD ---+
- / \ / \
-+----------------------------------------------------------+---------------...--+
-| HANDLE | ARG0 0x00 ARG1 ...| 0x00 ... variable ... 0x00 | DATA |
-+----------------------------------------------------------+---------------...--+
- \ /
- +-------- PATHLEN --------+
+ +------------------------- PATH ----------------------------+ +---- PAYLOAD ---+
+ / \ / \
++---------------------------------------------------------------+---------------...--+
+| HANDLE 0x00 | ARG0 0x00 ARG1 ...| 0x00 ... variable ... 0x00 | DATA |
++---------------------------------------------------------------+---------------...--+
+ \ /
+ +-------- PATHLEN -------------+
@end example
@item trns
@end example
See also @ref{Encrypted area, encrypted area packet}.
+@item ack
+@example
+ +------- PATH --------+
+ / \
++-------------------------+
+| PKT ID | 0x00 ... 0x00 |
++-------------------------+
+ \ /
+ PATHLEN
+@end example
+
@end table