A Discrete-Event Network Simulator
API
ns3::BlockAckCache Class Reference

BlockAckCache cache. More...

#include "block-ack-cache.h"

Public Member Functions

void FillBlockAckBitmap (CtrlBAckResponseHeader *blockAckHeader)
 Fill block ack bitmap function. More...
 
uint16_t GetWinStart (void) const
 When an A-MPDU is received, the window start may change to a new value depending on the sequence number of the received MPDU (standard11n page 134). More...
 
void Init (uint16_t winStart, uint16_t winSize)
 Init function. More...
 
void UpdateWithBlockAckReq (uint16_t startingSeq)
 Update with block ack request function. More...
 
void UpdateWithMpdu (const WifiMacHeader *hdr)
 Update with MPDU function. More...
 

Private Member Functions

bool IsInWindow (uint16_t seq) const
 Is in window function. More...
 
void ResetPortionOfBitmap (uint16_t start, uint16_t end)
 Reset portion of bitmap functiion. More...
 

Private Attributes

uint16_t m_bitmap [4096]
 bitmap More...
 
uint16_t m_winEnd
 window end More...
 
uint8_t m_winSize
 window size More...
 
uint16_t m_winStart
 window start More...
 

Detailed Description

BlockAckCache cache.

Definition at line 36 of file block-ack-cache.h.

Member Function Documentation

void ns3::BlockAckCache::FillBlockAckBitmap ( CtrlBAckResponseHeader blockAckHeader)
uint16_t ns3::BlockAckCache::GetWinStart ( void  ) const

When an A-MPDU is received, the window start may change to a new value depending on the sequence number of the received MPDU (standard11n page 134).

This function is used to retrieve this value in order to add it to the BlockAck.

Returns
window start

Definition at line 44 of file block-ack-cache.cc.

References m_winStart.

void ns3::BlockAckCache::Init ( uint16_t  winStart,
uint16_t  winSize 
)

Init function.

Parameters
winStartthe window start
winSizethe window size

Definition at line 34 of file block-ack-cache.cc.

References m_bitmap, m_winEnd, m_winSize, m_winStart, and NS_LOG_FUNCTION.

Referenced by ns3::MacLow::CreateBlockAckAgreement().

+ Here is the caller graph for this function:

bool ns3::BlockAckCache::IsInWindow ( uint16_t  seq) const
private

Is in window function.

Parameters
seqthe sequence
Returns
true if is in the window

Definition at line 114 of file block-ack-cache.cc.

References m_winSize, m_winStart, and NS_LOG_FUNCTION.

Referenced by UpdateWithBlockAckReq(), and UpdateWithMpdu().

+ Here is the caller graph for this function:

void ns3::BlockAckCache::ResetPortionOfBitmap ( uint16_t  start,
uint16_t  end 
)
private

Reset portion of bitmap functiion.

Parameters
startthe starting position
endthe ending position

Definition at line 102 of file block-ack-cache.cc.

References m_bitmap, NS_LOG_FUNCTION, and visualizer.core::start().

Referenced by UpdateWithBlockAckReq(), and UpdateWithMpdu().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::BlockAckCache::UpdateWithBlockAckReq ( uint16_t  startingSeq)

Update with block ack request function.

Parameters
startingSeqthe starting sequence

Definition at line 73 of file block-ack-cache.cc.

References IsInWindow(), m_winEnd, m_winSize, m_winStart, NS_LOG_FUNCTION, ns3::QosUtilsIsOldPacket(), ResetPortionOfBitmap(), and WINSIZE_ASSERT.

+ Here is the call graph for this function:

void ns3::BlockAckCache::UpdateWithMpdu ( const WifiMacHeader hdr)

Update with MPDU function.

Parameters
hdrthe wifi MAC header

Definition at line 50 of file block-ack-cache.cc.

References ns3::WifiMacHeader::GetFragmentNumber(), ns3::WifiMacHeader::GetSequenceNumber(), IsInWindow(), m_bitmap, m_winEnd, m_winStart, NS_LOG_FUNCTION, ns3::QosUtilsIsOldPacket(), ResetPortionOfBitmap(), and WINSIZE_ASSERT.

+ Here is the call graph for this function:

Member Data Documentation

uint16_t ns3::BlockAckCache::m_bitmap[4096]
private

bitmap

Definition at line 89 of file block-ack-cache.h.

Referenced by FillBlockAckBitmap(), Init(), ResetPortionOfBitmap(), and UpdateWithMpdu().

uint16_t ns3::BlockAckCache::m_winEnd
private

window end

Definition at line 87 of file block-ack-cache.h.

Referenced by Init(), UpdateWithBlockAckReq(), and UpdateWithMpdu().

uint8_t ns3::BlockAckCache::m_winSize
private

window size

Definition at line 86 of file block-ack-cache.h.

Referenced by FillBlockAckBitmap(), Init(), IsInWindow(), and UpdateWithBlockAckReq().

uint16_t ns3::BlockAckCache::m_winStart
private

window start

Definition at line 85 of file block-ack-cache.h.

Referenced by GetWinStart(), Init(), IsInWindow(), UpdateWithBlockAckReq(), and UpdateWithMpdu().


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