summaryrefslogtreecommitdiff
path: root/node/Packet.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'node/Packet.hpp')
-rw-r--r--node/Packet.hpp39
1 files changed, 33 insertions, 6 deletions
diff --git a/node/Packet.hpp b/node/Packet.hpp
index 6f3f9117..c9269a82 100644
--- a/node/Packet.hpp
+++ b/node/Packet.hpp
@@ -225,6 +225,16 @@
#define ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST__OK__IDX_DICT_LEN (ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST__OK__IDX_NETWORK_ID + 8)
#define ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST__OK__IDX_DICT (ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST__OK__IDX_DICT_LEN + 2)
+#define ZT_PROTO_VERB_PROBE_IDX_TIMESTAMP (ZT_PACKET_IDX_PAYLOAD)
+#define ZT_PROTO_VERB_PROBE_LEN_TIMESTAMP 8
+#define ZT_PROTO_VERB_PROBE_IDX_MS_SINCE_LAST_SEND (ZT_PROTO_VERB_PROBE_IDX_TIMESTAMP + ZT_PROTO_VERB_PROBE_LEN_TIMESTAMP)
+#define ZT_PROTO_VERB_PROBE_LEN_MS_SINCE_LAST_SEND 8
+
+#define ZT_PROTO_VERB_PROBE__OK__IDX_TIMESTAMP (ZT_PACKET_IDX_PAYLOAD)
+#define ZT_PROTO_VERB_PROBE__OK__LEN_TIMESTAMP 8
+#define ZT_PROTO_VERB_PROBE__OK__IDX_MS_SINCE_LAST_SEND (ZT_PROTO_VERB_PROBE_IDX_TIMESTAMP + ZT_PROTO_VERB_PROBE_LEN_TIMESTAMP)
+#define ZT_PROTO_VERB_PROBE__OK__LEN_MS_SINCE_LAST_SEND 8
+
// ---------------------------------------------------------------------------
namespace ZeroTier {
@@ -457,11 +467,7 @@ public:
* send this to both peers at the same time on a periodic basis, telling
* each where it might find the other on the network.
*
- * Upon receipt, a peer sends a message such as NOP or HELLO to the other
- * peer. Peers only "learn" one anothers' direct addresses when they
- * successfully *receive* a message and authenticate it. Optionally, peers
- * will usually preface these messages with one or more firewall openers
- * to clear the path.
+ * Upon receipt a peer sends HELLO to establish a direct link.
*
* Nodes should implement rate control, limiting the rate at which they
* respond to these packets to prevent their use in DDOS attacks. Nodes
@@ -615,7 +621,28 @@ public:
* It does not generate an OK or ERROR message, and is treated only as
* a hint to refresh now.
*/
- VERB_NETWORK_CONFIG_REFRESH = 12
+ VERB_NETWORK_CONFIG_REFRESH = 12,
+
+ /* Probe peer connection status:
+ * <[8] 64-bit timestamp>
+ * <[8] 64-bit milliseconds since last send to this peer>
+ *
+ * This message is sent to probe the status of a peer and to confirm
+ * new link-layer addresses. Upon receipt an OK is generated which
+ * echoes the time and responds with the number of milliseconds since
+ * the recipient has last sent a packet to the sender.
+ *
+ * Using these delay times, a peer may determine if its current route
+ * to another peer is likely dead and default to another route (e.g.
+ * reverting to relaying).
+ *
+ * OK response payload:
+ * <[8] 64-bit timestamp echoed from request>
+ * <[8] 64-bit milliseconds since last send to requesitng peer>
+ *
+ * ERROR is not generated.
+ */
+ VERB_PROBE = 13
};
/**