diff --git a/node/Packet.hpp b/node/Packet.hpp index 37fd1e0ca..6efc67fcc 100644 --- a/node/Packet.hpp +++ b/node/Packet.hpp @@ -698,10 +698,11 @@ public: * <[8] 64-bit network ID> * <[2] 16-bit length of request meta-data dictionary> * <[...] string-serialized request meta-data> + * [<[8] 64-bit timestamp of netconf we currently have>] * * 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: * <[8] 64-bit network ID> @@ -714,15 +715,31 @@ public: * node can push to other peers to demonstrate its right to speak on * 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: * <[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, - /* 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, /* Request endpoints for multicast distribution: