|
A Discrete-Event Network Simulator
|
API
|
Go to the documentation of this file.
23 #include "ns3/mac48-address.h"
33 acknowledgmentTime (
Time::
Min ())
67 std::unique_ptr<WifiAcknowledgment>
70 return std::unique_ptr<WifiAcknowledgment> (
new WifiNoAck (*
this));
99 std::unique_ptr<WifiAcknowledgment>
102 return std::unique_ptr<WifiAcknowledgment> (
new WifiNormalAck (*
this));
130 std::unique_ptr<WifiAcknowledgment>
133 return std::unique_ptr<WifiAcknowledgment> (
new WifiBlockAck (*
this));
162 std::unique_ptr<WifiAcknowledgment>
165 return std::unique_ptr<WifiAcknowledgment> (
new WifiBarBlockAck (*
this));
181 os <<
"BAR_BLOCK_ACK";
194 std::unique_ptr<WifiAcknowledgment>
233 os <<
"DL_MU_BAR_BA_SEQUENCE [";
236 os <<
" (ACK) " << sta.first;
240 os <<
" (BA) " << sta.first;
244 os <<
" (BAR+BA) " << sta.first;
260 std::unique_ptr<WifiAcknowledgment>
263 return std::unique_ptr<WifiAcknowledgment> (
new WifiDlMuTfMuBar (*
this));
282 os <<
"DL_MU_TF_MU_BAR [";
285 os <<
" (BA) " << sta.first;
301 std::unique_ptr<WifiAcknowledgment>
323 os <<
"DL_MU_AGGREGATE_TF [";
326 os <<
" (BA) " << sta.first;
341 std::unique_ptr<WifiAcknowledgment>
358 os <<
"UL_MU_MULTI_STA_BA [";
361 os <<
"(" << sta.first.first <<
"," << +sta.first.second <<
") ";
376 std::unique_ptr<WifiAcknowledgment>
397 os <<
"ACK_AFTER_TB_PPDU";
403 acknowledgment->
Print (os);
std::unique_ptr< WifiAcknowledgment > Copy(void) const override
Clone this object.
WifiUlMuMultiStaBa specifies that a Basic Trigger Frame is being sent to solicit TB PPDUs that will b...
Time acknowledgmentTime
time required by the acknowledgment method
void Print(std::ostream &os) const override
Print the object contents.
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
std::unique_ptr< WifiAcknowledgment > Copy(void) const override
Clone this object.
void Print(std::ostream &os) const override
Print the object contents.
void Print(std::ostream &os) const override
Print the object contents.
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 ...
bool CheckQosAckPolicy(Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const override
Check whether the given QoS Ack policy can be used for the MPDUs addressed to the given receiver and ...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
bool CheckQosAckPolicy(Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const override
Check whether the given QoS Ack policy can be used for the MPDUs addressed to the given receiver and ...
WifiBlockAck specifies that acknowledgment via Block Ack is required.
std::map< Mac48Address, BlockAckReqInfo > stationsSendBlockAckReqTo
Set of stations receiving a BlockAckReq frame and replying with a BlockAck frame.
std::map< Mac48Address, BlockAckInfo > stationsReplyingWithBlockAck
Set of stations replying with a BlockAck frame.
WifiAcknowledgment(Method m)
Constructor.
void Print(std::ostream &os) const override
Print the object contents.
std::map< Mac48Address, BlockAckInfo > stationsReplyingWithBlockAck
Set of stations replying with a BlockAck frame (no more than one)
WifiDlMuAggregateTf specifies that a DL MU PPDU made of PSDUs including each a MU-BAR Trigger Frame i...
WifiAckAfterTbPpdu is used when a station prepares a TB PPDU to send in response to a Basic Trigger F...
void Print(std::ostream &os) const override
Print the object contents.
int64x64_t Min(const int64x64_t &a, const int64x64_t &b)
Minimum.
std::unique_ptr< WifiAcknowledgment > Copy(void) const override
Clone this object.
void Print(std::ostream &os) const override
Print the object contents.
virtual ~WifiAcknowledgment()
std::unique_ptr< WifiAcknowledgment > Copy(void) const override
Clone this object.
WifiBarBlockAck specifies that a BlockAckReq is sent to solicit a Block Ack response.
void Print(std::ostream &os) const override
Print the object contents.
std::unique_ptr< WifiAcknowledgment > Copy(void) const override
Clone this object.
bool CheckQosAckPolicy(Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const override
Check whether the given QoS Ack policy can be used for the MPDUs addressed to the given receiver and ...
WifiDlMuTfMuBar specifies that a DL MU PPDU is followed after a SIFS duration by a MU-BAR Trigger Fra...
WifiNormalAck specifies that acknowledgment via Normal Ack is required.
std::unique_ptr< WifiAcknowledgment > Copy(void) const override
Clone this object.
void Print(std::ostream &os) const override
Print the object contents.
std::unique_ptr< WifiAcknowledgment > Copy(void) const override
Clone this object.
Simulation virtual time values and global simulation resolution.
#define NS_ABORT_MSG_IF(cond, msg)
Abnormal program termination if a condition is true, with a message.
bool CheckQosAckPolicy(Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const override
Check whether the given QoS Ack policy can be used for the MPDUs addressed to the given receiver and ...
std::map< Mac48Address, BlockAckInfo > stationsReplyingWithBlockAck
Set of stations replying with a BlockAck frame.
std::unique_ptr< WifiAcknowledgment > Copy(void) const override
Clone this object.
WifiDlMuBarBaSequence specifies that a DL MU PPDU is acknowledged through a sequence of BlockAckReq a...
bool CheckQosAckPolicy(Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const override
Check whether the given QoS Ack policy can be used for the MPDUs addressed to the given receiver and ...
bool CheckQosAckPolicy(Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const override
Check whether the given QoS Ack policy can be used for the MPDUs addressed to the given receiver and ...
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 give...
bool CheckQosAckPolicy(Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const override
Check whether the given QoS Ack policy can be used for the MPDUs addressed to the given receiver and ...
Time Seconds(double value)
Construct a Time in the indicated unit.
WifiAcknowledgment is an abstract base struct.
WifiNoAck specifies that no acknowledgment is required.
virtual void Print(std::ostream &os) const =0
Print the object contents.
std::map< Mac48Address, AckInfo > stationsReplyingWithNormalAck
Set of stations replying with an Ack frame (no more than one)
bool CheckQosAckPolicy(Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const override
Check whether the given QoS Ack policy can be used for the MPDUs addressed to the given receiver and ...
Method
Available acknowledgment methods.
std::unique_ptr< WifiAcknowledgment > Copy(void) const override
Clone this object.
std::map< std::pair< Mac48Address, uint8_t >, std::size_t > stationsReceivingMultiStaBa
Map (originator, tid) pairs to the their index in baType.
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.
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 give...
std::ostream & operator<<(std::ostream &os, const Angles &a)
bool CheckQosAckPolicy(Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const override
Check whether the given QoS Ack policy can be used for the MPDUs addressed to the given receiver and ...
void Print(std::ostream &os) const override
Print the object contents.