Remove vestigial constructor, fix typos, clean up code

This commit is contained in:
Joseph Henry 2020-05-26 17:57:37 -07:00
parent 7ed960297b
commit 7266550c22
5 changed files with 36 additions and 40 deletions

View file

@ -29,7 +29,8 @@ Bond::Bond(const RuntimeEnvironment *renv, int policy, const SharedPtr<Peer>& pe
_policyAlias = BondController::getPolicyStrByCode(policy); _policyAlias = BondController::getPolicyStrByCode(policy);
} }
Bond::Bond(std::string& basePolicy, std::string& policyAlias, const SharedPtr<Peer>& peer) : Bond::Bond(const RuntimeEnvironment *renv, std::string& basePolicy, std::string& policyAlias, const SharedPtr<Peer>& peer) :
RR(renv),
_policyAlias(policyAlias), _policyAlias(policyAlias),
_peer(peer) _peer(peer)
{ {
@ -1518,20 +1519,23 @@ void Bond::setReasonableDefaults(int policy)
_upDelay = 0; _upDelay = 0;
_allowFlowHashing=false; _allowFlowHashing=false;
_bondMonitorInterval=0; _bondMonitorInterval=0;
_allowPathNegotiation=false;
_shouldCollectPathStatistics=false; _shouldCollectPathStatistics=false;
_lastPathNegotiationReceived=0;
_lastBackgroundTaskCheck=0; _lastBackgroundTaskCheck=0;
// Path negotiation
_allowPathNegotiation=false;
_lastPathNegotiationReceived=0;
_lastPathNegotiationCheck=0; _lastPathNegotiationCheck=0;
_pathNegotiationCutoffCount=0;
_localUtility=0;
_lastFlowStatReset=0; _lastFlowStatReset=0;
_lastFlowExpirationCheck=0; _lastFlowExpirationCheck=0;
_localUtility=0;
_numBondedPaths=0; _numBondedPaths=0;
_rrPacketsSentOnCurrSlave=0; _rrPacketsSentOnCurrSlave=0;
_rrIdx=0; _rrIdx=0;
_lastPathNegotiationReceived=0;
_pathNegotiationCutoffCount=0;
_lastFlowRebalance=0; _lastFlowRebalance=0;
_totalBondUnderload = 0; _totalBondUnderload = 0;
@ -1543,12 +1547,6 @@ void Bond::setReasonableDefaults(int policy)
_lastFrame=0; _lastFrame=0;
// TODO: Remove
_header=false;
_lastLogTS = 0;
_lastPrintTS = 0;
/** /**
@ -1582,7 +1580,7 @@ void Bond::setReasonableDefaults(int policy)
case ZT_BONDING_POLICY_BALANCE_RR: case ZT_BONDING_POLICY_BALANCE_RR:
_failoverInterval = 5000; _failoverInterval = 5000;
_allowFlowHashing = false; _allowFlowHashing = false;
_packetsPerSlave = 512; _packetsPerSlave = 1024;
_slaveMonitorStrategy = ZT_MULTIPATH_SLAVE_MONITOR_STRATEGY_DYNAMIC; _slaveMonitorStrategy = ZT_MULTIPATH_SLAVE_MONITOR_STRATEGY_DYNAMIC;
_qualityWeights[ZT_QOS_LAT_IDX] = 0.4f; _qualityWeights[ZT_QOS_LAT_IDX] = 0.4f;
_qualityWeights[ZT_QOS_LTM_IDX] = 0.0f; _qualityWeights[ZT_QOS_LTM_IDX] = 0.0f;
@ -1653,11 +1651,23 @@ void Bond::setReasonableDefaults(int policy)
_qosSendInterval = _bondMonitorInterval * 4; _qosSendInterval = _bondMonitorInterval * 4;
_qosCutoffCount = 0; _qosCutoffCount = 0;
_lastQoSRateCheck = 0; _lastQoSRateCheck = 0;
_lastQualityEstimation=0;
throughputMeasurementInterval = _ackSendInterval * 2; throughputMeasurementInterval = _ackSendInterval * 2;
BondController::setMinReqPathMonitorInterval(_bondMonitorInterval); BondController::setMinReqPathMonitorInterval(_bondMonitorInterval);
_defaultPathRefractoryPeriod = 8000; _defaultPathRefractoryPeriod = 8000;
// TODO: Remove
_header=false;
_lastLogTS = 0;
_lastPrintTS = 0;
fprintf(stderr, "TIMERS: strat=%d, fi= %d, bmi= %d, qos= %d, ack= %d, estimateInt= %d, refractory= %d, ud= %d, dd= %d\n", fprintf(stderr, "TIMERS: strat=%d, fi= %d, bmi= %d, qos= %d, ack= %d, estimateInt= %d, refractory= %d, ud= %d, dd= %d\n",
_slaveMonitorStrategy, _slaveMonitorStrategy,
_failoverInterval, _failoverInterval,
@ -1669,7 +1679,7 @@ void Bond::setReasonableDefaults(int policy)
_upDelay, _upDelay,
_downDelay); _downDelay);
_lastQualityEstimation=0;
} }
void Bond::setUserQualityWeights(float weights[], int len) void Bond::setUserQualityWeights(float weights[], int len)

View file

@ -54,13 +54,6 @@ public:
SharedPtr<Slave> getSlave(const SharedPtr<Path>& path); SharedPtr<Slave> getSlave(const SharedPtr<Path>& path);
/**
* Constructor. For use only in first initialization in Node
*
* @param renv Runtime environment
*/
Bond(const RuntimeEnvironment *renv);
/** /**
* Constructor. Creates a bond based off of ZT defaults * Constructor. Creates a bond based off of ZT defaults
* *
@ -77,7 +70,7 @@ public:
* @param policyAlias * @param policyAlias
* @param peer * @param peer
*/ */
Bond(std::string& basePolicy, std::string& policyAlias, const SharedPtr<Peer>& peer); Bond(const RuntimeEnvironment *renv, std::string& basePolicy, std::string& policyAlias, const SharedPtr<Peer>& peer);
/** /**
* Constructor. Creates a bond based off of a user-defined bond template * Constructor. Creates a bond based off of a user-defined bond template
@ -89,8 +82,7 @@ public:
Bond(const RuntimeEnvironment *renv, const Bond &original, const SharedPtr<Peer>& peer); Bond(const RuntimeEnvironment *renv, const Bond &original, const SharedPtr<Peer>& peer);
/** /**
* * @return The human-readable name of the bonding policy
* @return
*/ */
std::string policyAlias() { return _policyAlias; } std::string policyAlias() { return _policyAlias; }

View file

@ -36,7 +36,7 @@ public:
BondController(const RuntimeEnvironment *renv); BondController(const RuntimeEnvironment *renv);
/** /**
* @return The minimum interval required to poll the active bonds to fulfill all active monitoring timing requirements. * @return Whether this slave is permitted to become a member of a bond.
*/ */
bool slaveAllowed(std::string &policyAlias, SharedPtr<Slave> slave); bool slaveAllowed(std::string &policyAlias, SharedPtr<Slave> slave);
@ -46,7 +46,7 @@ public:
int minReqPathMonitorInterval() { return _minReqPathMonitorInterval; } int minReqPathMonitorInterval() { return _minReqPathMonitorInterval; }
/** /**
* @return The minimum interval required to poll the active bonds to fulfill all active monitoring timing requirements. * @param minReqPathMonitorInterval The minimum interval required to poll the active bonds to fulfill all active monitoring timing requirements.
*/ */
static void setMinReqPathMonitorInterval(int minReqPathMonitorInterval) { _minReqPathMonitorInterval = minReqPathMonitorInterval; } static void setMinReqPathMonitorInterval(int minReqPathMonitorInterval) { _minReqPathMonitorInterval = minReqPathMonitorInterval; }

View file

@ -127,8 +127,7 @@ public:
_packetsReceivedSinceLastQoS(0), _packetsReceivedSinceLastQoS(0),
_bytesAckedSinceLastThroughputEstimation(0), _bytesAckedSinceLastThroughputEstimation(0),
_packetsIn(0), _packetsIn(0),
_packetsOut(0), _packetsOut(0)
_prevEligibility(false)
{} {}
Path(const int64_t localSocket,const InetAddress &addr) : Path(const int64_t localSocket,const InetAddress &addr) :
@ -177,8 +176,7 @@ public:
_packetsReceivedSinceLastQoS(0), _packetsReceivedSinceLastQoS(0),
_bytesAckedSinceLastThroughputEstimation(0), _bytesAckedSinceLastThroughputEstimation(0),
_packetsIn(0), _packetsIn(0),
_packetsOut(0), _packetsOut(0)
_prevEligibility(false)
{} {}
/** /**
@ -187,10 +185,10 @@ public:
* @param t Time of receive * @param t Time of receive
*/ */
inline void received(const uint64_t t) { inline void received(const uint64_t t) {
_lastIn = t; if (!alive(t,_bonded)) {
if (!_prevEligibility) {
_lastAliveToggle = _lastIn; _lastAliveToggle = _lastIn;
} }
_lastIn = t;
} }
/** /**
@ -506,7 +504,7 @@ private:
uint64_t _lastQoSMeasurement; uint64_t _lastQoSMeasurement;
/** /**
* Last time that a the path's throughput was estimated. * Last time that the path's throughput was estimated.
*/ */
uint64_t _lastThroughputEstimation; uint64_t _lastThroughputEstimation;
@ -531,7 +529,7 @@ private:
uint64_t _lastTrialBegin; uint64_t _lastTrialBegin;
/** /**
* Amount of time that this path is prevented from becoming a member of a bond. * Amount of time that this path will be prevented from becoming a member of a bond.
*/ */
uint32_t _refractoryPeriod; uint32_t _refractoryPeriod;
@ -576,7 +574,7 @@ private:
bool _bonded; bool _bonded;
/** /**
* Whether this path was intentionally _negotiated by either peer. * Whether this path was intentionally negotiated by either peer.
*/ */
bool _negotiated; bool _negotiated;
@ -684,10 +682,6 @@ private:
*/ */
int _packetsIn; int _packetsIn;
int _packetsOut; int _packetsOut;
// TODO: Remove
bool _prevEligibility;
}; };
} // namespace ZeroTier } // namespace ZeroTier

View file

@ -1596,7 +1596,7 @@ public:
continue; continue;
} }
// New bond, used as a copy template for new instances // New bond, used as a copy template for new instances
SharedPtr<Bond> newTemplateBond = new Bond(basePolicyStr, customPolicyStr, SharedPtr<Peer>()); SharedPtr<Bond> newTemplateBond = new Bond(NULL, basePolicyStr, customPolicyStr, SharedPtr<Peer>());
// Acceptable ranges // Acceptable ranges
newTemplateBond->setMaxAcceptableLatency(OSUtils::jsonInt(customPolicy["maxAcceptableLatency"],-1)); newTemplateBond->setMaxAcceptableLatency(OSUtils::jsonInt(customPolicy["maxAcceptableLatency"],-1));
newTemplateBond->setMaxAcceptableMeanLatency(OSUtils::jsonInt(customPolicy["maxAcceptableMeanLatency"],-1)); newTemplateBond->setMaxAcceptableMeanLatency(OSUtils::jsonInt(customPolicy["maxAcceptableMeanLatency"],-1));