SatRtnArqTestCase Class Reference

RTN link ARQ test case. More...

+ Inheritance diagram for SatRtnArqTestCase:
+ Collaboration diagram for SatRtnArqTestCase:

Public Member Functions

 SatRtnArqTestCase ()
 
virtual ~SatRtnArqTestCase ()
 
void NotifyTxOpportunity ()
 Notify Tx opportunity. More...
 
void Receive (Ptr< Packet > p, Mac48Address source, Mac48Address dest)
 Receive packet and check that it is of correct size. More...
 
void ReceiveAck (Ptr< SatArqAckMessage > ack)
 Receive ARQ ACK message. More...
 
void ReceivePdu (Ptr< Packet > p)
 Receive packet. More...
 
bool SendAck (Ptr< SatControlMessage > msg, const Address &dest)
 Send ARQ ACK message to the sender (source) More...
 
void TransmitPdus (uint32_t numPackets)
 Transmit/enque a number of packets to RLE/SatQueue. More...
 

Private Member Functions

virtual void DoRun (void)
 
void Initialize ()
 Initialize is called in DoRun method, since the test.py calls the test case constructors even if the test suite is not run. More...
 

Private Attributes

double m_ackErrorRatio
 
uint32_t m_ackErrors
 
uint32_t m_acks
 
Mac48Address m_dest
 
double m_errorProbabilityThreshold
 
double m_maxTimeSlotJitterInMs
 
uint32_t m_maxTxOpportunity
 
double m_minTimeSlotJitterInMs
 
uint32_t m_minTxOpportunity
 
uint32_t m_numPackets
 
uint32_t m_numTxOpportunities
 
double m_packetErrorRatio
 
Time m_propagationDelay
 
uint8_t m_rcIndex
 
std::vector< uint32_t > m_rcvdPacketSizes
 
Ptr< SatReturnLinkEncapsulatorArqm_rle
 
std::vector< uint32_t > m_sentPacketSizes
 
Mac48Address m_source
 
uint32_t m_txErrors
 
Time m_txoInterval
 
uint32_t m_txs
 
Ptr< UniformRandomVariable > m_unif
 

Detailed Description

RTN link ARQ test case.

Definition at line 63 of file satellite-arq-test.cc.

Constructor & Destructor Documentation

◆ SatRtnArqTestCase()

SatRtnArqTestCase::SatRtnArqTestCase ( )

Definition at line 174 of file satellite-arq-test.cc.

◆ ~SatRtnArqTestCase()

SatRtnArqTestCase::~SatRtnArqTestCase ( )
virtual

Definition at line 179 of file satellite-arq-test.cc.

References m_rle.

Member Function Documentation

◆ DoRun()

void SatRtnArqTestCase::DoRun ( void  )
privatevirtual

Definition at line 236 of file satellite-arq-test.cc.

References Initialize(), m_errorProbabilityThreshold, m_numPackets, m_rcvdPacketSizes, m_sentPacketSizes, NotifyTxOpportunity(), and TransmitPdus().

+ Here is the call graph for this function:

◆ Initialize()

void SatRtnArqTestCase::Initialize ( )
private

Initialize is called in DoRun method, since the test.py calls the test case constructors even if the test suite is not run.

Definition at line 189 of file satellite-arq-test.cc.

References m_ackErrorRatio, m_ackErrors, m_acks, m_dest, m_errorProbabilityThreshold, m_maxTimeSlotJitterInMs, m_maxTxOpportunity, m_minTimeSlotJitterInMs, m_minTxOpportunity, m_numPackets, m_numTxOpportunities, m_packetErrorRatio, m_propagationDelay, m_rcIndex, m_rle, m_source, m_txErrors, m_txoInterval, m_txs, m_unif, Receive(), and SendAck().

Referenced by DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NotifyTxOpportunity()

void SatRtnArqTestCase::NotifyTxOpportunity ( )

Notify Tx opportunity.

Create TxOpportunities for RLE and call receive method to do decapsuling, defragmentation and reassembly.

Definition at line 281 of file satellite-arq-test.cc.

References m_maxTimeSlotJitterInMs, m_maxTxOpportunity, m_minTimeSlotJitterInMs, m_minTxOpportunity, m_numTxOpportunities, m_propagationDelay, m_rle, m_txErrors, m_txoInterval, m_txs, m_unif, and ReceivePdu().

Referenced by DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Receive()

void SatRtnArqTestCase::Receive ( Ptr< Packet >  p,
Mac48Address  source,
Mac48Address  dest 
)

Receive packet and check that it is of correct size.

Parameters
pPtr to packet
sourceSource MAC address
destDestination MAC address

Definition at line 356 of file satellite-arq-test.cc.

References m_rcvdPacketSizes.

Referenced by Initialize().

+ Here is the caller graph for this function:

◆ ReceiveAck()

void SatRtnArqTestCase::ReceiveAck ( Ptr< SatArqAckMessage ack)

Receive ARQ ACK message.

Parameters
ackAcknowledgement

Definition at line 350 of file satellite-arq-test.cc.

References m_rle.

Referenced by SendAck().

+ Here is the caller graph for this function:

◆ ReceivePdu()

void SatRtnArqTestCase::ReceivePdu ( Ptr< Packet >  p)

Receive packet.

Parameters
pPacket

Definition at line 324 of file satellite-arq-test.cc.

References m_rle.

Referenced by NotifyTxOpportunity().

