Port multipath improvements to newer version
This commit is contained in:
parent
024649c175
commit
2e6cda38f6
9 changed files with 120 additions and 47 deletions
|
@ -315,7 +315,6 @@ class Peer;
|
|||
|
||||
class Bond {
|
||||
public:
|
||||
|
||||
/**
|
||||
* Stop bond's internal functions (can be resumed)
|
||||
*/
|
||||
|
@ -909,7 +908,8 @@ class Bond {
|
|||
_lastAckRateCheck = now;
|
||||
if (_ackCutoffCount > numToDrain) {
|
||||
_ackCutoffCount -= numToDrain;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
_ackCutoffCount = 0;
|
||||
}
|
||||
return (_ackCutoffCount < ZT_ACK_CUTOFF_LIMIT);
|
||||
|
@ -928,7 +928,8 @@ class Bond {
|
|||
uint64_t diff = now - _lastQoSRateCheck;
|
||||
if ((diff) <= (_qosSendInterval / ZT_MAX_PEER_NETWORK_PATHS)) {
|
||||
++_qosCutoffCount;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
_qosCutoffCount = 0;
|
||||
}
|
||||
_lastQoSRateCheck = now;
|
||||
|
@ -948,7 +949,8 @@ class Bond {
|
|||
int diff = now - _lastPathNegotiationReceived;
|
||||
if ((diff) <= (ZT_PATH_NEGOTIATION_CUTOFF_TIME / ZT_MAX_PEER_NETWORK_PATHS)) {
|
||||
++_pathNegotiationCutoffCount;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
_pathNegotiationCutoffCount = 0;
|
||||
}
|
||||
_lastPathNegotiationReceived = now;
|
||||
|
@ -1230,6 +1232,7 @@ class Bond {
|
|||
, packetsReceivedSinceLastQoS(0)
|
||||
, packetsIn(0)
|
||||
, packetsOut(0)
|
||||
, localPort(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -1245,17 +1248,20 @@ class Bond {
|
|||
unsigned int suggestedRefractoryPeriod = refractoryPeriod ? punishment + (refractoryPeriod * 2) : punishment;
|
||||
refractoryPeriod = std::min(suggestedRefractoryPeriod, (unsigned int)ZT_BOND_MAX_REFRACTORY_PERIOD);
|
||||
lastRefractoryUpdate = 0;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
uint32_t drainRefractory = 0;
|
||||
if (lastRefractoryUpdate) {
|
||||
drainRefractory = (now - lastRefractoryUpdate);
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
drainRefractory = (now - lastAliveToggle);
|
||||
}
|
||||
lastRefractoryUpdate = now;
|
||||
if (refractoryPeriod > drainRefractory) {
|
||||
refractoryPeriod -= drainRefractory;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
refractoryPeriod = 0;
|
||||
lastRefractoryUpdate = 0;
|
||||
}
|
||||
|
@ -1292,7 +1298,6 @@ class Bond {
|
|||
*/
|
||||
inline bool needsToSendQoS(int64_t now, uint64_t qosSendInterval)
|
||||
{
|
||||
// fprintf(stderr, "QOS table (%d / %d)\n", packetsReceivedSinceLastQoS, ZT_QOS_TABLE_SIZE);
|
||||
return ((packetsReceivedSinceLastQoS >= ZT_QOS_TABLE_SIZE) || ((now - lastQoSMeasurement) > qosSendInterval)) && packetsReceivedSinceLastQoS;
|
||||
}
|
||||
|
||||
|
@ -1364,6 +1369,8 @@ class Bond {
|
|||
int packetsIn;
|
||||
int packetsOut;
|
||||
|
||||
uint16_t localPort;
|
||||
|
||||
// AtomicCounter __refCount;
|
||||
|
||||
SharedPtr<Path> p;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue