#include <SCTPAssociation.h>
Definition at line 203 of file SCTPAssociation.h.
SCTPPathVariables::SCTPPathVariables | ( | const IPvXAddress & | addr, | |
SCTPAssociation * | assoc | |||
) |
Definition at line 33 of file SCTPAssociationBase.cc.
{ InterfaceTableAccess interfaceTableAccess; association = assoc; remoteAddress = addr; activePath = true; confirmed = false; primaryPathCandidate = false; pathErrorCount = 0; pathErrorThreshold = assoc->getSctpMain()->par("pathMaxRetrans"); if (!pathErrorThreshold) { pathErrorThreshold = PATH_MAX_RETRANS; } pathRto = assoc->getSctpMain()->par("rtoInitial"); heartbeatTimeout = pathRto; double interval = (double)assoc->getSctpMain()->par("hbInterval"); if (!interval) { interval = HB_INTERVAL; } heartbeatIntervalTimeout = pathRto+interval; srtt = pathRto; lastAckTime = 0; forceHb = false; partialBytesAcked = 0; queuedBytes = 0; outstandingBytes = 0; RoutingTableAccess routingTableAccess; const InterfaceEntry* rtie = routingTableAccess.get()->getInterfaceForDestAddr(remoteAddress.get4()); if(rtie == NULL) { opp_error("No interface for remote address %s found!", remoteAddress.get4().str().c_str()); } pmtu = rtie->getMTU(); rttvar = 0.0; cwndTimeout = pathRto; cwnd = 0; ssthresh = 0; updateTime = 0.0; fastRecoveryExitPoint = 0; fastRecoveryActive = false; numberOfFastRetransmissions = 0; numberOfTimerBasedRetransmissions = 0; numberOfHeartbeatsSent = 0; numberOfHeartbeatsRcvd = 0; numberOfHeartbeatAcksSent = 0; numberOfHeartbeatAcksRcvd = 0; char str[128]; snprintf(str, sizeof(str), "HB_TIMER %d:%s",assoc->assocId,addr.str().c_str()); HeartbeatTimer = new cMessage(str); snprintf(str, sizeof(str), "HB_INT_TIMER %d:%s",assoc->assocId,addr.str().c_str()); HeartbeatIntervalTimer = new cMessage(str); snprintf(str, sizeof(str), "CWND_TIMER %d:%s",assoc->assocId,addr.str().c_str()); CwndTimer = new cMessage(str); snprintf(str, sizeof(str), "RTX_TIMER %d:%s",assoc->assocId,addr.str().c_str()); T3_RtxTimer = new cMessage(str); HeartbeatTimer->setContextPointer(association); HeartbeatIntervalTimer->setContextPointer(association); CwndTimer->setContextPointer(association); T3_RtxTimer->setContextPointer(association); snprintf(str, sizeof(str), "RTO %d:%s",assoc->assocId,addr.str().c_str()); statisticsPathRTO = new cOutVector(str); snprintf(str, sizeof(str), "RTT %d:%s",assoc->assocId,addr.str().c_str()); statisticsPathRTT = new cOutVector(str); snprintf(str, sizeof(str), "Slow Start Threshold %d:%s",assoc->assocId,addr.str().c_str()); statisticsPathSSthresh = new cOutVector(str); snprintf(str, sizeof(str), "Congestion Window %d:%s",assoc->assocId,addr.str().c_str()); statisticsPathCwnd = new cOutVector(str); snprintf(str, sizeof(str), "TSN Sent %d:%s",assoc->assocId,addr.str().c_str()); pathTSN = new cOutVector(str); snprintf(str, sizeof(str), "TSN Received %d:%s",assoc->assocId,addr.str().c_str()); pathRcvdTSN = new cOutVector(str); snprintf(str, sizeof(str), "HB Sent %d:%s",assoc->assocId,addr.str().c_str()); pathHb = new cOutVector(str); snprintf(str, sizeof(str), "HB ACK Sent %d:%s",assoc->assocId,addr.str().c_str()); pathHbAck = new cOutVector(str); snprintf(str, sizeof(str), "HB Received %d:%s",assoc->assocId,addr.str().c_str()); pathRcvdHb = new cOutVector(str); snprintf(str, sizeof(str), "HB ACK Received %d:%s",assoc->assocId,addr.str().c_str()); pathRcvdHbAck = new cOutVector(str); SCTPPathInfo* pinfo = new SCTPPathInfo("pinfo"); pinfo->setRemoteAddress(addr); T3_RtxTimer->setControlInfo(pinfo); HeartbeatTimer->setControlInfo(pinfo->dup()); HeartbeatIntervalTimer->setControlInfo(pinfo->dup()); CwndTimer->setControlInfo(pinfo->dup()); }
SCTPPathVariables::~SCTPPathVariables | ( | ) |
Definition at line 132 of file SCTPAssociationBase.cc.
{ statisticsPathSSthresh->record(0); statisticsPathCwnd->record(0); delete statisticsPathSSthresh; delete statisticsPathCwnd; statisticsPathRTO->record(0); statisticsPathRTT->record(0); delete statisticsPathRTO; delete statisticsPathRTT; delete pathTSN; delete pathRcvdTSN; delete pathHb; delete pathRcvdHb; delete pathHbAck; delete pathRcvdHbAck; }
Definition at line 213 of file SCTPAssociation.h.
Referenced by SCTPAssociation::pmClearPathCounter(), SCTPAssociation::pmStartPathManagement(), SCTPAssociation::process_TIMEOUT_HEARTBEAT(), SCTPAssociation::process_TIMEOUT_RTX(), SCTPAssociation::processHeartbeatAckArrived(), SCTPPathVariables(), and SCTPAssociation::updateCounters().
Definition at line 209 of file SCTPAssociation.h.
Referenced by SCTPPathVariables().
Definition at line 214 of file SCTPAssociation.h.
Referenced by SCTPAssociation::getNextDestination(), SCTPAssociation::pmStartPathManagement(), SCTPAssociation::processHeartbeatAckArrived(), and SCTPPathVariables().
uint32 SCTPPathVariables::cwnd |
Definition at line 227 of file SCTPAssociation.h.
Referenced by SCTPAssociation::bytesAllowedToSend(), SCTPAssociation::cwndUpdateAfterCwndTimeout(), SCTPAssociation::cwndUpdateAfterRtxTimeout(), SCTPAssociation::cwndUpdateAfterSack(), SCTPAssociation::cwndUpdateBytesAcked(), SCTPAssociation::cwndUpdateMaxBurst(), SCTPAssociation::initCCParameters(), SCTPAssociation::printSctpPathMap(), SCTPAssociation::recordCwndUpdate(), SCTPAssociation::removePath(), and SCTPPathVariables().
simtime_t SCTPPathVariables::cwndTimeout |
Definition at line 253 of file SCTPAssociation.h.
Referenced by SCTPAssociation::pmDataIsSentOn(), and SCTPPathVariables().
cMessage* SCTPPathVariables::CwndTimer |
Definition at line 246 of file SCTPAssociation.h.
Referenced by SCTPAssociation::pmDataIsSentOn(), SCTPAssociation::processTimer(), SCTPAssociation::removePath(), and SCTPPathVariables().
Definition at line 236 of file SCTPAssociation.h.
Referenced by SCTPAssociation::cwndUpdateAfterRtxTimeout(), SCTPAssociation::cwndUpdateAfterSack(), SCTPAssociation::cwndUpdateBytesAcked(), SCTPPathVariables(), and SCTPAssociation::updateFastRecoveryStatus().
Definition at line 238 of file SCTPAssociation.h.
Referenced by SCTPAssociation::cwndUpdateAfterSack().
Definition at line 237 of file SCTPAssociation.h.
Referenced by SCTPAssociation::cwndUpdateAfterRtxTimeout(), SCTPAssociation::cwndUpdateAfterSack(), SCTPPathVariables(), and SCTPAssociation::updateFastRecoveryStatus().
Definition at line 240 of file SCTPAssociation.h.
Referenced by SCTPAssociation::handleChunkReportedAsMissing(), and SCTPAssociation::processSackArrived().
Definition at line 217 of file SCTPAssociation.h.
Referenced by SCTPAssociation::process_TIMEOUT_HEARTBEAT_INTERVAL(), SCTPAssociation::processTimer(), and SCTPPathVariables().
unsigned int SCTPPathVariables::gapAcksInLastSACK |
Definition at line 261 of file SCTPAssociation.h.
Referenced by SCTPAssociation::handleChunkReportedAsMissing(), and SCTPAssociation::processSackArrived().
unsigned int SCTPPathVariables::gapNAcksInLastSACK |
Definition at line 262 of file SCTPAssociation.h.
Referenced by SCTPAssociation::handleChunkReportedAsMissing(), and SCTPAssociation::processSackArrived().
Definition at line 251 of file SCTPAssociation.h.
Referenced by SCTPAssociation::pmStartPathManagement(), SCTPAssociation::process_TIMEOUT_HEARTBEAT_INTERVAL(), and SCTPPathVariables().
Definition at line 245 of file SCTPAssociation.h.
Referenced by SCTPAssociation::pmStartPathManagement(), SCTPAssociation::process_TIMEOUT_HEARTBEAT_INTERVAL(), SCTPAssociation::processTimer(), SCTPAssociation::removePath(), and SCTPPathVariables().
simtime_t SCTPPathVariables::heartbeatTimeout |
Definition at line 250 of file SCTPAssociation.h.
Referenced by SCTPAssociation::pmDataIsSentOn(), SCTPAssociation::pmStartPathManagement(), SCTPAssociation::process_TIMEOUT_HEARTBEAT_INTERVAL(), SCTPAssociation::processHeartbeatAckArrived(), and SCTPPathVariables().
cMessage* SCTPPathVariables::HeartbeatTimer |
Definition at line 244 of file SCTPAssociation.h.
Referenced by SCTPAssociation::pmDataIsSentOn(), SCTPAssociation::pmStartPathManagement(), SCTPAssociation::process_TIMEOUT_HEARTBEAT_INTERVAL(), SCTPAssociation::processHeartbeatAckArrived(), SCTPAssociation::processTimer(), SCTPAssociation::removePath(), and SCTPPathVariables().
simtime_t SCTPPathVariables::lastAckTime |
Definition at line 255 of file SCTPAssociation.h.
Referenced by SCTPAssociation::process_TIMEOUT_HEARTBEAT_INTERVAL(), SCTPAssociation::processHeartbeatAckArrived(), SCTPAssociation::processSackArrived(), and SCTPPathVariables().
Definition at line 241 of file SCTPAssociation.h.
Referenced by SCTPAssociation::handleChunkReportedAsMissing(), and SCTPAssociation::processSackArrived().
Definition at line 221 of file SCTPAssociation.h.
Referenced by SCTPAssociation::dequeueAckedChunks(), and SCTPAssociation::processSackArrived().
Definition at line 234 of file SCTPAssociation.h.
Referenced by SCTPAssociation::dequeueAckedChunks(), SCTPAssociation::handleChunkReportedAsAcked(), and SCTPAssociation::processSackArrived().
unsigned int SCTPPathVariables::numberOfDuplicates |
Definition at line 263 of file SCTPAssociation.h.
unsigned int SCTPPathVariables::numberOfFastRetransmissions |
Definition at line 264 of file SCTPAssociation.h.
Referenced by SCTPAssociation::handleChunkReportedAsMissing(), SCTP::removeAssociation(), and SCTPPathVariables().
unsigned int SCTPPathVariables::numberOfHeartbeatAcksRcvd |
Definition at line 269 of file SCTPAssociation.h.
Referenced by SCTPAssociation::processHeartbeatAckArrived(), SCTP::removeAssociation(), and SCTPPathVariables().
unsigned int SCTPPathVariables::numberOfHeartbeatAcksSent |
Definition at line 267 of file SCTPAssociation.h.
Referenced by SCTPAssociation::recordInPathVectors(), SCTP::removeAssociation(), and SCTPPathVariables().
unsigned int SCTPPathVariables::numberOfHeartbeatsRcvd |
Definition at line 268 of file SCTPAssociation.h.
Referenced by SCTPAssociation::process_RCV_Message(), SCTP::removeAssociation(), and SCTPPathVariables().
unsigned int SCTPPathVariables::numberOfHeartbeatsSent |
Definition at line 266 of file SCTPAssociation.h.
Referenced by SCTPAssociation::recordInPathVectors(), SCTP::removeAssociation(), and SCTPPathVariables().
unsigned int SCTPPathVariables::numberOfTimerBasedRetransmissions |
Definition at line 265 of file SCTPAssociation.h.
Referenced by SCTPAssociation::process_TIMEOUT_RTX(), SCTP::removeAssociation(), and SCTPPathVariables().
Definition at line 231 of file SCTPAssociation.h.
Referenced by SCTPAssociation::bytesAllowedToSend(), SCTPAssociation::cwndUpdateBytesAcked(), SCTPAssociation::cwndUpdateMaxBurst(), SCTPAssociation::decreaseOutstandingBytes(), SCTPAssociation::increaseOutstandingBytes(), SCTPAssociation::loadPacket(), SCTPAssociation::moveChunkToOtherPath(), SCTPAssociation::pmStartPathManagement(), SCTPAssociation::printSctpPathMap(), SCTPAssociation::processSackArrived(), SCTPPathVariables(), SCTPAssociation::sendOnPath(), and SCTPAssociation::storePacket().
Definition at line 233 of file SCTPAssociation.h.
Referenced by SCTPAssociation::cwndUpdateBytesAcked(), and SCTPAssociation::processSackArrived().
Definition at line 229 of file SCTPAssociation.h.
Referenced by SCTPAssociation::cwndUpdateAfterRtxTimeout(), SCTPAssociation::cwndUpdateAfterSack(), SCTPAssociation::cwndUpdateBytesAcked(), SCTPAssociation::pmStartPathManagement(), and SCTPPathVariables().
Definition at line 223 of file SCTPAssociation.h.
Referenced by SCTPAssociation::pmClearPathCounter(), SCTPAssociation::pmStartPathManagement(), SCTPAssociation::process_TIMEOUT_HEARTBEAT(), SCTPAssociation::process_TIMEOUT_RTX(), SCTPAssociation::processHeartbeatAckArrived(), SCTPPathVariables(), and SCTPAssociation::updateCounters().
Definition at line 224 of file SCTPAssociation.h.
Referenced by SCTPPathVariables().
cOutVector* SCTPPathVariables::pathHb |
Definition at line 274 of file SCTPAssociation.h.
Referenced by SCTPAssociation::recordInPathVectors(), SCTPPathVariables(), and ~SCTPPathVariables().
cOutVector* SCTPPathVariables::pathHbAck |
Definition at line 276 of file SCTPAssociation.h.
Referenced by SCTPAssociation::recordInPathVectors(), SCTPPathVariables(), and ~SCTPPathVariables().
cOutVector* SCTPPathVariables::pathRcvdHb |
Definition at line 275 of file SCTPAssociation.h.
Referenced by SCTPAssociation::process_RCV_Message(), SCTPPathVariables(), and ~SCTPPathVariables().
cOutVector* SCTPPathVariables::pathRcvdHbAck |
Definition at line 277 of file SCTPAssociation.h.
Referenced by SCTPAssociation::processHeartbeatAckArrived(), SCTPPathVariables(), and ~SCTPPathVariables().
cOutVector* SCTPPathVariables::pathRcvdTSN |
Definition at line 273 of file SCTPAssociation.h.
Referenced by SCTPAssociation::processDataArrived(), SCTPPathVariables(), and ~SCTPPathVariables().
simtime_t SCTPPathVariables::pathRto |
Definition at line 256 of file SCTPAssociation.h.
Referenced by SCTPAssociation::pmDataIsSentOn(), SCTPAssociation::pmRttMeasurement(), SCTPAssociation::pmStartPathManagement(), SCTPAssociation::process_TIMEOUT_HEARTBEAT(), SCTPAssociation::process_TIMEOUT_HEARTBEAT_INTERVAL(), SCTPAssociation::process_TIMEOUT_RTX(), SCTPAssociation::processHeartbeatAckArrived(), SCTPAssociation::processSackArrived(), SCTPPathVariables(), SCTPAssociation::sendOnPath(), and SCTPAssociation::tsnWasReneged().
cOutVector* SCTPPathVariables::pathTSN |
Definition at line 272 of file SCTPAssociation.h.
Referenced by SCTPAssociation::recordInPathVectors(), SCTPPathVariables(), and ~SCTPPathVariables().
uint32 SCTPPathVariables::pmtu |
Definition at line 225 of file SCTPAssociation.h.
Referenced by SCTPAssociation::bytesAllowedToSend(), SCTPAssociation::calculateBytesToSendOnPath(), SCTPAssociation::createSack(), SCTPAssociation::cwndUpdateAfterCwndTimeout(), SCTPAssociation::cwndUpdateAfterRtxTimeout(), SCTPAssociation::cwndUpdateAfterSack(), SCTPAssociation::cwndUpdateBytesAcked(), SCTPAssociation::cwndUpdateMaxBurst(), SCTPAssociation::initCCParameters(), SCTPAssociation::pmStartPathManagement(), SCTPAssociation::processHeartbeatAckArrived(), SCTPPathVariables(), and SCTPAssociation::sendOnPath().
Definition at line 216 of file SCTPAssociation.h.
Referenced by SCTPAssociation::processHeartbeatAckArrived(), and SCTPPathVariables().
Definition at line 230 of file SCTPAssociation.h.
Referenced by SCTPPathVariables().
Definition at line 210 of file SCTPAssociation.h.
Referenced by SCTPAssociation::bytesAllowedToSend(), SCTPAssociation::choosePathForRetransmission(), SCTPAssociation::cwndUpdateAfterCwndTimeout(), SCTPAssociation::cwndUpdateAfterRtxTimeout(), SCTPAssociation::cwndUpdateAfterSack(), SCTPAssociation::cwndUpdateBytesAcked(), SCTPAssociation::cwndUpdateMaxBurst(), SCTPAssociation::decreaseOutstandingBytes(), SCTPAssociation::getNextAddress(), SCTPAssociation::getNextDestination(), SCTPAssociation::getOutboundDataChunk(), SCTPAssociation::handleChunkReportedAsAcked(), SCTPAssociation::handleChunkReportedAsMissing(), SCTPAssociation::increaseOutstandingBytes(), SCTPAssociation::initCCParameters(), SCTPAssociation::loadPacket(), SCTPAssociation::makeDataVarFromDataMsg(), SCTPAssociation::pathStatusIndication(), SCTPAssociation::pmClearPathCounter(), SCTPAssociation::pmDataIsSentOn(), SCTPAssociation::pmStartPathManagement(), SCTPAssociation::printSctpPathMap(), SCTPAssociation::process_TIMEOUT_HEARTBEAT(), SCTPAssociation::process_TIMEOUT_HEARTBEAT_INTERVAL(), SCTPAssociation::process_TIMEOUT_RTX(), SCTPAssociation::processHeartbeatAckArrived(), SCTPAssociation::processInitArrived(), SCTPAssociation::processSackArrived(), SCTP::removeAssociation(), SCTPAssociation::removePath(), SCTPPathVariables(), SCTPAssociation::sendHeartbeat(), SCTPAssociation::sendOnPath(), SCTPAssociation::storePacket(), SCTPAssociation::updateCounters(), and SCTPAssociation::updateFastRecoveryStatus().
Definition at line 215 of file SCTPAssociation.h.
Referenced by SCTPAssociation::cwndUpdateAfterSack(), SCTPAssociation::handleChunkReportedAsMissing(), and SCTPAssociation::processSackArrived().
simtime_t SCTPPathVariables::rttvar |
Definition at line 258 of file SCTPAssociation.h.
Referenced by SCTPAssociation::pmRttMeasurement(), SCTPAssociation::pmStartPathManagement(), and SCTPPathVariables().
simtime_t SCTPPathVariables::rtxTimeout |
Definition at line 252 of file SCTPAssociation.h.
simtime_t SCTPPathVariables::srtt |
Definition at line 257 of file SCTPAssociation.h.
Referenced by SCTPAssociation::pmRttMeasurement(), SCTPAssociation::pmStartPathManagement(), and SCTPPathVariables().
uint32 SCTPPathVariables::ssthresh |
Definition at line 228 of file SCTPAssociation.h.
Referenced by SCTPAssociation::cwndUpdateAfterCwndTimeout(), SCTPAssociation::cwndUpdateAfterRtxTimeout(), SCTPAssociation::cwndUpdateAfterSack(), SCTPAssociation::cwndUpdateBytesAcked(), SCTPAssociation::cwndUpdateMaxBurst(), SCTPAssociation::initCCParameters(), SCTPAssociation::processHeartbeatAckArrived(), SCTPAssociation::recordCwndUpdate(), SCTPAssociation::removePath(), and SCTPPathVariables().
cOutVector* SCTPPathVariables::statisticsPathCwnd |
Definition at line 281 of file SCTPAssociation.h.
Referenced by SCTPAssociation::recordCwndUpdate(), SCTPPathVariables(), and ~SCTPPathVariables().
cOutVector* SCTPPathVariables::statisticsPathRTO |
Definition at line 278 of file SCTPAssociation.h.
Referenced by SCTPAssociation::pmRttMeasurement(), SCTPAssociation::pmStartPathManagement(), SCTPAssociation::process_TIMEOUT_HEARTBEAT(), SCTPAssociation::process_TIMEOUT_RTX(), SCTPPathVariables(), and ~SCTPPathVariables().
cOutVector* SCTPPathVariables::statisticsPathRTT |
Definition at line 279 of file SCTPAssociation.h.
Referenced by SCTPAssociation::pmRttMeasurement(), SCTPPathVariables(), and ~SCTPPathVariables().
cOutVector* SCTPPathVariables::statisticsPathSSthresh |
Definition at line 280 of file SCTPAssociation.h.
Referenced by SCTPAssociation::recordCwndUpdate(), SCTPPathVariables(), and ~SCTPPathVariables().
cMessage* SCTPPathVariables::T3_RtxTimer |
Definition at line 247 of file SCTPAssociation.h.
Referenced by SCTPAssociation::moveChunkToOtherPath(), SCTPAssociation::pmStartPathManagement(), SCTPAssociation::processSackArrived(), SCTPAssociation::processTimer(), SCTPAssociation::removePath(), SCTPPathVariables(), SCTPAssociation::sendOnPath(), and SCTPAssociation::tsnWasReneged().
simtime_t SCTPPathVariables::updateTime |
Definition at line 254 of file SCTPAssociation.h.
Referenced by SCTPAssociation::pmRttMeasurement(), SCTPAssociation::pmStartPathManagement(), and SCTPPathVariables().