271 rxQ.push_back(timer);
277 for (it = pduQ->begin(); it != pduQ->end();)
280 it = pduQ->erase(it);
287 std::vector<DTCPRxExpiryTimer*>::iterator it;
288 for (it =
rxQ.begin(); it !=
rxQ.end();)
290 if((*it)->getPdu() != NULL){
291 take((*it)->getPdu());
292 delete (*it)->getPdu();
295 cancelAndDelete((*it));
454 if(par(
"aTime").doubleValue() != 0){
459 if(getRINAModule<cModule*>(
this, 2, {
MOD_EFCP})->hasPar(
"rcvCredit")){
463 if(getRINAModule<cModule*>(
this, 2, {
MOD_EFCP})->hasPar(
"initialSenderCredit")){
464 sndCredit = getRINAModule<cModule*>(
this, 2, {
MOD_EFCP})->par(
"initialSenderCredit");
471 if(getRINAModule<cModule*>(
this, 2, {
MOD_EFCP})->hasPar(
"maxClosedWinQueLen")){
unsigned int rcvBuffersPercentFree
DTCPReliableControlPDUTimer * reliableCPDUTimer
void setRateBased(bool rateBased)
void setSenderLeftWinEdge(unsigned int senderLeftWinEdge)
unsigned int lastControlSeqNumRcv
void setWinBased(bool winBased)
void clearClosedWindowQ()
void setSndRendez(bool sndRendez)
void setSendingTimeUnit(unsigned long sendingTimeUnit)
void initFromQoS(const QoSCube *qosCube)
void pushBackToRxQ(DTCPRxExpiryTimer *timer)
unsigned int getDupFC() const
void clearPDUQ(PDUQ_t *pduQ)
std::vector< DataTransferPDU * > closedWindowQ
unsigned int getPdusRcvdInTimeUnit() const
unsigned int getRxSent() const
unsigned int maxClosedWinQueLen
void setDataReXmitMax(unsigned int dataReXmitMax)
virtual void handleMessage(cMessage *msg)
unsigned int getDataReXmitMax() const
void setSenderRightWinEdge(unsigned int senderRightWinEdge)
void setRxPresent(bool rxPresent)
unsigned int nextSenderControlSeqNum
unsigned int rcvRightWinEdgeSent
unsigned int rcvBufferPercentThreshold
void setSendingRateFullfilled(bool sendingRateFullfilled)
void setLastCtrlSeqNumRcv(unsigned int ctrlSeqNum)
unsigned int pdusSentInTimeUnit
void setRcvCredit(unsigned int rcvCredit)
unsigned int getRendezSeqNum() const
unsigned int getNextSndCtrlSeqNum()
unsigned int configRcvrRate
void setRcvRightWinEdgeSent(unsigned int rcvrRightWinEdgeSent)
unsigned int getSndRightWinEdge() const
unsigned int getRcvBuffersPercentFree() const
unsigned int getPdusSentInTimeUnit() const
unsigned int rcvRightWinEdge
unsigned int getDupAcks() const
unsigned int pdusRcvdinTimeUnit
unsigned int getClosedWinQueLen() const
const QoSCube * getQoSCube() const
void setPdusSentInTimeUnit(unsigned int pdusSentInTimeUnit)
bool isClosedWindow() const
void setReliableCpduTimer(DTCPReliableControlPDUTimer *reliableCpduTimer)
void setMaxClosedWinQueLen(unsigned int maxClosedWinQueLen)
unsigned int getSendingRate() const
unsigned int getMaxClosedWinQueLen() const
unsigned int getLastControlSeqNumSent() const
void setPdusRcvdinTimeUnit(unsigned int pdusRcvdinTimeUnit)
std::vector< DTCPRxExpiryTimer * > rxQ
unsigned long sendingTimeUnit
void setQoSCube(const QoSCube *&qoSCube)
void setSndCredit(unsigned int sndCredit)
std::vector< DataTransferPDU * > PDUQ_t
void setRcvRtWinEdge(unsigned int rcvRtWinEdge)
void setSendingRate(unsigned int sendingRate)
unsigned int dataReXmitMax
void setConfigRcvrRate(unsigned int configRcvrRate)
DTCPReliableControlPDUTimer * getReliableCpduTimer()
unsigned int getRcvRightWinEdge() const
DTCPRendezvousTimer * rendezvousTimer
void setRendezSeqNum(unsigned int rendezSeqNum)
bool isSendingRateFullfilled() const
void updateSndLWE(unsigned int seqNum)
virtual void initialize(int step)
unsigned int getSndLeftWinEdge() const
unsigned int getNextSndCtrlSeqNumNoInc()
unsigned int getConfigRcvrRate() const
unsigned int getLastCtrlSeqNumRcv()
void setRcvrRate(unsigned int rcvrRate)
Class representing QoSCube with all its properties that is primarily used by FA, RMT and RA Specifica...
std::vector< DTCPRxExpiryTimer * > * getRxQ()
unsigned int getRcvrRate() const
void setRcvBufferPercentThreshold(unsigned int rcvBufferPercentThreshold)
unsigned int sndRightWinEdge
void setRcvBuffersPercentFree(unsigned int rcvBuffersPercentFree)
std::vector< DataTransferPDU * > * getClosedWindowQ()
unsigned int lastControlSeqNumSent
void setRendezvousTimer(DTCPRendezvousTimer *rendezvousTimer)
unsigned int sndLeftWinEdge
void setClosedWindow(bool closedWindow)
unsigned int getRcvBufferPercentThreshold() const
bool isWindowFcOn() const
bool sendingRateFullfilled
unsigned int rendezSeqNum
void setLastControlSeqNumSent(unsigned int lastControlSeqNumSent)
unsigned int getRcvrRightWinEdgeSent() const
DTCPRendezvousTimer * getRendezvousTimer()
bool isClosedWinQClosed() const
unsigned int getSndCredit() const
void setRcvRendez(bool rcvRendez)
unsigned long getTimeUnit() const
unsigned int getRcvCredit() const
unsigned long getSendingTimeUnit() const
void pushBackToClosedWinQ(DataTransferPDU *pdu)
void updateRcvRtWinEdge(unsigned int rcvLtWinEdge)