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.  More... | |
| virtual | ~BlockAckAgreement () | 
| BlockAckReqType | GetBlockAckReqType (void) const | 
| Get the type of the Block Ack Requests sent by the originator of this agreement.  More... | |
| BlockAckType | GetBlockAckType (void) const | 
| Get the type of the Block Acks sent by the recipient of this agreement.  More... | |
| uint16_t | GetBufferSize (void) const | 
| Return the buffer size.  More... | |
| Mac48Address | GetPeer (void) const | 
| Return the peer address.  More... | |
| virtual uint16_t | GetStartingSequence (void) const | 
| Return the starting sequence number.  More... | |
| uint16_t | GetStartingSequenceControl (void) const | 
| Return the starting sequence control.  More... | |
| uint8_t | GetTid (void) const | 
| Return the Traffic ID (TID).  More... | |
| uint16_t | GetTimeout (void) const | 
| Return the timeout.  More... | |
| uint16_t | GetWinEnd (void) const | 
| Return the last sequence number covered by the ack window.  More... | |
| bool | IsAmsduSupported (void) const | 
| Check whether A-MSDU is supported.  More... | |
| bool | IsHtSupported (void) const | 
| Check whether HT is supported.  More... | |
| bool | IsImmediateBlockAck (void) const | 
| Check whether the current ack policy is immediate BlockAck.  More... | |
| void | SetAmsduSupport (bool supported) | 
| Enable or disable A-MSDU support.  More... | |
| void | SetBufferSize (uint16_t bufferSize) | 
| Set buffer size.  More... | |
| void | SetDelayedBlockAck (void) | 
| Set block ack policy to delayed Ack.  More... | |
| void | SetHtSupported (bool htSupported) | 
| Enable or disable HT support.  More... | |
| void | SetImmediateBlockAck (void) | 
| Set block ack policy to immediate Ack.  More... | |
| void | SetStartingSequence (uint16_t seq) | 
| Set starting sequence number.  More... | |
| void | SetStartingSequenceControl (uint16_t seq) | 
| Set starting sequence control.  More... | |
| void | SetTimeout (uint16_t timeout) | 
| Set timeout.  More... | |
| 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.  More... | |
| Protected Attributes | |
| uint8_t | m_amsduSupported | 
| Flag whether MSDU aggregation is supported.  More... | |
| uint8_t | m_blockAckPolicy | 
| Type of block ack: immediate or delayed.  More... | |
| uint16_t | m_bufferSize | 
| Buffer size.  More... | |
| uint8_t | m_htSupported | 
| Flag whether HT is supported.  More... | |
| EventId | m_inactivityEvent | 
| inactivity event  More... | |
| Mac48Address | m_peer | 
| Peer address.  More... | |
| uint16_t | m_startingSeq | 
| Starting sequence control.  More... | |
| uint8_t | m_tid | 
| Traffic ID.  More... | |
| uint16_t | m_timeout | 
| Timeout.  More... | |
| uint16_t | m_winEnd | 
| Ending sequence number.  More... | |
| Friends | |
| class | HtFrameExchangeManager | 
| class | MacLow | 
| Provide access to MacLow class.  More... | |
Maintains information for a block ack agreement.
Definition at line 33 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 29 of file block-ack-agreement.cc.
References NS_LOG_FUNCTION.
| 
 | virtual | 
Definition at line 40 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 | ( | void | ) | const | 
Get the type of the Block Ack Requests sent by the originator of this agreement.
Definition at line 184 of file block-ack-agreement.cc.
References ns3::BlockAckReqType::BASIC, ns3::BlockAckReqType::COMPRESSED, and m_htSupported.
| BlockAckType ns3::BlockAckAgreement::GetBlockAckType | ( | void | ) | const | 
Get the type of the Block Acks sent by the recipient of this agreement.
Definition at line 169 of file block-ack-agreement.cc.
References ns3::BlockAckType::BASIC, ns3::BlockAckType::COMPRESSED, m_bufferSize, and m_htSupported.
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 | ( | void | ) | const | 
Return the buffer size.
Definition at line 113 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 195 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(), ns3::RecipientBlockAckAgreement::PassBufferedMpdusWithSeqNumberLessThan(), and ns3::HtFrameExchangeManager::RetransmitMpduAfterMissedCts().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| Mac48Address ns3::BlockAckAgreement::GetPeer | ( | void | ) | const | 
Return the peer address.
Definition at line 106 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 125 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 | ( | void | ) | const | 
Return the starting sequence control.
Definition at line 131 of file block-ack-agreement.cc.
References m_startingSeq.
| uint8_t ns3::BlockAckAgreement::GetTid | ( | void | ) | const | 
Return the Traffic ID (TID).
Definition at line 100 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 | ( | void | ) | const | 
Return the timeout.
Definition at line 119 of file block-ack-agreement.cc.
References m_timeout.
Referenced by ns3::BlockAckManager::UpdateAgreement().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| uint16_t ns3::BlockAckAgreement::GetWinEnd | ( | void | ) | const | 
Return the last sequence number covered by the ack window.
Definition at line 150 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 | ( | void | ) | const | 
Check whether A-MSDU is supported.
Definition at line 144 of file block-ack-agreement.cc.
References m_amsduSupported.
| bool ns3::BlockAckAgreement::IsHtSupported | ( | void | ) | const | 
Check whether HT is supported.
Definition at line 163 of file block-ack-agreement.cc.
References m_htSupported.
| bool ns3::BlockAckAgreement::IsImmediateBlockAck | ( | void | ) | const | 
Check whether the current ack policy is immediate BlockAck.
Definition at line 138 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 93 of file block-ack-agreement.cc.
References m_amsduSupported, and NS_LOG_FUNCTION.
Referenced by ns3::BlockAckManager::UpdateAgreement().
 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 47 of file block-ack-agreement.cc.
