Adam Ierymenko 10 years ago
parent
commit
96e9a90e8e
1 changed files with 22 additions and 5 deletions
  1. 22 5
      node/Packet.hpp

+ 22 - 5
node/Packet.hpp

@@ -698,10 +698,11 @@ public:
 		 *   <[8] 64-bit network ID>
 		 *   <[8] 64-bit network ID>
 		 *   <[2] 16-bit length of request meta-data dictionary>
 		 *   <[2] 16-bit length of request meta-data dictionary>
 		 *   <[...] string-serialized request meta-data>
 		 *   <[...] string-serialized request meta-data>
+		 *  [<[8] 64-bit timestamp of netconf we currently have>]
 		 *
 		 *
 		 * This message requests network configuration from a node capable of
 		 * This message requests network configuration from a node capable of
-		 * providing it. Such nodes run the netconf service, which must be
-		 * installed into the ZeroTier home directory.
+		 * providing it. If the optional timestamp is included, a response is
+		 * only generated if there is a newer network configuration available.
 		 *
 		 *
 		 * OK response payload:
 		 * OK response payload:
 		 *   <[8] 64-bit network ID>
 		 *   <[8] 64-bit network ID>
@@ -714,15 +715,31 @@ public:
 		 * node can push to other peers to demonstrate its right to speak on
 		 * node can push to other peers to demonstrate its right to speak on
 		 * a given network.
 		 * a given network.
 		 *
 		 *
+		 * When a new network configuration is received, another config request
+		 * should be sent with the new netconf's timestamp. This confirms receipt
+		 * and also causes any subsequent changes to rapidly propagate as this
+		 * cycle will repeat until there are no changes. This is optional but
+		 * recommended behavior.
+		 *
 		 * ERROR response payload:
 		 * ERROR response payload:
 		 *   <[8] 64-bit network ID>
 		 *   <[8] 64-bit network ID>
 		 *
 		 *
-		 * Support is optional. Nodes should return UNSUPPORTED_OPERATION if
-		 * not supported or enabled.
+		 * UNSUPPORTED_OPERATION is returned if this service is not supported,
+		 * and OBJ_NOT_FOUND if the queried network ID was not found.
 		 */
 		 */
 		VERB_NETWORK_CONFIG_REQUEST = 11,
 		VERB_NETWORK_CONFIG_REQUEST = 11,
 
 
-		/* DEPRECATED -- was never actually used */
+		/* Network configuration refresh request:
+		 *   <[...] array of 64-bit network IDs>
+		 *
+		 * This message can be sent by the network configuration master node
+		 * to request that nodes refresh their network configuration. It can
+		 * thus be used to "push" updates so that network config changes will
+		 * take effect quickly.
+		 *
+		 * 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,
 
 
 		/* Request endpoints for multicast distribution:
 		/* Request endpoints for multicast distribution: