Maintains information for a block ack agreement. More...
#include "block-ack-agreement.h"
 Inheritance diagram for ns3::BlockAckAgreement:
 Inheritance diagram for ns3::BlockAckAgreement: Collaboration diagram for ns3::BlockAckAgreement:
 Collaboration diagram for ns3::BlockAckAgreement:| Public Member Functions | |
| BlockAckAgreement (Mac48Address peer, uint8_t tid) | |
| Constructor for BlockAckAgreement with given peer and TID. | |
| virtual | ~BlockAckAgreement () | 
| BlockAckReqType | GetBlockAckReqType () const | 
| Get the type of the Block Ack Requests sent by the originator of this agreement. | |
| BlockAckType | GetBlockAckType () const | 
| Get the type of the Block Acks sent by the recipient of this agreement. | |
| uint16_t | GetBufferSize () const | 
| Return the buffer size. | |
| const std::optional< Mac48Address > & | GetGcrGroupAddress () const | 
| Get the GCR group address of this agreement if it is a GCR Block Ack agreement. | |
| Mac48Address | GetPeer () const | 
| Return the peer address. | |
| virtual uint16_t | GetStartingSequence () const | 
| Return the starting sequence number. | |
| uint16_t | GetStartingSequenceControl () const | 
| Return the starting sequence control. | |
| uint8_t | GetTid () const | 
| Return the Traffic ID (TID). | |
| uint16_t | GetTimeout () const | 
| Return the timeout. | |
| uint16_t | GetWinEnd () const | 
| Return the last sequence number covered by the ack window. | |
| bool | IsAmsduSupported () const | 
| Check whether A-MSDU is supported. | |
| bool | IsHtSupported () const | 
| Check whether HT is supported. | |
| bool | IsImmediateBlockAck () const | 
| Check whether the current ack policy is immediate BlockAck. | |
| void | SetAmsduSupport (bool supported) | 
| Enable or disable A-MSDU support. | |
| void | SetBufferSize (uint16_t bufferSize) | 
| Set buffer size. | |
| void | SetDelayedBlockAck () | 
| Set block ack policy to delayed Ack. | |
| void | SetGcrGroupAddress (const Mac48Address &gcrGroupAddress) | 
| Set the GCR group address for this agreement. | |
| void | SetHtSupported (bool htSupported) | 
| Enable or disable HT support. | |
| void | SetImmediateBlockAck () | 
| Set block ack policy to immediate Ack. | |
| void | SetStartingSequence (uint16_t seq) | 
| Set starting sequence number. | |
| void | SetStartingSequenceControl (uint16_t seq) | 
| Set starting sequence control. | |
| void | SetTimeout (uint16_t timeout) | 
| Set timeout. | |
| Static Public Member Functions | |
| static std::size_t | GetDistance (uint16_t seqNumber, uint16_t startingSeqNumber) | 
| Get the distance between the given starting sequence number and the given sequence number. | |
| Protected Attributes | |
| bool | m_amsduSupported | 
| Flag whether MSDU aggregation is supported. | |
| uint8_t | m_blockAckPolicy | 
| Type of block ack: immediate or delayed. | |
| uint16_t | m_bufferSize | 
| Buffer size. | |
| std::optional< Mac48Address > | m_gcrGroupAddress | 
| the optional GCR group address | |
| bool | m_htSupported | 
| Flag whether HT is supported. | |
| EventId | m_inactivityEvent | 
| inactivity event | |
| Mac48Address | m_peer | 
| Peer address. | |
| uint16_t | m_startingSeq | 
| Starting sequence control. | |
| uint8_t | m_tid | 
| Traffic ID. | |
| uint16_t | m_timeout | 
| Timeout. | |
| uint16_t | m_winEnd | 
| Ending sequence number. | |
| Friends | |
| class | HtFrameExchangeManager | 
Maintains information for a block ack agreement.
Definition at line 25 of file block-ack-agreement.h.
| ns3::BlockAckAgreement::BlockAckAgreement | ( | Mac48Address | peer, | 
| uint8_t | tid ) | 
Constructor for BlockAckAgreement with given peer and TID.
| peer | the peer station | 
| tid | the TID | 
Definition at line 22 of file block-ack-agreement.cc.
References NS_LOG_FUNCTION.
| 
 | virtual | 
Definition at line 33 of file block-ack-agreement.cc.
References ns3::EventId::Cancel(), m_inactivityEvent, and NS_LOG_FUNCTION.
 Here is the call graph for this function:
 Here is the call graph for this function:| BlockAckReqType ns3::BlockAckAgreement::GetBlockAckReqType | ( | ) | const | 
