llmessage merge and further LLUnit usage.
This commit is contained in:
@@ -34,7 +34,6 @@
|
||||
#include "llerror.h"
|
||||
|
||||
#include "lltimer.h"
|
||||
#include "timing.h"
|
||||
#include "net.h"
|
||||
#include "llhost.h"
|
||||
#include "llpacketack.h"
|
||||
@@ -45,10 +44,10 @@
|
||||
// Constants
|
||||
//
|
||||
const F32 LL_AVERAGED_PING_ALPHA = 0.2f; // relaxation constant on ping running average
|
||||
const F32 LL_AVERAGED_PING_MAX = 2000; // msec
|
||||
const F32 LL_AVERAGED_PING_MIN = 100; // msec // IW: increased to avoid retransmits when a process is slow
|
||||
const F32Milliseconds LL_AVERAGED_PING_MAX(2000);
|
||||
const F32Milliseconds LL_AVERAGED_PING_MIN(100); // increased to avoid retransmits when a process is slow
|
||||
|
||||
const U32 INITIAL_PING_VALUE_MSEC = 1000; // initial value for the ping delay, or for ping delay for an unknown circuit
|
||||
const U32Milliseconds INITIAL_PING_VALUE_MSEC(1000); // initial value for the ping delay, or for ping delay for an unknown circuit
|
||||
|
||||
const TPACKETID LL_MAX_OUT_PACKET_ID = 0x01000000;
|
||||
const int LL_ERR_CIRCUIT_GONE = -23017;
|
||||
@@ -61,6 +60,7 @@ const U8 LL_PACKET_ID_SIZE = 6;
|
||||
|
||||
const S32 LL_MAX_RESENT_PACKETS_PER_FRAME = 100;
|
||||
const S32 LL_MAX_ACKED_PACKETS_PER_FRAME = 200;
|
||||
const F32 LL_COLLECT_ACK_TIME_MAX = 2.f;
|
||||
|
||||
//
|
||||
// Prototypes and Predefines
|
||||
@@ -78,10 +78,10 @@ class LLCircuitData
|
||||
{
|
||||
public:
|
||||
LLCircuitData(const LLHost &host, TPACKETID in_id,
|
||||
const F32 circuit_heartbeat_interval, const F32 circuit_timeout);
|
||||
const F32Seconds circuit_heartbeat_interval, const F32Seconds circuit_timeout);
|
||||
~LLCircuitData();
|
||||
|
||||
S32 resendUnackedPackets(const F64 now);
|
||||
S32 resendUnackedPackets(const F64Seconds now);
|
||||
void clearDuplicateList(TPACKETID oldest_id);
|
||||
|
||||
|
||||
@@ -107,18 +107,18 @@ public:
|
||||
// mLocalEndPointID should only ever be setup in the LLCircuitData constructor
|
||||
const LLUUID& getLocalEndPointID() const { return mLocalEndPointID; }
|
||||
|
||||
U32 getPingDelay() const;
|
||||
U32Milliseconds getPingDelay() const;
|
||||
S32 getPingsInTransit() const { return mPingsInTransit; }
|
||||
|
||||
// ACCESSORS
|
||||
BOOL isAlive() const;
|
||||
BOOL isBlocked() const;
|
||||
BOOL getAllowTimeout() const;
|
||||
F32 getPingDelayAveraged();
|
||||
F32 getPingInTransitTime();
|
||||
F32Milliseconds getPingDelayAveraged();
|
||||
F32Milliseconds getPingInTransitTime();
|
||||
U32 getPacketsIn() const;
|
||||
S32 getBytesIn() const;
|
||||
S32 getBytesOut() const;
|
||||
S32Bytes getBytesIn() const;
|
||||
S32Bytes getBytesOut() const;
|
||||
U32 getPacketsOut() const;
|
||||
U32 getPacketsLost() const;
|
||||
TPACKETID getPacketOutID() const;
|
||||
@@ -126,10 +126,10 @@ public:
|
||||
F32 getAgeInSeconds() const;
|
||||
S32 getUnackedPacketCount() const { return mUnackedPacketCount; }
|
||||
S32 getUnackedPacketBytes() const { return mUnackedPacketBytes; }
|
||||
F64 getNextPingSendTime() const { return mNextPingSendTime; }
|
||||
F64Seconds getNextPingSendTime() const { return mNextPingSendTime; }
|
||||
U32 getLastPacketGap() const { return mLastPacketGap; }
|
||||
LLHost getHost() const { return mHost; }
|
||||
F64 getLastPacketInTime() const { return mLastPacketInTime; }
|
||||
F64Seconds getLastPacketInTime() const { return mLastPacketInTime; }
|
||||
|
||||
LLThrottleGroup &getThrottleGroup() { return mThrottles; }
|
||||
|
||||
@@ -165,11 +165,11 @@ protected:
|
||||
TPACKETID nextPacketOutID();
|
||||
void setPacketInID(TPACKETID id);
|
||||
void checkPacketInID(TPACKETID id, BOOL receive_resent);
|
||||
void setPingDelay(U32 ping);
|
||||
void setPingDelay(U32Milliseconds ping);
|
||||
BOOL checkCircuitTimeout(); // Return FALSE if the circuit is dead and should be cleaned up
|
||||
|
||||
void addBytesIn(S32 bytes);
|
||||
void addBytesOut(S32 bytes);
|
||||
void addBytesIn(S32Bytes bytes);
|
||||
void addBytesOut(S32Bytes bytes);
|
||||
|
||||
U8 nextPingID() { mLastPingID++; return mLastPingID; }
|
||||
|
||||
@@ -220,24 +220,25 @@ protected:
|
||||
BOOL mBlocked; // Blocked is true if the circuit is hosed, i.e. far behind on pings
|
||||
|
||||
// Not sure what the difference between this and mLastPingSendTime is
|
||||
F64 mPingTime; // Time at which a ping was sent.
|
||||
F64Seconds mPingTime; // Time at which a ping was sent.
|
||||
|
||||
F64 mLastPingSendTime; // Time we last sent a ping
|
||||
F64 mLastPingReceivedTime; // Time we last received a ping
|
||||
F64 mNextPingSendTime; // Time to try and send the next ping
|
||||
S32 mPingsInTransit; // Number of pings in transit
|
||||
U8 mLastPingID; // ID of the last ping that we sent out
|
||||
F64Seconds mLastPingSendTime; // Time we last sent a ping
|
||||
F64Seconds mLastPingReceivedTime; // Time we last received a ping
|
||||
F64Seconds mNextPingSendTime; // Time to try and send the next ping
|
||||
S32 mPingsInTransit; // Number of pings in transit
|
||||
U8 mLastPingID; // ID of the last ping that we sent out
|
||||
|
||||
|
||||
// Used for determining the resend time for reliable resends.
|
||||
U32 mPingDelay; // raw ping delay
|
||||
F32 mPingDelayAveraged; // averaged ping delay (fast attack/slow decay)
|
||||
U32Milliseconds mPingDelay; // raw ping delay
|
||||
F32Milliseconds mPingDelayAveraged; // averaged ping delay (fast attack/slow decay)
|
||||
|
||||
typedef std::map<TPACKETID, U64> packet_time_map;
|
||||
typedef std::map<TPACKETID, U64Microseconds> packet_time_map;
|
||||
|
||||
packet_time_map mPotentialLostPackets;
|
||||
packet_time_map mRecentlyReceivedReliablePackets;
|
||||
std::vector<TPACKETID> mAcks;
|
||||
F32 mAckCreationTime; // first ack creation time
|
||||
|
||||
typedef std::map<TPACKETID, LLReliablePacket *> reliable_map;
|
||||
typedef reliable_map::iterator reliable_iter;
|
||||
@@ -248,7 +249,7 @@ protected:
|
||||
S32 mUnackedPacketCount;
|
||||
S32 mUnackedPacketBytes;
|
||||
|
||||
F64 mLastPacketInTime; // Time of last packet arrival
|
||||
F64Seconds mLastPacketInTime; // Time of last packet arrival
|
||||
|
||||
LLUUID mLocalEndPointID;
|
||||
|
||||
@@ -260,24 +261,24 @@ protected:
|
||||
U32 mPacketsOut;
|
||||
U32 mPacketsIn;
|
||||
S32 mPacketsLost;
|
||||
S32 mBytesIn;
|
||||
S32 mBytesOut;
|
||||
S32Bytes mBytesIn,
|
||||
mBytesOut;
|
||||
|
||||
F32 mLastPeriodLength; // seconds
|
||||
S32 mBytesInLastPeriod;
|
||||
S32 mBytesOutLastPeriod;
|
||||
S32 mBytesInThisPeriod;
|
||||
S32 mBytesOutThisPeriod;
|
||||
F32Seconds mLastPeriodLength;
|
||||
S32Bytes mBytesInLastPeriod;
|
||||
S32Bytes mBytesOutLastPeriod;
|
||||
S32Bytes mBytesInThisPeriod;
|
||||
S32Bytes mBytesOutThisPeriod;
|
||||
F32 mPeakBPSIn; // bits per second, max of all period bps
|
||||
F32 mPeakBPSOut; // bits per second, max of all period bps
|
||||
F64 mPeriodTime;
|
||||
F64Seconds mPeriodTime;
|
||||
LLTimer mExistenceTimer; // initialized when circuit created, used to track bandwidth numbers
|
||||
|
||||
S32 mCurrentResendCount; // Number of resent packets since last spam
|
||||
U32 mLastPacketGap; // Gap in sequence number of last packet.
|
||||
|
||||
const F32 mHeartbeatInterval;
|
||||
const F32 mHeartbeatTimeout;
|
||||
const F32Seconds mHeartbeatInterval;
|
||||
const F32Seconds mHeartbeatTimeout;
|
||||
};
|
||||
|
||||
|
||||
@@ -287,7 +288,7 @@ class LLCircuit
|
||||
{
|
||||
public:
|
||||
// CREATORS
|
||||
LLCircuit(const F32 circuit_heartbeat_interval, const F32 circuit_timeout);
|
||||
LLCircuit(const F32Seconds circuit_heartbeat_interval, const F32Seconds circuit_timeout);
|
||||
~LLCircuit();
|
||||
|
||||
// ACCESSORS
|
||||
@@ -303,7 +304,7 @@ public:
|
||||
|
||||
// this method is called during the message system processAcks()
|
||||
// to send out any acks that did not get sent already.
|
||||
void sendAcks();
|
||||
void sendAcks(F32 collect_time);
|
||||
|
||||
friend std::ostream& operator<<(std::ostream& s, LLCircuit &circuit);
|
||||
void getInfo(LLSD& info) const;
|
||||
@@ -346,7 +347,7 @@ protected:
|
||||
mutable LLCircuitData* mLastCircuit;
|
||||
|
||||
private:
|
||||
const F32 mHeartbeatInterval;
|
||||
const F32 mHeartbeatTimeout;
|
||||
const F32Seconds mHeartbeatInterval;
|
||||
const F32Seconds mHeartbeatTimeout;
|
||||
};
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user