A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::WifiAcknowledgment Struct Referenceabstract

WifiAcknowledgment is an abstract base struct. More...

#include "wifi-acknowledgment.h"

+ Inheritance diagram for ns3::WifiAcknowledgment:
+ Collaboration diagram for ns3::WifiAcknowledgment:

Public Types

enum  Method {
  NONE = 0 , NORMAL_ACK , BLOCK_ACK , BAR_BLOCK_ACK ,
  DL_MU_BAR_BA_SEQUENCE , DL_MU_TF_MU_BAR , DL_MU_AGGREGATE_TF , UL_MU_MULTI_STA_BA ,
  ACK_AFTER_TB_PPDU
}
 Available acknowledgment methods. More...
 

Public Member Functions

 WifiAcknowledgment (Method m)
 Constructor.
 
virtual ~WifiAcknowledgment ()
 
virtual std::unique_ptr< WifiAcknowledgmentCopy () const =0
 Clone this object.
 
WifiMacHeader::QosAckPolicy GetQosAckPolicy (Mac48Address receiver, uint8_t tid) const
 Get the QoS Ack policy to use for the MPDUs addressed to the given receiver and belonging to the given TID.
 
virtual void Print (std::ostream &os) const =0
 Print the object contents.
 
void SetQosAckPolicy (Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy)
 Set the QoS Ack policy to use for the MPDUs addressed to the given receiver and belonging to the given TID.
 

Public Attributes

std::optional< TimeacknowledgmentTime
 time required by the acknowledgment method
 
const Method method
 acknowledgment method
 

Private Member Functions

virtual bool CheckQosAckPolicy (Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const =0
 Check whether the given QoS Ack policy can be used for the MPDUs addressed to the given receiver and belonging to the given TID.
 

Private Attributes

std::map< std::pair< Mac48Address, uint8_t >, WifiMacHeader::QosAckPolicym_ackPolicy
 Qos Ack Policy to set for MPDUs addressed to a given receiver and having a given TID.
 

Detailed Description

WifiAcknowledgment is an abstract base struct.

Each derived struct defines an acknowledgment method and stores the information needed to perform acknowledgment according to that method.

Definition at line 35 of file wifi-acknowledgment.h.

Member Enumeration Documentation

◆ Method

Available acknowledgment methods.

Enumerator
NONE 
NORMAL_ACK 
BLOCK_ACK 
BAR_BLOCK_ACK 
DL_MU_BAR_BA_SEQUENCE 
DL_MU_TF_MU_BAR 
DL_MU_AGGREGATE_TF 
UL_MU_MULTI_STA_BA 
ACK_AFTER_TB_PPDU 

Definition at line 41 of file wifi-acknowledgment.h.

Constructor & Destructor Documentation

◆ WifiAcknowledgment()

ns3::WifiAcknowledgment::WifiAcknowledgment ( Method m)

Constructor.

Parameters
mthe acknowledgment method for this object

Definition at line 22 of file wifi-acknowledgment.cc.

◆ ~WifiAcknowledgment()

ns3::WifiAcknowledgment::~WifiAcknowledgment ( )
virtual

Definition at line 27 of file wifi-acknowledgment.cc.

Member Function Documentation

◆ CheckQosAckPolicy()

virtual bool ns3::WifiAcknowledgment::CheckQosAckPolicy ( Mac48Address receiver,
uint8_t tid,
WifiMacHeader::QosAckPolicy ackPolicy ) const
privatepure virtual

Check whether the given QoS Ack policy can be used for the MPDUs addressed to the given receiver and belonging to the given TID.

Parameters
receiverthe MAC address of the receiver
tidthe TID
ackPolicythe QoS Ack policy to use
Returns
true if the given QoS Ack policy can be used, false otherwise

Implemented in ns3::WifiAckAfterTbPpdu, ns3::WifiBarBlockAck, ns3::WifiBlockAck, ns3::WifiDlMuAggregateTf, ns3::WifiDlMuBarBaSequence, ns3::WifiDlMuTfMuBar, ns3::WifiNoAck, ns3::WifiNormalAck, and ns3::WifiUlMuMultiStaBa.

Referenced by SetQosAckPolicy().

+ Here is the caller graph for this function:

◆ Copy()

virtual std::unique_ptr< WifiAcknowledgment > ns3::WifiAcknowledgment::Copy ( ) const
pure virtual

◆ GetQosAckPolicy()

WifiMacHeader::QosAckPolicy ns3::WifiAcknowledgment::GetQosAckPolicy ( Mac48Address receiver,
uint8_t tid ) const

Get the QoS Ack policy to use for the MPDUs addressed to the given receiver and belonging to the given TID.

Parameters
receiverthe MAC address of the receiver
tidthe TID
Returns
the QoS Ack policy to use

Definition at line 32 of file wifi-acknowledgment.cc.

References m_ackPolicy, and NS_ASSERT.

Referenced by ns3::WifiAckManager::SetQosAckPolicy(), and ns3::WifiAckManager::SetQosAckPolicy().

+ Here is the caller graph for this function:

◆ Print()

virtual void ns3::WifiAcknowledgment::Print ( std::ostream & os) const
pure virtual

Print the object contents.

Parameters
osoutput stream in which the data should be printed.

Implemented in ns3::WifiAckAfterTbPpdu, ns3::WifiBarBlockAck, ns3::WifiBlockAck, ns3::WifiDlMuAggregateTf, ns3::WifiDlMuBarBaSequence, ns3::WifiDlMuTfMuBar, ns3::WifiNoAck, ns3::WifiNormalAck, and ns3::WifiUlMuMultiStaBa.

Referenced by ns3::operator<<().

+ Here is the caller graph for this function:

◆ SetQosAckPolicy()

void ns3::WifiAcknowledgment::SetQosAckPolicy ( Mac48Address receiver,
uint8_t tid,
WifiMacHeader::QosAckPolicy ackPolicy )

Set the QoS Ack policy to use for the MPDUs addressed to the given receiver and belonging to the given TID.

If the pair (receiver, TID) already exists, it is overwritten with the given QoS Ack policy.

Parameters
receiverthe MAC address of the receiver
tidthe TID
ackPolicythe QoS Ack policy to use

Definition at line 40 of file wifi-acknowledgment.cc.

References CheckQosAckPolicy(), m_ackPolicy, and NS_ABORT_MSG_IF.

Referenced by ns3::WifiDefaultAckManager::GetAckInfoIfAggregatedMuBar(), ns3::WifiDefaultAckManager::GetAckInfoIfBarBaSequence(), and ns3::WifiDefaultAckManager::GetAckInfoIfTfMuBar().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ acknowledgmentTime

std::optional<Time> ns3::WifiAcknowledgment::acknowledgmentTime

◆ m_ackPolicy

std::map<std::pair<Mac48Address, uint8_t>, WifiMacHeader::QosAckPolicy> ns3::WifiAcknowledgment::m_ackPolicy
private

Qos Ack Policy to set for MPDUs addressed to a given receiver and having a given TID.

Definition at line 112 of file wifi-acknowledgment.h.

Referenced by GetQosAckPolicy(), and SetQosAckPolicy().

◆ method


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