Get the type of the Block Ack Requests sent by the originator of this agreement.
Definition at line 177 of file block-ack-agreement.cc.
References ns3::BlockAckReqType::BASIC, ns3::BlockAckReqType::COMPRESSED, and m_htSupported.
| BlockAckType ns3::BlockAckAgreement::GetBlockAckType | ( | ) | const | 
Get the type of the Block Acks sent by the recipient of this agreement.
Definition at line 160 of file block-ack-agreement.cc.
References ns3::BlockAckType::BASIC, ns3::BlockAckType::COMPRESSED, ns3::BlockAckType::GCR, m_bufferSize, m_gcrGroupAddress, m_htSupported, and NS_ASSERT_MSG.
Referenced by ns3::HtFrameExchangeManager::SendBlockAck().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| uint16_t ns3::BlockAckAgreement::GetBufferSize | ( | ) | const | 
Return the buffer size.
Definition at line 104 of file block-ack-agreement.cc.
References m_bufferSize.
Referenced by GetWinEnd().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Get the distance between the given starting sequence number and the given sequence number.
| seqNumber | the given sequence number | 
| startingSeqNumber | the given starting sequence number | 
Definition at line 188 of file block-ack-agreement.cc.
References NS_ASSERT, and ns3::SEQNO_SPACE_SIZE.
Referenced by ns3::OriginatorBlockAckAgreement::GetDistance(), ns3::RecipientBlockAckAgreement::NotifyReceivedBar(), ns3::RecipientBlockAckAgreement::NotifyReceivedMpdu(), ns3::RecipientBlockAckAgreement::PassBufferedMpdusUntilFirstLost(), and ns3::RecipientBlockAckAgreement::PassBufferedMpdusWithSeqNumberLessThan().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| const std::optional< Mac48Address > & ns3::BlockAckAgreement::GetGcrGroupAddress | ( | ) | const | 
Get the GCR group address of this agreement if it is a GCR Block Ack agreement.
Definition at line 201 of file block-ack-agreement.cc.
References m_gcrGroupAddress.
| Mac48Address ns3::BlockAckAgreement::GetPeer | ( | ) | const | 
Return the peer address.
Definition at line 97 of file block-ack-agreement.cc.
References m_peer, and NS_LOG_FUNCTION.
Referenced by ns3::HtFrameExchangeManager::SendBlockAck().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | virtual | 
Return the starting sequence number.
Reimplemented in ns3::OriginatorBlockAckAgreement.
Definition at line 116 of file block-ack-agreement.cc.
References m_startingSeq.
Referenced by GetWinEnd().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| uint16_t ns3::BlockAckAgreement::GetStartingSequenceControl | ( | ) | const | 
Return the starting sequence control.
Definition at line 122 of file block-ack-agreement.cc.
References m_startingSeq.
| uint8_t ns3::BlockAckAgreement::GetTid | ( | ) | const | 
Return the Traffic ID (TID).
Definition at line 91 of file block-ack-agreement.cc.
References m_tid.
Referenced by ns3::HtFrameExchangeManager::SendBlockAck().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| uint16_t ns3::BlockAckAgreement::GetTimeout | ( | ) | const | 
Return the timeout.
Definition at line 110 of file block-ack-agreement.cc.
References m_timeout.
Referenced by ns3::BlockAckManager::UpdateOriginatorAgreement().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| uint16_t ns3::BlockAckAgreement::GetWinEnd | ( | ) | const | 
Return the last sequence number covered by the ack window.
Definition at line 141 of file block-ack-agreement.cc.
References GetBufferSize(), GetStartingSequence(), and ns3::SEQNO_SPACE_SIZE.
 Here is the call graph for this function:
 Here is the call graph for this function:| bool ns3::BlockAckAgreement::IsAmsduSupported | ( | ) | const | 