References m_bufferSize, NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by OriginatorBlockAckWindowTest::DoRun(), and ns3::BlockAckManager::UpdateAgreement().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::BlockAckAgreement::SetDelayedBlockAck | ( | void | ) | 
Set block ack policy to delayed Ack.
Definition at line 86 of file block-ack-agreement.cc.
References m_blockAckPolicy, and NS_LOG_FUNCTION.
Referenced by ns3::BlockAckManager::UpdateAgreement().
 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 156 of file block-ack-agreement.cc.
References m_htSupported, and NS_LOG_FUNCTION.
| void ns3::BlockAckAgreement::SetImmediateBlockAck | ( | void | ) | 
Set block ack policy to immediate Ack.
Definition at line 79 of file block-ack-agreement.cc.
References m_blockAckPolicy, and NS_LOG_FUNCTION.
Referenced by ns3::BlockAckManager::UpdateAgreement().
 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 63 of file block-ack-agreement.cc.
References m_startingSeq, NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by ns3::BlockAckManager::CreateAgreement(), OriginatorBlockAckWindowTest::DoRun(), and ns3::BlockAckManager::UpdateAgreement().
 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 71 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 56 of file block-ack-agreement.cc.
References m_timeout, NS_LOG_FUNCTION, and timeout.
Referenced by ns3::BlockAckManager::UpdateAgreement().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | friend | 
Definition at line 37 of file block-ack-agreement.h.
| 
 | friend | 
Provide access to MacLow class.
Definition at line 36 of file block-ack-agreement.h.
| 
 | protected | 
Flag whether MSDU aggregation is supported.
Definition at line 180 of file block-ack-agreement.h.
Referenced by IsAmsduSupported(), ns3::RecipientBlockAckAgreement::RecipientBlockAckAgreement(), and SetAmsduSupport().
| 
 | protected | 
Type of block ack: immediate or delayed.
Definition at line 181 of file block-ack-agreement.h.
Referenced by IsImmediateBlockAck(), SetDelayedBlockAck(), and SetImmediateBlockAck().
| 
 | protected | 
Buffer size.
Definition at line 183 of file block-ack-agreement.h.
Referenced by GetBlockAckType(), GetBufferSize(), ns3::OriginatorBlockAckAgreement::InitTxWindow(), ns3::RecipientBlockAckAgreement::RecipientBlockAckAgreement(), and SetBufferSize().
| 
 | protected | 
Flag whether HT is supported.
Definition at line 187 of file block-ack-agreement.h.
Referenced by GetBlockAckReqType(), GetBlockAckType(), IsHtSupported(), ns3::RecipientBlockAckAgreement::RecipientBlockAckAgreement(), and SetHtSupported().
| 
 | protected | 
inactivity event
Definition at line 188 of file block-ack-agreement.h.
Referenced by ns3::BlockAckManager::UpdateAgreement(), and ~BlockAckAgreement().
| 
 | protected | 
| 
 | protected | 
Starting sequence control.
Definition at line 185 of file block-ack-agreement.h.
Referenced by GetStartingSequence(), ns3::OriginatorBlockAckAgreement::GetStartingSequence(), GetStartingSequenceControl(), ns3::OriginatorBlockAckAgreement::InitTxWindow(), ns3::RecipientBlockAckAgreement::RecipientBlockAckAgreement(), SetStartingSequence(), and SetStartingSequenceControl().
| 
 | protected | 
| 
 | protected | 
Timeout.
Definition at line 184 of file block-ack-agreement.h.
Referenced by GetTimeout(), ns3::RecipientBlockAckAgreement::RecipientBlockAckAgreement(), and SetTimeout().
| 
 | protected | 
Ending sequence number.
Definition at line 186 of file block-ack-agreement.h.