WifiAcknowledgment is an abstract base struct. More...
#include "wifi-acknowledgment.h"
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< WifiAcknowledgment > | Copy () 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< Time > | acknowledgmentTime |
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::QosAckPolicy > | m_ackPolicy |
Qos Ack Policy to set for MPDUs addressed to a given receiver and having a given TID. | |
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.
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.
ns3::WifiAcknowledgment::WifiAcknowledgment | ( | Method | m | ) |
Constructor.
m | the acknowledgment method for this object |
Definition at line 22 of file wifi-acknowledgment.cc.
|
virtual |
Definition at line 27 of file wifi-acknowledgment.cc.
|
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.
receiver | the MAC address of the receiver |
tid | the TID |
ackPolicy | the QoS Ack policy to use |
Implemented in ns3::WifiAckAfterTbPpdu, ns3::WifiBarBlockAck, ns3::WifiBlockAck, ns3::WifiDlMuAggregateTf, ns3::WifiDlMuBarBaSequence, ns3::WifiDlMuTfMuBar, ns3::WifiNoAck, ns3::WifiNormalAck, and ns3::WifiUlMuMultiStaBa.
Referenced by SetQosAckPolicy().
|
pure virtual |
Clone this object.
Implemented in ns3::WifiAckAfterTbPpdu, ns3::WifiBarBlockAck, ns3::WifiBlockAck, ns3::WifiDlMuAggregateTf, ns3::WifiDlMuBarBaSequence, ns3::WifiDlMuTfMuBar, ns3::WifiNoAck, ns3::WifiNormalAck, and ns3::WifiUlMuMultiStaBa.
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.
receiver | the MAC address of the receiver |
tid | the TID |
Definition at line 32 of file wifi-acknowledgment.cc.
References m_ackPolicy, and NS_ASSERT.
Referenced by ns3::WifiAckManager::SetQosAckPolicy(), and ns3::WifiAckManager::SetQosAckPolicy().
|
pure virtual |
Print the object contents.
os | output 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<<().
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.
receiver | the MAC address of the receiver |
tid | the TID |
ackPolicy | the 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().
std::optional<Time> ns3::WifiAcknowledgment::acknowledgmentTime |
time required by the acknowledgment method
Definition at line 95 of file wifi-acknowledgment.h.
Referenced by ns3::WifiNoAck::WifiNoAck(), ns3::FrameExchangeManager::CalculateAcknowledgmentTime(), and ns3::HeFrameExchangeManager::CalculateAcknowledgmentTime().
|
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().
const Method ns3::WifiAcknowledgment::method |
acknowledgment method
Definition at line 94 of file wifi-acknowledgment.h.
Referenced by ns3::FrameExchangeManager::CalculateAcknowledgmentTime(), ns3::HeFrameExchangeManager::CalculateAcknowledgmentTime(), and ns3::HtFrameExchangeManager::CalculateAcknowledgmentTime().