RINASim
October 2016
Documentation of framework for OMNeT++
|
#include <DTP.h>
Protected Member Functions | |
virtual void | handleMessage (cMessage *msg) |
virtual void | initialize (int step) |
int | numInitStages () const |
void | initSignalsAndListeners () |
Protected Attributes | |
simsignal_t | sigEFCPStahpSending |
simsignal_t | sigEFCPStartSending |
simsignal_t | sigStatDTPRTT |
simsignal_t | sigStatDTPClosedWinQ |
simsignal_t | sigStatDTPSentSeqNum |
simsignal_t | sigStatDTPRecvSeqNum |
Private Attributes | |
unsigned int | sduSeqNum |
std::set< unsigned int > | sequencingQ |
int | deletePdu |
bool | pduDroppingEnabled |
bool | rendezvousEnabled |
DTPState * | state |
DTCP * | dtcp |
const Flow * | flow |
RcvrInactivityPolicyBase * | rcvrInactivityPolicy |
SenderInactivityPolicyBase * | senderInactivityPolicy |
InitialSeqNumPolicyBase * | initialSeqNumPolicy |
RTTEstimatorPolicyBase * | rttEstimatorPolicy |
std::vector< UserDataField * > | userDataFieldQOut |
std::vector< ATimer * > | aTimerQ |
SenderInactivityTimer * | senderInactivityTimer |
RcvrInactivityTimer * | rcvrInactivityTimer |
cGate * | northI |
cGate * | northO |
cGate * | southI |
cGate * | southO |
ConnectionId | connId |
Friends | |
class | DTCP |
|
private |
Invokes method of same name in DTPState to add
pdu | to Reassembly Queue for further processing. |
pdu | PDU to be put on the Reassembly Queue. |
Definition at line 458 of file DTP.cc.
Referenced by handleDataTransferPDUFromRMT().
void DTP::cancelATimer | ( | unsigned int | seqNum | ) |
This method cancels and deletes all A-Timers from aTimerQ up to
seqNum | |
seqNum | Maximum sequence number associated with ATimer that will be deleted. |
Definition at line 800 of file DTP.cc.
Referenced by RcvrAckPolicyBase::defaultAction(), and handleDTPATimer().
|
private |
Definition at line 307 of file DTP.cc.
Referenced by handleInterrupterTimer().
|
private |
|
private |
Invokes Common checks on incomming Control PDUs.
pdu | Control PDU to be checked. |
Definition at line 488 of file DTP.cc.
Referenced by handleControlPDUFromRMT().
cModule * DTP::createPolicyModule | ( | const char * | prefix, |
const char * | name | ||
) |
|
private |
|
private |
Definition at line 1203 of file DTP.cc.
Referenced by SendingAckPolicyBase::defaultAction().
void DTP::delimitFromRMT | ( | ) |
Invokes delimiting upon finishing processing incoming PDU from RMT. For now, this method passes only complete, in-order SDUs to the upper flow.
pdu | Can be nullptr. |
Definition at line 468 of file DTP.cc.
Referenced by handleDataTransferPDUFromRMT(), and handleDTPATimer().
|
private |
Definition at line 1503 of file DTP.cc.
Referenced by fillRendezvousPDU(), and sendControlAckPDU().
void DTP::fillFlowControlPDU | ( | FlowControlPDU * | flowControlPdu | ) |
This methods fill all Flow Control information related fields in Control PDU and updates last sent RRWE.
flowControlPdu |
Definition at line 540 of file DTP.cc.
Referenced by RcvrAckPolicyLG::run(), sendAckFlowPDU(), and sendFCOnlyPDU().
|
private |
Definition at line 1261 of file DTP.cc.
Referenced by sendRendezvousPDU().
void DTP::flushAllQueuesAndPrepareToDie | ( | ) |
|
private |
Definition at line 1726 of file DTP.cc.
Referenced by handleDataTransferPDUFromRMT().
|
private |
|
private |
Encapsulate all SDUs from sduQ into PDUs and put them in generated_PDU Queue
Definition at line 1225 of file DTP.cc.
Referenced by handleMsgFromUp().
|
private |
const QoSCube * DTP::getQoSCube | ( | ) | const |
Get reference to the QoSCube active on this flow.
Definition at line 196 of file DTP.cc.
Referenced by RcvrAckPolicyBase::defaultAction(), getAllowableGap(), and getRxTime().
|
private |
|
private |
Definition at line 602 of file DTP.cc.
Referenced by handleMsgFromRMT().
|
private |
Definition at line 862 of file DTP.cc.
Referenced by handleMsgFromRMT().
|
private |
Definition at line 1107 of file DTP.cc.
Referenced by handleMessage().
|
private |
Definition at line 1087 of file DTP.cc.
Referenced by handleMessage().
|
private |
Definition at line 1094 of file DTP.cc.
Referenced by handleMessage().
|
private |
Definition at line 325 of file DTP.cc.
Referenced by handleMessage().
|
private |
This method handles incomming PDUs from RMT and passes them to specific methods for further processing.
msg | Incomming msg is either DataTransferPDU or ControlPDU. If it is neither of those, Error is raised. |
Definition at line 757 of file DTP.cc.
Referenced by handleMessage().
|
private |
Handles message processing from upper module (delimiting) and tries to send it to RMT.
sdu |
Definition at line 437 of file DTP.cc.
Referenced by handleMessage().
|
private |
Definition at line 100 of file DTP.cc.
Referenced by handleQueueInfoFromRMT(), and handleQueueInfoFromSocket().
void DTP::handleQueueInfoFromRMT | ( | QueueInfo * | queueInfo | ) |
Definition at line 1788 of file DTP.cc.
Referenced by LisEFCPQueueInfoFromRMT::receiveSignal().
void DTP::handleQueueInfoFromSocket | ( | QueueInfo * | queueInfo | ) |
Definition at line 95 of file DTP.cc.
Referenced by LisEFCPQueueInfoFromAE::receiveSignal().
|
private |
|
private |
Definition at line 185 of file DTP.cc.
Referenced by initialize().
|
protected |
Definition at line 104 of file DTP.cc.
Referenced by initialize().
bool DTP::isATimerQEmpty | ( | ) |
Definition at line 789 of file DTP.cc.
Referenced by RcvrAckPolicyBase::defaultAction().
|
private |
Definition at line 840 of file DTP.cc.
Referenced by handleDataTransferPDUFromRMT().
void DTP::notifyAboutUnableMaintain | ( | ) |
Definition at line 1565 of file DTP.cc.
Referenced by RxTimerExpiryPolicyBase::defaultAction().
|
private |
This methods is invoked when number of PDUs on closedWindowQueue gets reduced under maxClosedWinQLen. It indicates to the upper flow that it can start sending again.
Definition at line 1581 of file DTP.cc.
Referenced by handleControlPDUFromRMT().
void DTP::notifyStopSending | ( | ) |
This method is invoked upon reaching limit on closedWindowQueue and causes the upper flow (whether it is AE or another IPCP).
Definition at line 1594 of file DTP.cc.
Referenced by SndFCOverrunPolicyBase::defaultAction().
|
private |
Prints important variables on the simulation pane next to the module.
Definition at line 243 of file DTP.cc.
Referenced by handleMessage().
|
private |
Definition at line 1283 of file DTP.cc.
Referenced by handleControlPDUFromRMT(), DTCP::handleRendezvousTimer(), handleRendezvousTimer(), and trySendGenPDUs().
void DTP::resetSenderInactivTimer | ( | ) |
Definition at line 1100 of file DTP.cc.
Referenced by SendingAckPolicyBase::defaultAction().
void DTP::runCongestionNotificationPolicy | ( | ) |
Definition at line 90 of file DTP.cc.
Referenced by LisEFCPCongestFromRA::receiveSignal().
bool DTP::runInitialSeqNumPolicy | ( | ) |
Definition at line 1470 of file DTP.cc.
Referenced by SenderInactivityPolicyBase::defaultAction().
|
private |
Definition at line 1619 of file DTP.cc.
Referenced by handleDTPRcvrInactivityTimer().
|
private |
Definition at line 80 of file DTP.cc.
Referenced by handleControlPDUFromRMT().
|
private |
Definition at line 1633 of file DTP.cc.
Referenced by handleDTPSenderInactivityTimer().
|
private |
Definition at line 1736 of file DTP.cc.
Referenced by handleDataTransferPDUFromRMT(), handleMsgFromUp(), resetSenderInactivTimer(), and startATimer().
|
private |
void DTP::sendAckFlowPDU | ( | unsigned int | seqNum = 0 , |
bool | seqNumValid = false |
||
) |
This method sends Ack and Flow Control information based on the presence of Flow Control and Retransmission Control.
seqNum | Explicitly specify the seqNum to be Acked, otherwise the RLWE is Acked. |
seqNumValid | Specifies if the seqNum is valid, or if it is just "default and the RLWE should be used instead". |
Definition at line 565 of file DTP.cc.
Referenced by RcvrAckPolicyBase::defaultAction(), RcvrControlAckPolicyBase::defaultAction(), RcvFCOverrunPolicyBase::defaultAction(), RateReductionPolicyBase::defaultAction(), handleDataTransferPDUFromRMT(), DTCP::handleMessage(), and sendReliableControlPDU().
|
private |
Definition at line 1490 of file DTP.cc.
Referenced by sendAckFlowPDU().
void DTP::sendControlAckPDU | ( | ) |
Definition at line 1514 of file DTP.cc.
Referenced by LostControlPDUPolicyBase::defaultAction(), and handleControlPDUFromRMT().
void DTP::sendEmptyDTPDU | ( | ) |
Definition at line 1525 of file DTP.cc.
Referenced by LostControlPDUPolicyBase::defaultAction().
void DTP::sendFCOnlyPDU | ( | ) |
This method sends ControlPDU containing only Flow Control information.
Definition at line 519 of file DTP.cc.
Referenced by ReceivingFCPolicyBase::defaultAction(), and sendAckFlowPDU().
void DTP::sendReliableControlPDU | ( | ) |
Definition at line 319 of file DTP.cc.
Referenced by changeInBuffers().
|
private |
Definition at line 1272 of file DTP.cc.
Referenced by rendezvousCondition().
void DTP::sendToRMT | ( | PDU * | pdu | ) |
Definition at line 1649 of file DTP.cc.
Referenced by RxTimerExpiryPolicyBase::defaultAction(), RcvrAckPolicyLG::run(), sendAckFlowPDU(), sendAckOnlyPDU(), sendControlAckPDU(), sendEmptyDTPDU(), sendFCOnlyPDU(), sendRendezvousPDU(), and trySendGenPDUs().
|
private |
|
private |
Definition at line 1212 of file DTP.cc.
Referenced by generateDTPDU(), generatePDUsnew(), and sendEmptyDTPDU().
void DTP::setDTCP | ( | DTCP * | dtcp | ) |
Definition at line 1774 of file DTP.cc.
Referenced by EFCPInstance::setDtcp().
void DTP::setFlow | ( | const Flow * | flow | ) |
Definition at line 1769 of file DTP.cc.
Referenced by EFCP::createEFCPI().
void DTP::setPduDroppingEnabled | ( | bool | pduDroppingEnabled | ) |
void DTP::setPDUHeader | ( | PDU * | pdu | ) |
This method fills header fields in given
pdu | |
pdu |
Definition at line 404 of file DTP.cc.
Referenced by generateDTPDU(), generatePDUsnew(), RcvrAckPolicyLG::run(), sendAckFlowPDU(), sendAckOnlyPDU(), sendControlAckPDU(), sendEmptyDTPDU(), sendFCOnlyPDU(), and sendRendezvousPDU().
void DTP::setQoSCube | ( | const QoSCube * | qosCube | ) |
void DTP::setState | ( | DTPState * | state | ) |
Definition at line 1783 of file DTP.cc.
Referenced by EFCP::createEFCPI().
void DTP::startATimer | ( | unsigned int | seqNum | ) |
Definition at line 812 of file DTP.cc.
Referenced by RcvrAckPolicyBase::defaultAction(), and handleDataTransferPDUFromRMT().
void DTP::svUpdate | ( | unsigned int | seqNum | ) |
Definition at line 1694 of file DTP.cc.
Referenced by SendingAckPolicyBase::defaultAction(), and handleDataTransferPDUFromRMT().
|
private |
Definition at line 1323 of file DTP.cc.
Referenced by handleControlPDUFromRMT(), and handleMsgFromUp().
|
private |
Definition at line 89 of file DTP.h.
Referenced by cancelATimer(), flushAllQueuesAndPrepareToDie(), isATimerQEmpty(), and startATimer().
|
private |
Definition at line 113 of file DTP.h.
Referenced by setConnId().
|
private |
Definition at line 73 of file DTP.h.
Referenced by changeInBuffers(), clearRxQ(), commonRcvControl(), fillControlAckPDU(), fillFlowControlPDU(), fillRendezvousPDU(), handleControlPDUFromRMT(), handleDataTransferPDUFromRMT(), handleDTPATimer(), handleInterrupterTimer(), handleMessage(), rcvrBufferStateChange(), redrawGUI(), rendezvousCondition(), runCongestionNotificationPolicy(), runInitialSeqNumPolicy(), runRcvrInactivityTimerPolicy(), runRTTEstimatorPolicy(), runSenderInactivityTimerPolicy(), schedule(), sendAckFlowPDU(), sendAckOnlyPDU(), sendEmptyDTPDU(), sendFCOnlyPDU(), sendReliableControlPDU(), sendToRMT(), setDTCP(), svUpdate(), and trySendGenPDUs().
|
private |
Definition at line 74 of file DTP.h.
Referenced by notifyStartSending(), notifyStopSending(), setFlow(), and setPDUHeader().
|
private |
Definition at line 81 of file DTP.h.
Referenced by DTP(), initialize(), and runInitialSeqNumPolicy().
|
private |
Definition at line 106 of file DTP.h.
Referenced by handleMessage(), and initGates().
|
private |
Definition at line 107 of file DTP.h.
Referenced by delimitFromRMT(), and initGates().
|
private |
Definition at line 69 of file DTP.h.
Referenced by DTP(), and setPduDroppingEnabled().
|
private |
Definition at line 79 of file DTP.h.
Referenced by DTP(), initialize(), and runRcvrInactivityTimerPolicy().
|
private |
Definition at line 95 of file DTP.h.
Referenced by DTP(), flushAllQueuesAndPrepareToDie(), handleDataTransferPDUFromRMT(), and initialize().
|
private |
Definition at line 70 of file DTP.h.
Referenced by initialize(), and rendezvousCondition().
|
private |
Definition at line 82 of file DTP.h.
Referenced by DTP(), initialize(), runRTTEstimatorPolicy(), and DTCP::schedule().
|
private |
Definition at line 80 of file DTP.h.
Referenced by DTP(), initialize(), and runSenderInactivityTimerPolicy().
|
private |
Definition at line 94 of file DTP.h.
Referenced by DTP(), flushAllQueuesAndPrepareToDie(), handleMsgFromUp(), initialize(), and resetSenderInactivTimer().
|
protected |
Definition at line 285 of file DTP.h.
Referenced by initSignalsAndListeners(), and notifyStopSending().
|
protected |
Definition at line 286 of file DTP.h.
Referenced by initSignalsAndListeners(), and notifyStartSending().
|
protected |
Definition at line 290 of file DTP.h.
Referenced by handleMessage(), and initSignalsAndListeners().
|
protected |
Definition at line 293 of file DTP.h.
Referenced by handleDataTransferPDUFromRMT(), and initSignalsAndListeners().
|
protected |
Definition at line 289 of file DTP.h.
Referenced by initSignalsAndListeners(), and runRTTEstimatorPolicy().
|
protected |
Definition at line 292 of file DTP.h.
Referenced by initSignalsAndListeners(), and sendToRMT().
|
private |
Definition at line 110 of file DTP.h.
Referenced by handleMessage(), and initGates().
|
private |
Definition at line 111 of file DTP.h.
Referenced by initGates(), and sendToRMT().
|
private |
Definition at line 72 of file DTP.h.
Referenced by addPDUToReassemblyQ(), changeInBuffers(), commonRcvControl(), delimitFromRMT(), DTP(), fillControlAckPDU(), fillRendezvousPDU(), flushReassemblyPDUQ(), generateDTPDU(), generatePDUsnew(), getATime(), getQoSCube(), getRxTime(), handleControlPDUFromRMT(), handleDataTransferPDUFromRMT(), handleDTPATimer(), handleMessage(), handleMsgFromRMT(), handleMsgFromUp(), initialize(), isDuplicate(), notifyStartSending(), notifyStopSending(), rcvrBufferStateChange(), redrawGUI(), rendezvousCondition(), runCongestionNotificationPolicy(), runInitialSeqNumPolicy(), runRcvrInactivityTimerPolicy(), runRTTEstimatorPolicy(), DTCP::runRxTimerExpiryPolicy(), runSenderInactivityTimerPolicy(), schedule(), sendAckFlowPDU(), sendEmptyDTPDU(), sendToRMT(), setDRFInPDU(), setQoSCube(), setState(), startATimer(), DTCP::startReliableCPDUTimer(), DTCP::startRendezvousTimer(), svUpdate(), trySendGenPDUs(), and ~DTP().
|
private |
Definition at line 87 of file DTP.h.
Referenced by generatePDUsnew(), and handleMsgFromUp().