Merge pull request #1513 from andrejbinder/dev

This commit is contained in:
Joseph Henry
2021-12-15 13:25:12 -08:00
committed by GitHub

View File

@@ -488,6 +488,10 @@ int32_t Bond::generateQoSPacket(int pathIdx, int64_t now, char* qosBuffer)
bool Bond::assignFlowToBondedPath(SharedPtr<Flow>& flow, int64_t now)
{
if (! _numBondedPaths) {
log("unable to assign flow %x (bond has no links)\n", flow->id);
return false;
}
unsigned int idx = ZT_MAX_PEER_NETWORK_PATHS;
if (_policy == ZT_BOND_POLICY_BALANCE_XOR) {
idx = abs((int)(flow->id % (_numBondedPaths)));
@@ -500,10 +504,6 @@ bool Bond::assignFlowToBondedPath(SharedPtr<Flow>& flow, int64_t now)
if (_totalBondUnderload) {
entropy %= _totalBondUnderload;
}
if (! _numBondedPaths) {
log("unable to assign flow %x (bond has no links)\n", flow->id);
return false;
}
/* Since there may be scenarios where a path is removed before we can re-estimate
relative qualities (and thus allocations) we need to down-modulate the entropy
value that we use to randomly assign among the surviving paths, otherwise we risk