28 NS_LOG_COMPONENT_DEFINE(
"SatArqSequenceNumber");
37 m_maxSn(std::numeric_limits<uint8_t>::max())
39 NS_LOG_FUNCTION(
this);
50 m_windowSize(windowSize),
51 m_maxSn(std::numeric_limits<uint8_t>::max())
53 NS_LOG_FUNCTION(
this << (uint32_t)windowSize);
59 NS_LOG_FUNCTION(
this);
66 NS_LOG_FUNCTION(
this);
79 NS_LOG_FUNCTION(
this << (uint32_t)seqNo);
93 sn = (factor - 1) *
m_maxSn + seqNo;
104 NS_LOG_FUNCTION(
this);
106 std::map<uint32_t, bool>::iterator it =
m_seqNoMap.begin();
108 while (it !=
m_seqNoMap.end() && it->second ==
true)
uint8_t NextSequenceNumber()
Returns the next free sequence number.
SatArqSequenceNumber()
Default constructor.
bool SeqNoAvailable() const
Check whether there are free (released) sequence numbers.
std::map< uint32_t, bool > m_seqNoMap
void CleanUp()
Clean ups the sequence number map.
void Release(uint8_t seqNo)
Release a sequence number if either ACK is received or maximum retransmissions have been reached.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.