|
|
|
|
@ -664,20 +664,32 @@ public:
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* ECHO request (a.k.a. ping): |
|
|
|
|
* <[...] arbitrary payload to be echoed back> |
|
|
|
|
* <[1] 8-bit purpose of echo request> |
|
|
|
|
* <[...] additional arbitrary payload> |
|
|
|
|
* |
|
|
|
|
* This generates OK with a copy of the transmitted payload. No ERROR |
|
|
|
|
* is generated. Response to ECHO requests is optional and ECHO may be |
|
|
|
|
* ignored if a node detects a possible flood. |
|
|
|
|
* |
|
|
|
|
* There is a de-facto standard for ECHO payload. No payload indicates an |
|
|
|
|
* ECHO used for path confirmation. Otherwise the first byte contains |
|
|
|
|
* flags, in which currently the only flag is 0x01 for a user-requested |
|
|
|
|
* echo. For user-requested echoes the result may be reported back through |
|
|
|
|
* the API. Otherwise the payload is for internal use. |
|
|
|
|
* An empty payload is permitted. This is used in some versions for |
|
|
|
|
* path checking and validation. If a payload is present it must |
|
|
|
|
* follow the above format, though the recipient does not have to check |
|
|
|
|
* this. It can simply echo it back. |
|
|
|
|
* |
|
|
|
|
* Echo purpose codes: |
|
|
|
|
* 0x00 - User ECHO request |
|
|
|
|
* 0x01 - Dead path detection |
|
|
|
|
* |
|
|
|
|
* Support for fragmented echo packets is optional and their use is not |
|
|
|
|
* recommended. |
|
|
|
|
* |
|
|
|
|
* Dead path detection is performed by sending ECHOs with the same random |
|
|
|
|
* payload to the best (or every) direct path and then once indirectly |
|
|
|
|
* (such as via a root server). When an OK is received echoing back this |
|
|
|
|
* test payload, all paths that have not yet received this OK are cancelled |
|
|
|
|
* or re-tested. This can be done after a short period of inactivity to |
|
|
|
|
* detect and automatically cancel dead paths without requiring any |
|
|
|
|
* special logic (other than support for ECHO) at the remote end. |
|
|
|
|
*/ |
|
|
|
|
VERB_ECHO = 8, |
|
|
|
|
|
|
|
|
|
|