27 #define WINSIZE_ASSERT NS_ASSERT ((m_winEnd - m_winStart + 4096) % 4096 == m_winSize - 1)
58 uint16_t delta = (seqNumber -
m_winEnd + 4096) % 4096;
106 for (; i != end; i = (i + 1) % 4096)
117 if (blockAckHeader->
IsBasic ())
119 NS_FATAL_ERROR (
"Basic block ack is only partially implemented.");
124 uint16_t end = (i +
m_winSize - 1) % 4096;
125 for (; i != end; i = (i + 1) % 4096)
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
void ResetPortionOfBitmap(uint16_t start, uint16_t end)
Reset portion of bitmap functiion.
uint16_t m_winStart
window start
void UpdateWithBlockAckReq(uint16_t startingSeq)
Update with block ack request function.
void Init(uint16_t winStart, uint16_t winSize)
Init function.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
void UpdateWithMpdu(const WifiMacHeader *hdr)
Update with MPDU function.
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
bool QosUtilsIsOldPacket(uint16_t startingSeq, uint16_t seqNumber)
This function checks if packet with sequence number seqNumber is an "old" packet. ...
uint16_t GetWinStart(void) const
When an A-MPDU is received, the window start may change to a new value depending on the sequence numb...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
bool IsInWindow(uint16_t seq, uint16_t winstart, uint16_t winsize)
void FillBlockAckBitmap(CtrlBAckResponseHeader *blockAckHeader)
Fill block ack bitmap function.
uint16_t m_winEnd
window end
uint16_t m_bitmap[4096]
bitmap
uint16_t m_winSize
window size