- * This callback is given to the silc_packet_receive_process function.
- * The callback is called by the library every time a packet is
- * received from the network. After the packet has been decrypted
- * and at least partially parsed it is passed to the application
- * for further parsing using this callback and the SilcPacketParserContext
- * context. The application receiving the SilcPacketParserContext
- * must free it.
- *
- * This returns TRUE if the library should continue packet processing
- * (assuming there is more data to be processed), and FALSE if the
- * upper layer does not want the library to continue but to leave the
- * rest of the data is the packet queue untouched. Application may
- * want to do this for example if the cipher is not ready before
- * processing a certain packet. In this case the application wants
- * to recall the processing function with the correct cipher.
+ * Create new packet engine for processing incoming and outgoing packets.
+ * If `rng' is non-NULL that RNG will be used to create necessary random
+ * numbers during packet processing. If NULL, Global RNG will be used.
+ * If `router' is TRUE then the application is considered to be router
+ * server, and certain packets are handled differently. Client and normal
+ * server must set it to FALSE. The `callbacks' is a SilcPacketCallbacks
+ * structure provided by the caller which includes the callbacks that is
+ * called when for example packet is received, or end of stream is called
+ *
+ * NOTES
+ *
+ * The packet engine is thread safe. Also the `schedule' and `rng' are
+ * thread safe. You can use one packet engine in multi threaded
+ * application.