Check whether A-MSDU is supported.
Definition at line 135 of file block-ack-agreement.cc.
References m_amsduSupported.
| bool ns3::BlockAckAgreement::IsHtSupported | ( | ) | const | 
Check whether HT is supported.
Definition at line 154 of file block-ack-agreement.cc.
References m_htSupported.
| bool ns3::BlockAckAgreement::IsImmediateBlockAck | ( | ) | const | 
Check whether the current ack policy is immediate BlockAck.
Definition at line 129 of file block-ack-agreement.cc.
References m_blockAckPolicy.
| void ns3::BlockAckAgreement::SetAmsduSupport | ( | bool | supported | ) | 
Enable or disable A-MSDU support.
| supported | enable or disable A-MSDU support | 
Definition at line 84 of file block-ack-agreement.cc.
References m_amsduSupported, and NS_LOG_FUNCTION.
Referenced by ns3::BlockAckManager::CreateOriginatorAgreement(), and ns3::BlockAckManager::UpdateOriginatorAgreement().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::BlockAckAgreement::SetBufferSize | ( | uint16_t | bufferSize | ) | 
Set buffer size.
| bufferSize | the buffer size (in number of MPDUs) | 
Definition at line 40 of file block-ack-agreement.cc.
References m_bufferSize, and NS_LOG_FUNCTION.
Referenced by ns3::BlockAckManager::CreateOriginatorAgreement(), OriginatorBlockAckWindowTest::DoRun(), and ns3::BlockAckManager::UpdateOriginatorAgreement().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::BlockAckAgreement::SetDelayedBlockAck | ( | ) | 
Set block ack policy to delayed Ack.
Definition at line 77 of file block-ack-agreement.cc.
References m_blockAckPolicy, and NS_LOG_FUNCTION.
Referenced by ns3::BlockAckManager::CreateOriginatorAgreement(), ns3::BlockAckManager::CreateRecipientAgreement(), and ns3::BlockAckManager::UpdateOriginatorAgreement().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::BlockAckAgreement::SetGcrGroupAddress | ( | const Mac48Address & | gcrGroupAddress | ) | 
Set the GCR group address for this agreement.
| gcrGroupAddress | the GCR group address | 
Definition at line 195 of file block-ack-agreement.cc.
References m_gcrGroupAddress.
Referenced by ns3::BlockAckManager::CreateOriginatorAgreement(), ns3::BlockAckManager::CreateRecipientAgreement(), and ns3::BlockAckManager::UpdateOriginatorAgreement().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::BlockAckAgreement::SetHtSupported | ( | bool | htSupported | ) | 
Enable or disable HT support.
| htSupported | enable or disable HT support | 
Definition at line 147 of file block-ack-agreement.cc.
References m_htSupported, and NS_LOG_FUNCTION.
Referenced by ns3::BlockAckManager::CreateOriginatorAgreement().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::BlockAckAgreement::SetImmediateBlockAck | ( | ) | 
Set block ack policy to immediate Ack.
Definition at line 70 of file block-ack-agreement.cc.
References m_blockAckPolicy, and NS_LOG_FUNCTION.
Referenced by ns3::BlockAckManager::CreateOriginatorAgreement(), ns3::BlockAckManager::CreateRecipientAgreement(), and ns3::BlockAckManager::UpdateOriginatorAgreement().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::BlockAckAgreement::SetStartingSequence | ( | uint16_t | seq | ) | 
Set starting sequence number.
| seq | the starting sequence number | 
Definition at line 54 of file block-ack-agreement.cc.
References m_startingSeq, NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by ns3::BlockAckManager::CreateOriginatorAgreement(), OriginatorBlockAckWindowTest::DoRun(), and ns3::BlockAckManager::UpdateOriginatorAgreement().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::BlockAckAgreement::SetStartingSequenceControl | ( | uint16_t | seq | ) | 
Set starting sequence control.
| seq | the starting sequence control | 
Definition at line 62 of file block-ack-agreement.cc.
References m_startingSeq, NS_ASSERT, and NS_LOG_FUNCTION.
| void ns3::BlockAckAgreement::SetTimeout | ( | uint16_t | timeout | ) | 
Set timeout.
| timeout | the timeout value | 
Definition at line 47 of file block-ack-agreement.cc.
References m_timeout, NS_LOG_FUNCTION, and timeout.
Referenced by ns3::BlockAckManager::CreateOriginatorAgreement(), and ns3::BlockAckManager::UpdateOriginatorAgreement().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | friend | 
Definition at line 27 of file block-ack-agreement.h.
| 
 | protected | 
Flag whether MSDU aggregation is supported.
Definition at line 181 of file block-ack-agreement.h.
Referenced by ns3::RecipientBlockAckAgreement::RecipientBlockAckAgreement(), IsAmsduSupported(), and SetAmsduSupport().
| 
 | protected | 
Type of block ack: immediate or delayed.
Definition at line 182 of file block-ack-agreement.h.
Referenced by IsImmediateBlockAck(), SetDelayedBlockAck(), and SetImmediateBlockAck().
| 
 | protected | 
Buffer size.
Definition at line 184 of file block-ack-agreement.h.
Referenced by ns3::RecipientBlockAckAgreement::RecipientBlockAckAgreement(), GetBlockAckType(), GetBufferSize(), ns3::OriginatorBlockAckAgreement::InitTxWindow(), and SetBufferSize().
| 
 | protected | 
the optional GCR group address
Definition at line 189 of file block-ack-agreement.h.
Referenced by GetBlockAckType(), GetGcrGroupAddress(), and SetGcrGroupAddress().
| 
 | protected | 
Flag whether HT is supported.
Definition at line 188 of file block-ack-agreement.h.
Referenced by ns3::RecipientBlockAckAgreement::RecipientBlockAckAgreement(), GetBlockAckReqType(), GetBlockAckType(), IsHtSupported(), and SetHtSupported().
| 
 | mutableprotected | 
inactivity event
Definition at line 190 of file block-ack-agreement.h.
Referenced by ~BlockAckAgreement(), and ns3::BlockAckManager::UpdateOriginatorAgreement().
| 
 | protected | 
| 
 | protected | 
Starting sequence control.
Definition at line 186 of file block-ack-agreement.h.
Referenced by ns3::RecipientBlockAckAgreement::RecipientBlockAckAgreement(), GetStartingSequence(), ns3::OriginatorBlockAckAgreement::GetStartingSequence(), GetStartingSequenceControl(), ns3::OriginatorBlockAckAgreement::InitTxWindow(), SetStartingSequence(), and SetStartingSequenceControl().
| 
 | protected | 
| 
 | protected | 
Timeout.
Definition at line 185 of file block-ack-agreement.h.
Referenced by ns3::RecipientBlockAckAgreement::RecipientBlockAckAgreement(), GetTimeout(), and SetTimeout().
| 
 | protected | 
Ending sequence number.
Definition at line 187 of file block-ack-agreement.h.