|
|
|
|
@ -524,27 +524,31 @@ public:
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Rate limit gate for VERB_QOS_MEASUREMENT |
|
|
|
|
* Rate limit gate for VERB_ACK |
|
|
|
|
*/ |
|
|
|
|
inline bool rateGateQoS(const int64_t now) |
|
|
|
|
inline bool rateGateACK(const int64_t now) |
|
|
|
|
{ |
|
|
|
|
if ((now - _lastQoSReceive) <= ZT_PATH_QOS_ACK_CUTOFF_TIME) |
|
|
|
|
++_QoSCutoffCount; |
|
|
|
|
else _QoSCutoffCount = 0; |
|
|
|
|
_lastQoSReceive = now; |
|
|
|
|
return (_QoSCutoffCount < ZT_PATH_QOS_ACK_CUTOFF_LIMIT); |
|
|
|
|
if ((now - _lastACKWindowReset) >= ZT_PATH_QOS_ACK_CUTOFF_TIME) { |
|
|
|
|
_lastACKWindowReset = now; |
|
|
|
|
_ACKCutoffCount = 0; |
|
|
|
|
} else { |
|
|
|
|
++_ACKCutoffCount; |
|
|
|
|
} |
|
|
|
|
return (_ACKCutoffCount < ZT_PATH_QOS_ACK_CUTOFF_LIMIT); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Rate limit gate for VERB_ACK |
|
|
|
|
* Rate limit gate for VERB_QOS_MEASUREMENT |
|
|
|
|
*/ |
|
|
|
|
inline bool rateGateACK(const int64_t now) |
|
|
|
|
inline bool rateGateQoS(const int64_t now) |
|
|
|
|
{ |
|
|
|
|
if ((now - _lastACKReceive) <= ZT_PATH_QOS_ACK_CUTOFF_TIME) |
|
|
|
|
++_ACKCutoffCount; |
|
|
|
|
else _ACKCutoffCount = 0; |
|
|
|
|
_lastACKReceive = now; |
|
|
|
|
return (_ACKCutoffCount < ZT_PATH_QOS_ACK_CUTOFF_LIMIT); |
|
|
|
|
if ((now - _lastQoSWindowReset) >= ZT_PATH_QOS_ACK_CUTOFF_TIME) { |
|
|
|
|
_lastQoSWindowReset = now; |
|
|
|
|
_QoSCutoffCount = 0; |
|
|
|
|
} else { |
|
|
|
|
++_QoSCutoffCount; |
|
|
|
|
} |
|
|
|
|
return (_QoSCutoffCount < ZT_PATH_QOS_ACK_CUTOFF_LIMIT); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@ -644,10 +648,10 @@ private:
|
|
|
|
|
int64_t _lastComRequestSent; |
|
|
|
|
int64_t _lastCredentialsReceived; |
|
|
|
|
int64_t _lastTrustEstablishedPacketReceived; |
|
|
|
|
int64_t _lastQoSReceive; |
|
|
|
|
int64_t _lastACKReceive; |
|
|
|
|
int64_t _lastSentFullHello; |
|
|
|
|
int64_t _lastPathPrune; |
|
|
|
|
int64_t _lastACKWindowReset; |
|
|
|
|
int64_t _lastQoSWindowReset; |
|
|
|
|
|
|
|
|
|
uint16_t _vProto; |
|
|
|
|
uint16_t _vMajor; |
|
|
|
|
|