Maintains the state and information about transmitted MPDUs with ack policy block ack for an originator station. More...
#include "originator-block-ack-agreement.h"
Public Types | |
enum | State { PENDING, ESTABLISHED, INACTIVE, UNSUCCESSFUL } |
Represents the state for this agreement. More... | |
Public Member Functions | |
OriginatorBlockAckAgreement (Mac48Address recipient, uint8_t tid) | |
Constructor. More... | |
~OriginatorBlockAckAgreement () | |
void | CompleteExchange (void) |
Complete exchange function. More... | |
bool | IsBlockAckRequestNeeded (void) const |
Returns true if all packets for which a block ack was negotiated have been transmitted so a block ack request is needed in order to acknowledge them. More... | |
bool | IsEstablished (void) const |
Check if the current state of this agreement is ESTABLISHED. More... | |
bool | IsInactive (void) const |
Check if the current state of this agreement is INACTIVE. More... | |
bool | IsPending (void) const |
Check if the current state of this agreement is PENDING. More... | |
bool | IsUnsuccessful (void) const |
Check if the current state of this agreement is UNSUCCESSFUL. More... | |
void | NotifyMpduTransmission (uint16_t nextSeqNumber) |
Notifies a packet's transmission with ack policy Block Ack. More... | |
void | SetState (State state) |
Set the current state. More... | |
![]() | |
BlockAckAgreement (Mac48Address peer, uint8_t tid) | |
Constructor for BlockAckAgreement with given peer and TID. More... | |
~BlockAckAgreement () | |
uint16_t | GetBufferSize (void) const |
Return the buffer size. More... | |
Mac48Address | GetPeer (void) const |
Return the peer address. More... | |
uint16_t | GetStartingSequence (void) const |
Return the starting squence 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 ending sequence number. 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 block ACK. 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... | |
void | SetWinEnd (uint16_t seq) |
Set ending sequence number. More... | |
Private Attributes | |
bool | m_needBlockAckReq |
flag whether it needs a Block ACK request More... | |
uint16_t | m_sentMpdus |
sent MPDUs More... | |
State | m_state |
state More... | |
Friends | |
class | BlockAckManager |
allow BlockAckManager class access More... | |
Additional Inherited Members | |
![]() | |
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 squence control. More... | |
uint8_t | m_tid |
Traffic ID. More... | |
uint16_t | m_timeout |
Timeout. More... | |
uint16_t | m_winEnd |
Ending sequence number. More... | |
Maintains the state and information about transmitted MPDUs with ack policy block ack for an originator station.
Definition at line 33 of file originator-block-ack-agreement.h.
ns3::OriginatorBlockAckAgreement::OriginatorBlockAckAgreement | ( | Mac48Address | recipient, |
uint8_t | tid | ||
) |
Constructor.
recipient | MAC address |
tid | Traffic ID |
Definition at line 26 of file originator-block-ack-agreement.cc.
ns3::OriginatorBlockAckAgreement::~OriginatorBlockAckAgreement | ( | ) |
Definition at line 34 of file originator-block-ack-agreement.cc.
void ns3::OriginatorBlockAckAgreement::CompleteExchange | ( | void | ) |
Complete exchange function.
Definition at line 93 of file originator-block-ack-agreement.cc.
References m_needBlockAckReq, and m_sentMpdus.
Referenced by ns3::BlockAckManager::CompleteAmpduExchange(), and ns3::BlockAckManager::ScheduleBlockAckReqIfNeeded().
bool ns3::OriginatorBlockAckAgreement::IsBlockAckRequestNeeded | ( | void | ) | const |
Returns true if all packets for which a block ack was negotiated have been transmitted so a block ack request is needed in order to acknowledge them.
Definition at line 87 of file originator-block-ack-agreement.cc.
References m_needBlockAckReq.
bool ns3::OriginatorBlockAckAgreement::IsEstablished | ( | void | ) | const |
Check if the current state of this agreement is ESTABLISHED.
Definition at line 56 of file originator-block-ack-agreement.cc.
References ESTABLISHED, and m_state.
bool ns3::OriginatorBlockAckAgreement::IsInactive | ( | void | ) | const |
Check if the current state of this agreement is INACTIVE.
Definition at line 62 of file originator-block-ack-agreement.cc.
bool ns3::OriginatorBlockAckAgreement::IsPending | ( | void | ) | const |
Check if the current state of this agreement is PENDING.
Definition at line 50 of file originator-block-ack-agreement.cc.
bool ns3::OriginatorBlockAckAgreement::IsUnsuccessful | ( | void | ) | const |
Check if the current state of this agreement is UNSUCCESSFUL.
Definition at line 68 of file originator-block-ack-agreement.cc.
References m_state, and UNSUCCESSFUL.
void ns3::OriginatorBlockAckAgreement::NotifyMpduTransmission | ( | uint16_t | nextSeqNumber | ) |
Notifies a packet's transmission with ack policy Block Ack.
nextSeqNumber |
Definition at line 74 of file originator-block-ack-agreement.cc.
References ns3::BlockAckAgreement::m_bufferSize, m_needBlockAckReq, m_sentMpdus, ns3::BlockAckAgreement::m_startingSeq, min, and NS_ASSERT.
void ns3::OriginatorBlockAckAgreement::SetState | ( | State | state | ) |
Set the current state.
state | to set |
Definition at line 39 of file originator-block-ack-agreement.cc.
References INACTIVE, m_needBlockAckReq, m_sentMpdus, and m_state.
Referenced by ns3::BlockAckManager::UpdateAgreement().
|
friend |
allow BlockAckManager class access
Definition at line 36 of file originator-block-ack-agreement.h.
|
private |
flag whether it needs a Block ACK request
Definition at line 160 of file originator-block-ack-agreement.h.
Referenced by CompleteExchange(), IsBlockAckRequestNeeded(), NotifyMpduTransmission(), and SetState().
|
private |
sent MPDUs
Definition at line 159 of file originator-block-ack-agreement.h.
Referenced by CompleteExchange(), NotifyMpduTransmission(), and SetState().
|
private |
state
Definition at line 158 of file originator-block-ack-agreement.h.
Referenced by IsEstablished(), IsInactive(), IsPending(), IsUnsuccessful(), and SetState().