INET Framework for OMNeT++/OMNEST
inet::ieee80211::RecipientBlockAckAgreement Class Reference

#include <RecipientBlockAckAgreement.h>

Inheritance diagram for inet::ieee80211::RecipientBlockAckAgreement:

Public Member Functions

 RecipientBlockAckAgreement (MacAddress originatorAddress, Tid tid, SequenceNumberCyclic startingSequenceNumber, int bufferSize, simtime_t blockAckTimeoutValue)
 
virtual ~RecipientBlockAckAgreement ()
 
virtual void blockAckPolicyFrameReceived (const Ptr< const Ieee80211DataHeader > &header)
 
virtual BlockAckRecordgetBlockAckRecord () const
 
virtual simtime_t getBlockAckTimeoutValue () const
 
virtual int getBufferSize () const
 
virtual SequenceNumberCyclic getStartingSequenceNumber () const
 
virtual void addbaResposneSent ()
 
virtual void calculateExpirationTime ()
 
virtual simtime_t getExpirationTime ()
 

Protected Attributes

BlockAckRecordblockAckRecord = nullptr
 
SequenceNumberCyclic startingSequenceNumber
 
int bufferSize = -1
 
simtime_t blockAckTimeoutValue = 0
 
bool isAddbaResponseSent = false
 
simtime_t expirationTime = -1
 

Friends

std::ostream & operator<< (std::ostream &os, const RecipientBlockAckAgreement &agreement)
 

Constructor & Destructor Documentation

◆ RecipientBlockAckAgreement()

inet::ieee80211::RecipientBlockAckAgreement::RecipientBlockAckAgreement ( MacAddress  originatorAddress,
Tid  tid,
SequenceNumberCyclic  startingSequenceNumber,
int  bufferSize,
simtime_t  blockAckTimeoutValue 
)
15  :
18  blockAckTimeoutValue(lastUsedTime)
19 {
21  blockAckRecord = new BlockAckRecord(originatorAddress, tid);
22 }

◆ ~RecipientBlockAckAgreement()

virtual inet::ieee80211::RecipientBlockAckAgreement::~RecipientBlockAckAgreement ( )
inlinevirtual
29 { delete blockAckRecord; }

Member Function Documentation

◆ addbaResposneSent()

virtual void inet::ieee80211::RecipientBlockAckAgreement::addbaResposneSent ( )
inlinevirtual

◆ blockAckPolicyFrameReceived()

void inet::ieee80211::RecipientBlockAckAgreement::blockAckPolicyFrameReceived ( const Ptr< const Ieee80211DataHeader > &  header)
virtual
25 {
26  ASSERT(header->getAckPolicy() == BLOCK_ACK);
28 }

Referenced by inet::ieee80211::BlockAckReordering::processReceivedQoSFrame().

◆ calculateExpirationTime()

virtual void inet::ieee80211::RecipientBlockAckAgreement::calculateExpirationTime ( )
inlinevirtual
39 { expirationTime = blockAckTimeoutValue == 0 ? SIMTIME_MAX : simTime() + blockAckTimeoutValue; }

Referenced by RecipientBlockAckAgreement().

◆ getBlockAckRecord()

virtual BlockAckRecord* inet::ieee80211::RecipientBlockAckAgreement::getBlockAckRecord ( ) const
inlinevirtual

◆ getBlockAckTimeoutValue()

virtual simtime_t inet::ieee80211::RecipientBlockAckAgreement::getBlockAckTimeoutValue ( ) const
inlinevirtual
34 { return blockAckTimeoutValue; }

◆ getBufferSize()

virtual int inet::ieee80211::RecipientBlockAckAgreement::getBufferSize ( ) const
inlinevirtual

◆ getExpirationTime()

virtual simtime_t inet::ieee80211::RecipientBlockAckAgreement::getExpirationTime ( )
inlinevirtual
40 { return expirationTime; }

◆ getStartingSequenceNumber()

virtual SequenceNumberCyclic inet::ieee80211::RecipientBlockAckAgreement::getStartingSequenceNumber ( ) const
inlinevirtual

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const RecipientBlockAckAgreement agreement 
)
friend
31 {
32  os << "originator address = " << agreement.blockAckRecord->getOriginatorAddress() << ", "
33  << "tid = " << agreement.blockAckRecord->getTid() << ", "
34  << "starting sequence number = " << agreement.startingSequenceNumber << ", "
35  << "buffer size = " << agreement.bufferSize << ", "
36  << "block ack timeout value = " << agreement.blockAckTimeoutValue;
37  return os;
38 }

Member Data Documentation

◆ blockAckRecord

BlockAckRecord* inet::ieee80211::RecipientBlockAckAgreement::blockAckRecord = nullptr
protected

◆ blockAckTimeoutValue

simtime_t inet::ieee80211::RecipientBlockAckAgreement::blockAckTimeoutValue = 0
protected

◆ bufferSize

int inet::ieee80211::RecipientBlockAckAgreement::bufferSize = -1
protected

◆ expirationTime

simtime_t inet::ieee80211::RecipientBlockAckAgreement::expirationTime = -1
protected

◆ isAddbaResponseSent

bool inet::ieee80211::RecipientBlockAckAgreement::isAddbaResponseSent = false
protected

◆ startingSequenceNumber

SequenceNumberCyclic inet::ieee80211::RecipientBlockAckAgreement::startingSequenceNumber
protected

The documentation for this class was generated from the following files:
inet::ieee80211::RecipientBlockAckAgreement::calculateExpirationTime
virtual void calculateExpirationTime()
Definition: RecipientBlockAckAgreement.h:39
inet::ieee80211::BlockAckRecord::blockAckPolicyFrameReceived
void blockAckPolicyFrameReceived(const Ptr< const Ieee80211DataHeader > &header)
Definition: BlockAckRecord.cc:21
inet::ieee80211::RecipientBlockAckAgreement::startingSequenceNumber
SequenceNumberCyclic startingSequenceNumber
Definition: RecipientBlockAckAgreement.h:21
inet::ieee80211::BLOCK_ACK
@ BLOCK_ACK
Definition: Ieee80211Frame_m.h:196
inet::ieee80211::RecipientBlockAckAgreement::expirationTime
simtime_t expirationTime
Definition: RecipientBlockAckAgreement.h:25
inet::ieee80211::RecipientBlockAckAgreement::isAddbaResponseSent
bool isAddbaResponseSent
Definition: RecipientBlockAckAgreement.h:24
inet::ieee80211::RecipientBlockAckAgreement::blockAckTimeoutValue
simtime_t blockAckTimeoutValue
Definition: RecipientBlockAckAgreement.h:23
inet::ieee80211::RecipientBlockAckAgreement::blockAckRecord
BlockAckRecord * blockAckRecord
Definition: RecipientBlockAckAgreement.h:19
inet::ieee80211::RecipientBlockAckAgreement::bufferSize
int bufferSize
Definition: RecipientBlockAckAgreement.h:22