+ Here is the caller graph for this function:

◆ SendAck()

bool SatRtnArqTestCase::SendAck ( Ptr< SatControlMessage msg,
const Address &  dest 
)

Send ARQ ACK message to the sender (source)

Parameters
msgControl message
destDestination MAC address
Returns
bool Whether sending was successfull

Definition at line 330 of file satellite-arq-test.cc.

References m_ackErrors, m_acks, m_propagationDelay, and ReceiveAck().

Referenced by Initialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ TransmitPdus()

void SatRtnArqTestCase::TransmitPdus ( uint32_t  numPackets)

Transmit/enque a number of packets to RLE/SatQueue.

Parameters
numPacketsNumber of packets

Definition at line 268 of file satellite-arq-test.cc.

References m_dest, m_rle, m_sentPacketSizes, and m_unif.

Referenced by DoRun().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_ackErrorRatio

double SatRtnArqTestCase::m_ackErrorRatio
private

Definition at line 141 of file satellite-arq-test.cc.

Referenced by Initialize().

◆ m_ackErrors

uint32_t SatRtnArqTestCase::m_ackErrors
private

Definition at line 165 of file satellite-arq-test.cc.

Referenced by Initialize(), and SendAck().

◆ m_acks

uint32_t SatRtnArqTestCase::m_acks
private

Definition at line 164 of file satellite-arq-test.cc.

Referenced by Initialize(), and SendAck().

◆ m_dest

Mac48Address SatRtnArqTestCase::m_dest
private

Definition at line 126 of file satellite-arq-test.cc.

Referenced by Initialize(), and TransmitPdus().

◆ m_errorProbabilityThreshold

double SatRtnArqTestCase::m_errorProbabilityThreshold
private

Definition at line 153 of file satellite-arq-test.cc.

Referenced by DoRun(), and Initialize().

◆ m_maxTimeSlotJitterInMs

double SatRtnArqTestCase::m_maxTimeSlotJitterInMs
private

Definition at line 160 of file satellite-arq-test.cc.

Referenced by Initialize(), and NotifyTxOpportunity().

◆ m_maxTxOpportunity

uint32_t SatRtnArqTestCase::m_maxTxOpportunity
private

Definition at line 137 of file satellite-arq-test.cc.

Referenced by Initialize(), and NotifyTxOpportunity().

◆ m_minTimeSlotJitterInMs

double SatRtnArqTestCase::m_minTimeSlotJitterInMs
private

Definition at line 159 of file satellite-arq-test.cc.

Referenced by Initialize(), and NotifyTxOpportunity().

◆ m_minTxOpportunity

uint32_t SatRtnArqTestCase::m_minTxOpportunity
private

Definition at line 136 of file satellite-arq-test.cc.

Referenced by Initialize(), and NotifyTxOpportunity().

◆ m_numPackets

uint32_t SatRtnArqTestCase::m_numPackets
private

Definition at line 129 of file satellite-arq-test.cc.

Referenced by DoRun(), and Initialize().

◆ m_numTxOpportunities

uint32_t SatRtnArqTestCase::m_numTxOpportunities
private

Definition at line 133 of file satellite-arq-test.cc.

Referenced by Initialize(), and NotifyTxOpportunity().

◆ m_packetErrorRatio

double SatRtnArqTestCase::m_packetErrorRatio
private

Definition at line 140 of file satellite-arq-test.cc.

Referenced by Initialize().

◆ m_propagationDelay

Time SatRtnArqTestCase::m_propagationDelay
private

Definition at line 145 of file satellite-arq-test.cc.

Referenced by Initialize(), NotifyTxOpportunity(), and SendAck().

◆ m_rcIndex

uint8_t SatRtnArqTestCase::m_rcIndex
private

Definition at line 148 of file satellite-arq-test.cc.

Referenced by Initialize().

◆ m_rcvdPacketSizes

std::vector<uint32_t> SatRtnArqTestCase::m_rcvdPacketSizes
private

Definition at line 171 of file satellite-arq-test.cc.

Referenced by DoRun(), and Receive().

◆ m_rle

Ptr<SatReturnLinkEncapsulatorArq> SatRtnArqTestCase::m_rle
private

◆ m_sentPacketSizes

std::vector<uint32_t> SatRtnArqTestCase::m_sentPacketSizes
private

Definition at line 168 of file satellite-arq-test.cc.

Referenced by DoRun(), and TransmitPdus().

◆ m_source

Mac48Address SatRtnArqTestCase::m_source
private

Definition at line 125 of file satellite-arq-test.cc.

Referenced by Initialize().

◆ m_txErrors

uint32_t SatRtnArqTestCase::m_txErrors
private

Definition at line 163 of file satellite-arq-test.cc.

Referenced by Initialize(), and NotifyTxOpportunity().

◆ m_txoInterval

Time SatRtnArqTestCase::m_txoInterval
private

Definition at line 156 of file satellite-arq-test.cc.

Referenced by Initialize(), and NotifyTxOpportunity().

◆ m_txs

uint32_t SatRtnArqTestCase::m_txs
private

Definition at line 162 of file satellite-arq-test.cc.

Referenced by Initialize(), and NotifyTxOpportunity().

◆ m_unif

Ptr<UniformRandomVariable> SatRtnArqTestCase::m_unif
private

Definition at line 122 of file satellite-arq-test.cc.

Referenced by Initialize(), NotifyTxOpportunity(), and TransmitPdus().


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