소스 검색

Bump protocol version to 10

Adam Ierymenko 6 년 전
부모
커밋
cacdb445c7
4개의 변경된 파일33개의 추가작업 그리고 28개의 파일을 삭제
  1. 2 2
      controller/EmbeddedNetworkController.cpp
  2. 27 24
      node/Packet.hpp
  3. 3 1
      node/Peer.cpp
  4. 1 1
      node/Peer.hpp

+ 2 - 2
controller/EmbeddedNetworkController.cpp

@@ -1620,7 +1620,7 @@ void EmbeddedNetworkController::_request(
 				if ( (ipRangeStartIA.ss_family == AF_INET) && (ipRangeEndIA.ss_family == AF_INET) ) {
 					uint32_t ipRangeStart = Utils::ntoh((uint32_t)(reinterpret_cast<struct sockaddr_in *>(&ipRangeStartIA)->sin_addr.s_addr));
 					uint32_t ipRangeEnd = Utils::ntoh((uint32_t)(reinterpret_cast<struct sockaddr_in *>(&ipRangeEndIA)->sin_addr.s_addr));
-					
+
 					if ((ipRangeEnd < ipRangeStart)||(ipRangeStart == 0))
 						continue;
 					uint32_t ipRangeLen = ipRangeEnd - ipRangeStart;
@@ -1671,7 +1671,7 @@ void EmbeddedNetworkController::_request(
 			}
 		}
 	}
-	
+
 	// Issue a certificate of ownership for all static IPs
 	if (nc->staticIpCount) {
 		nc->certificatesOfOwnership[0] = CertificateOfOwnership(nwid,now,identity.address(),1);

+ 27 - 24
node/Packet.hpp

@@ -45,31 +45,34 @@
 /**
  * Protocol version -- incremented only for major changes
  *
- * 1 - 0.2.0 ... 0.2.5
- * 2 - 0.3.0 ... 0.4.5
- *   + Added signature and originating peer to multicast frame
- *   + Double size of multicast frame bloom filter
- * 3 - 0.5.0 ... 0.6.0
- *   + Yet another multicast redesign
- *   + New crypto completely changes key agreement cipher
- * 4 - 0.6.0 ... 1.0.6
- *   + BREAKING CHANGE: New identity format based on hashcash design
- * 5 - 1.1.0 ... 1.1.5
- *   + Supports echo
- *   + Supports in-band world (root server definition) updates
- *   + Clustering! (Though this will work with protocol v4 clients.)
- *   + Otherwise backward compatible with protocol v4
- * 6 - 1.1.5 ... 1.1.10
- *   + Network configuration format revisions including binary values
- * 7 - 1.1.10 ... 1.1.17
- *   + Introduce trusted paths for local SDN use
- * 8 - 1.1.17 ... 1.2.0
- *   + Multipart network configurations for large network configs
- *   + Tags and Capabilities
- *   + Inline push of CertificateOfMembership deprecated
- * 9 - 1.2.0 ... CURRENT
+ * 1  - 0.2.0 ... 0.2.5
+ * 2  - 0.3.0 ... 0.4.5
+ *    + Added signature and originating peer to multicast frame
+ *    + Double size of multicast frame bloom filter
+ * 3  - 0.5.0 ... 0.6.0
+ *    + Yet another multicast redesign
+ *    + New crypto completely changes key agreement cipher
+ * 4  - 0.6.0 ... 1.0.6
+ *    + BREAKING CHANGE: New identity format based on hashcash design
+ * 5  - 1.1.0 ... 1.1.5
+ *    + Supports echo
+ *    + Supports in-band world (root server definition) updates
+ *    + Clustering! (Though this will work with protocol v4 clients.)
+ *    + Otherwise backward compatible with protocol v4
+ * 6  - 1.1.5 ... 1.1.10
+ *    + Network configuration format revisions including binary values
+ * 7  - 1.1.10 ... 1.1.17
+ *    + Introduce trusted paths for local SDN use
+ * 8  - 1.1.17 ... 1.2.0
+ *    + Multipart network configurations for large network configs
+ *    + Tags and Capabilities
+ *    + Inline push of CertificateOfMembership deprecated
+ * 9  - 1.2.0 ... 1.2.14
+ * 10 - 1.4.0 ... CURRENT
+ *    + Multipath capability and load balancing
+ *    + Certificates of Delegation (CoDs) for full root decentralization
  */
-#define ZT_PROTO_VERSION 9
+#define ZT_PROTO_VERSION 10
 
 /**
  * Minimum supported protocol version

+ 3 - 1
node/Peer.cpp

@@ -650,10 +650,11 @@ void Peer::introduce(void *const tPtr,const int64_t now,const SharedPtr<Peer> &o
 	}
 }
 
-inline void Peer::processBackgroundPeerTasks(int64_t now)
+inline void Peer::processBackgroundPeerTasks(const int64_t now)
 {
 	// Determine current multipath compatibility with other peer
 	if ((now - _lastMultipathCompatibilityCheck) >= ZT_PATH_QUALITY_COMPUTE_INTERVAL) {
+		//
 		// Cache number of available paths so that we can short-circuit multipath logic elsewhere
 		//
 		// We also take notice of duplicate paths (same IP only) because we may have
@@ -663,6 +664,7 @@ inline void Peer::processBackgroundPeerTasks(int64_t now)
 		//
 		// This is done to support the behavior of auto multipath enable/disable
 		// without user intervention.
+		//
 		int currAlivePathCount = 0;
 		int duplicatePathsFound = 0;
 		for (unsigned int i=0;i<ZT_MAX_PEER_NETWORK_PATHS;++i) {

+ 1 - 1
node/Peer.hpp

@@ -419,7 +419,7 @@ public:
 	 *
 	 * @param now Current time
 	 */
-	inline void processBackgroundPeerTasks(int64_t now);
+	inline void processBackgroundPeerTasks(const int64_t now);
 
 	/**
 	 * Record that the remote peer does have multipath enabled. As is evident by the receipt of a VERB_ACK