SCTPPathVariables Class Reference

#include <SCTPAssociation.h>

List of all members.

Public Member Functions

 SCTPPathVariables (IPvXAddress addr, SCTPAssociation *assoc)
 ~SCTPPathVariables ()

Public Attributes

SCTPAssociationassociation
IPvXAddress remoteAddress
bool activePath
bool confirmed
bool requiresRtx
bool hbWasAcked
bool primaryPathCandidate
bool forceHb
uint32 pathErrorCount
uint32 pathErrorThreshold
uint32 pmtu
uint32 cwnd
uint32 ssthresh
uint32 partialBytesAcked
uint32 outstandingBytes
simtime_t heartbeatTimeout
simtime_t heartbeatIntervalTimeout
simtime_t rtxTimeout
simtime_t cwndTimeout
simtime_t updateTime
simtime_t lastAckTime
simtime_t cwndAdjustmentTime
simtime_t pathRto
simtime_t srtt
simtime_t rttvar
cMessage * HeartbeatTimer
cMessage * HeartbeatIntervalTimer
cMessage * CwndTimer
cMessage * T3_RtxTimer
cOutVector * pathSsthresh
cOutVector * pathCwnd
cOutVector * pathTSN
cOutVector * pathRcvdTSN
cOutVector * pathRTO
cOutVector * pathRTT


Constructor & Destructor Documentation

SCTPPathVariables::SCTPPathVariables ( IPvXAddress  addr,
SCTPAssociation assoc 
)

00032 {
00033         association = assoc;
00034         remoteAddress = addr;
00035         activePath = true;
00036         confirmed = false;
00037         primaryPathCandidate = false;
00038         pathErrorCount =0;
00039         pathErrorThreshold = assoc->getSctpMain()->par("pathMaxRetrans");
00040         if (!pathErrorThreshold)
00041                 pathErrorThreshold = PATH_MAX_RETRANS;
00042         pathRto = assoc->getSctpMain()->par("rtoInitial");
00043         heartbeatTimeout = pathRto;
00044         double interval = (double)assoc->getSctpMain()->par("hbInterval");
00045 
00046         if (!interval)
00047                 interval = HB_INTERVAL;
00048         heartbeatIntervalTimeout = pathRto+interval;
00049         srtt = pathRto;
00050         lastAckTime = 0;
00051         forceHb = false;
00052         partialBytesAcked = 0;
00053         outstandingBytes = 0;
00054         RoutingTableAccess routingTableAccess;
00055         InterfaceEntry *rtie = routingTableAccess.get()->getInterfaceForDestAddr(remoteAddress.get4());
00056         pmtu = rtie->getMTU();
00057         hbWasAcked = false;
00058         rttvar = 0.0;
00059 
00060         cwndTimeout = pathRto;
00061         cwnd = 0;
00062         updateTime = 0.0;
00063         cwndAdjustmentTime=0;
00064         char str[70];
00065         sprintf(str, "HB_TIMER %d:%s",assoc->assocId,addr.str().c_str());
00066         HeartbeatTimer = new cMessage(str);
00067         sprintf(str, "HB_INT_TIMER %d:%s",assoc->assocId,addr.str().c_str());
00068         HeartbeatIntervalTimer = new cMessage(str);
00069         sprintf(str, "CWND_TIMER %d:%s",assoc->assocId,addr.str().c_str());
00070         CwndTimer = new cMessage(str);
00071         sprintf(str, "RTX_TIMER %d:%s",assoc->assocId,addr.str().c_str());
00072         T3_RtxTimer = new cMessage(str);
00073         HeartbeatTimer->setContextPointer(association);
00074         HeartbeatIntervalTimer->setContextPointer(association);
00075         CwndTimer->setContextPointer(association);
00076         T3_RtxTimer->setContextPointer(association);
00077         sprintf(str, "Slow Start Threshold %d:%s",assoc->assocId,addr.str().c_str());
00078         pathSsthresh = new cOutVector(str);
00079         sprintf(str, "Congestion Window %d:%s",assoc->assocId,addr.str().c_str());
00080         pathCwnd = new cOutVector(str);
00081         sprintf(str, "TSN sent for assoc %d on path %s",assoc->assocId,addr.str().c_str());
00082         pathTSN = new cOutVector(str);
00083         sprintf(str, "TSN received for assoc %d on path %s",assoc->assocId,addr.str().c_str());
00084         pathRcvdTSN = new cOutVector(str);
00085         sprintf(str, "RTO for assoc %d on path %s",assoc->assocId,addr.str().c_str());
00086         pathRTO = new cOutVector(str);
00087         sprintf(str, "RTT for assoc %d on path %s",assoc->assocId,addr.str().c_str());
00088         pathRTT = new cOutVector(str);
00089         sprintf(str, "peerRwnd/RTT for assoc %d on path %s",assoc->assocId,addr.str().c_str());
00090         SCTPPathInfo* pinfo = new SCTPPathInfo();
00091         pinfo->setRemoteAddress(addr);
00092         T3_RtxTimer->setControlInfo(pinfo);
00093         HeartbeatTimer->setControlInfo(pinfo->dup());
00094         HeartbeatIntervalTimer->setControlInfo(pinfo->dup());
00095         CwndTimer->setControlInfo(pinfo->dup());
00096 
00097 }

SCTPPathVariables::~SCTPPathVariables (  ) 

00100 {
00101 
00102 }


Member Data Documentation

Referenced by SCTPPathVariables().

Referenced by SCTPPathVariables().


The documentation for this class was generated from the following files:

Generated on Fri Mar 20 18:51:21 2009 for INET Framework for OMNeT++/OMNEST by  doxygen 1.5.5