ns3::SatArqSequenceNumber Class Reference

#include "satellite-arq-sequence-number.h"

+ Inheritance diagram for ns3::SatArqSequenceNumber:
+ Collaboration diagram for ns3::SatArqSequenceNumber:

Public Member Functions

 SatArqSequenceNumber ()
 Default constructor. More...
 
 SatArqSequenceNumber (uint8_t windowSize)
 Constructor with initialization parameters. More...
 
virtual ~SatArqSequenceNumber ()
 
uint8_t NextSequenceNumber ()
 Returns the next free sequence number. More...
 
void Release (uint8_t seqNo)
 Release a sequence number if either ACK is received or maximum retransmissions have been reached. More...
 
bool SeqNoAvailable () const
 Check whether there are free (released) sequence numbers. More...
 

Private Member Functions

void CleanUp ()
 Clean ups the sequence number map. More...
 

Private Attributes

int m_currSeqNo
 
uint32_t m_maxSn
 
std::map< uint32_t, bool > m_seqNoMap
 
uint32_t m_windowSize
 

Detailed Description

Definition at line 41 of file satellite-arq-sequence-number.h.

Constructor & Destructor Documentation

◆ SatArqSequenceNumber() [1/2]

ns3::SatArqSequenceNumber::SatArqSequenceNumber ( )

Default constructor.

Default constructor is not meant to be used!

Definition at line 30 of file satellite-arq-sequence-number.cc.

◆ SatArqSequenceNumber() [2/2]

ns3::SatArqSequenceNumber::SatArqSequenceNumber ( uint8_t  windowSize)

Constructor with initialization parameters.

Parameters
windowSize

Definition at line 44 of file satellite-arq-sequence-number.cc.

◆ ~SatArqSequenceNumber()

virtual ns3::SatArqSequenceNumber::~SatArqSequenceNumber ( )
inlinevirtual

Definition at line 55 of file satellite-arq-sequence-number.h.

Member Function Documentation

◆ CleanUp()

void ns3::SatArqSequenceNumber::CleanUp ( )
private

Clean ups the sequence number map.

Definition at line 99 of file satellite-arq-sequence-number.cc.

References m_seqNoMap.

Referenced by Release().

+ Here is the caller graph for this function:

◆ NextSequenceNumber()

uint8_t ns3::SatArqSequenceNumber::NextSequenceNumber ( )

Returns the next free sequence number.

Returns
Next free sequence number

Definition at line 61 of file satellite-arq-sequence-number.cc.

References m_currSeqNo, m_maxSn, m_seqNoMap, and SeqNoAvailable().

+ Here is the call graph for this function:

◆ Release()

void ns3::SatArqSequenceNumber::Release ( uint8_t  seqNo)

Release a sequence number if either ACK is received or maximum retransmissions have been reached.

Parameters
seqNoSequence number to be released

Definition at line 74 of file satellite-arq-sequence-number.cc.

References CleanUp(), m_currSeqNo, m_maxSn, and m_seqNoMap.

+ Here is the call graph for this function:

◆ SeqNoAvailable()

bool ns3::SatArqSequenceNumber::SeqNoAvailable ( ) const

Check whether there are free (released) sequence numbers.

If a sequence number is not available, ARQ may not send any new packets.

Returns
Boolean to indicate whether there are seq no available

Definition at line 54 of file satellite-arq-sequence-number.cc.

References m_seqNoMap, and m_windowSize.

Referenced by NextSequenceNumber().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_currSeqNo

int ns3::SatArqSequenceNumber::m_currSeqNo
private

Definition at line 86 of file satellite-arq-sequence-number.h.

Referenced by NextSequenceNumber(), and Release().

◆ m_maxSn

uint32_t ns3::SatArqSequenceNumber::m_maxSn
private

Definition at line 88 of file satellite-arq-sequence-number.h.

Referenced by NextSequenceNumber(), and Release().

◆ m_seqNoMap

std::map<uint32_t, bool> ns3::SatArqSequenceNumber::m_seqNoMap
private

◆ m_windowSize

uint32_t ns3::SatArqSequenceNumber::m_windowSize
private

Definition at line 87 of file satellite-arq-sequence-number.h.

Referenced by SeqNoAvailable().


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