A Discrete-Event Network Simulator
API
wifi-acknowledgment.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2020 Universita' degli Studi di Napoli Federico II
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Stefano Avallone <stavallo@unina.it>
19  */
20 
21 #ifndef WIFI_ACKNOWLEDGMENT_H
22 #define WIFI_ACKNOWLEDGMENT_H
23 
24 #include "ns3/nstime.h"
25 #include "wifi-tx-vector.h"
26 #include "block-ack-type.h"
27 #include "wifi-mac-header.h"
28 #include "ctrl-headers.h"
29 #include <map>
30 #include <memory>
31 
32 
33 namespace ns3 {
34 
35 class Mac48Address;
36 
45 {
50  enum Method
51  {
52  NONE = 0,
61  };
62 
68  virtual ~WifiAcknowledgment ();
69 
74  virtual std::unique_ptr<WifiAcknowledgment> Copy (void) const = 0;
75 
84  WifiMacHeader::QosAckPolicy GetQosAckPolicy (Mac48Address receiver, uint8_t tid) const;
85 
95  void SetQosAckPolicy (Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy);
96 
101  virtual void Print (std::ostream &os) const = 0;
102 
103  const Method method;
105 
106 private:
116  virtual bool CheckQosAckPolicy (Mac48Address receiver, uint8_t tid,
117  WifiMacHeader::QosAckPolicy ackPolicy) const = 0;
118 
120  std::map<std::pair<Mac48Address, uint8_t>, WifiMacHeader::QosAckPolicy> m_ackPolicy;
121 };
122 
123 
130 {
131  WifiNoAck ();
132 
133  std::unique_ptr<WifiAcknowledgment> Copy (void) const override;
134  bool CheckQosAckPolicy (Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const override;
135  void Print (std::ostream &os) const override;
136 };
137 
138 
145 {
146  WifiNormalAck ();
147 
148  std::unique_ptr<WifiAcknowledgment> Copy (void) const override;
149  bool CheckQosAckPolicy (Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const override;
150  void Print (std::ostream &os) const override;
151 
153 };
154 
155 
162 {
163  WifiBlockAck ();
164 
165  std::unique_ptr<WifiAcknowledgment> Copy (void) const override;
166  bool CheckQosAckPolicy (Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const override;
167  void Print (std::ostream &os) const override;
168 
171 };
172 
173 
180 {
181  WifiBarBlockAck ();
182 
183  std::unique_ptr<WifiAcknowledgment> Copy (void) const override;
184  bool CheckQosAckPolicy (Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const override;
185  void Print (std::ostream &os) const override;
186 
191 };
192 
193 
202 {
204 
205  std::unique_ptr<WifiAcknowledgment> Copy (void) const override;
206  bool CheckQosAckPolicy (Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const override;
207  void Print (std::ostream &os) const override;
208 
210  struct AckInfo
211  {
213  };
216  {
219  };
222  {
227  };
228 
230  std::map<Mac48Address, AckInfo> stationsReplyingWithNormalAck;
232  std::map<Mac48Address, BlockAckInfo> stationsReplyingWithBlockAck;
234  std::map<Mac48Address, BlockAckReqInfo> stationsSendBlockAckReqTo;
235 };
236 
237 
246 {
247  WifiDlMuTfMuBar ();
248 
249  std::unique_ptr<WifiAcknowledgment> Copy (void) const override;
250  bool CheckQosAckPolicy (Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const override;
251  void Print (std::ostream &os) const override;
252 
255  {
259  };
260 
262  std::map<Mac48Address, BlockAckInfo> stationsReplyingWithBlockAck;
263  std::list<BlockAckReqType> barTypes;
264  uint16_t ulLength;
266 };
267 
268 
277 {
279 
280  std::unique_ptr<WifiAcknowledgment> Copy (void) const override;
281  bool CheckQosAckPolicy (Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const override;
282  void Print (std::ostream &os) const override;
283 
286  {
287  uint32_t muBarSize;
291  };
292 
294  std::map<Mac48Address, BlockAckInfo> stationsReplyingWithBlockAck;
295  uint16_t ulLength;
296 };
297 
298 
306 {
308 
309  std::unique_ptr<WifiAcknowledgment> Copy (void) const override;
310  bool CheckQosAckPolicy (Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const override;
311  void Print (std::ostream &os) const override;
312 
314  std::map<std::pair<Mac48Address, uint8_t>, std::size_t> stationsReceivingMultiStaBa;
318 };
319 
320 
331 {
333 
334  std::unique_ptr<WifiAcknowledgment> Copy (void) const override;
335  bool CheckQosAckPolicy (Mac48Address receiver, uint8_t tid, WifiMacHeader::QosAckPolicy ackPolicy) const override;
336  void Print (std::ostream &os) const override;
337 };
338 
339 
347 std::ostream& operator<< (std::ostream& os, const WifiAcknowledgment* acknowledgment);
348 
349 } //namespace ns3
350 
351 #endif /* WIFI_ACKNOWLEDGMENT_H */
ns3::WifiDlMuAggregateTf::BlockAckInfo
information related to a BlockAck frame sent by a station
Definition: wifi-acknowledgment.h:286
ns3::WifiUlMuMultiStaBa::Copy
std::unique_ptr< WifiAcknowledgment > Copy(void) const override
Clone this object.
Definition: wifi-acknowledgment.cc:342
ns3::WifiUlMuMultiStaBa
WifiUlMuMultiStaBa specifies that a Basic Trigger Frame is being sent to solicit TB PPDUs that will b...
Definition: wifi-acknowledgment.h:306
ns3::WifiAcknowledgment::acknowledgmentTime
Time acknowledgmentTime
time required by the acknowledgment method
Definition: wifi-acknowledgment.h:104
ns3::WifiNoAck::Print
void Print(std::ostream &os) const override
Print the object contents.
Definition: wifi-acknowledgment.cc:84
ns3::WifiNormalAck::Copy
std::unique_ptr< WifiAcknowledgment > Copy(void) const override
Clone this object.
Definition: wifi-acknowledgment.cc:100
ns3::WifiDlMuAggregateTf::BlockAckInfo::blockAckTxVector
WifiTxVector blockAckTxVector
TXVECTOR for the BlockAck frame.
Definition: wifi-acknowledgment.h:289
ns3::WifiBlockAck::Print
void Print(std::ostream &os) const override
Print the object contents.
Definition: wifi-acknowledgment.cc:147
ns3::WifiBarBlockAck::Print
void Print(std::ostream &os) const override
Print the object contents.
Definition: wifi-acknowledgment.cc:179
ns3::WifiAcknowledgment::CheckQosAckPolicy
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 ...
block-ack-type.h
ns3::WifiAcknowledgment::NONE
@ NONE
Definition: wifi-acknowledgment.h:52
ns3::WifiDlMuAggregateTf::CheckQosAckPolicy
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 ...
Definition: wifi-acknowledgment.cc:308
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::WifiNoAck::CheckQosAckPolicy
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 ...
Definition: wifi-acknowledgment.cc:74
ns3::WifiBlockAck
WifiBlockAck specifies that acknowledgment via Block Ack is required.
Definition: wifi-acknowledgment.h:162
ns3::WifiDlMuBarBaSequence::stationsSendBlockAckReqTo
std::map< Mac48Address, BlockAckReqInfo > stationsSendBlockAckReqTo
Set of stations receiving a BlockAckReq frame and replying with a BlockAck frame.
Definition: wifi-acknowledgment.h:234
ns3::CtrlBAckRequestHeader
Headers for BlockAckRequest.
Definition: ctrl-headers.h:49
ns3::WifiBarBlockAck::WifiBarBlockAck
WifiBarBlockAck()
Definition: wifi-acknowledgment.cc:157
ns3::WifiAcknowledgment::ACK_AFTER_TB_PPDU
@ ACK_AFTER_TB_PPDU
Definition: wifi-acknowledgment.h:60
ns3::WifiUlMuMultiStaBa::WifiUlMuMultiStaBa
WifiUlMuMultiStaBa()
Definition: wifi-acknowledgment.cc:336
ns3::WifiDlMuTfMuBar::stationsReplyingWithBlockAck
std::map< Mac48Address, BlockAckInfo > stationsReplyingWithBlockAck
Set of stations replying with a BlockAck frame.
Definition: wifi-acknowledgment.h:262
ns3::WifiDlMuBarBaSequence::AckInfo
information related to an Ack frame sent by a station
Definition: wifi-acknowledgment.h:211
ns3::WifiAcknowledgment::WifiAcknowledgment
WifiAcknowledgment(Method m)
Constructor.
Definition: wifi-acknowledgment.cc:31
ns3::WifiDlMuBarBaSequence::BlockAckReqInfo
information related to a BlockAckReq frame sent to a station
Definition: wifi-acknowledgment.h:222
ns3::WifiUlMuMultiStaBa::Print
void Print(std::ostream &os) const override
Print the object contents.
Definition: wifi-acknowledgment.cc:356
ns3::WifiDlMuTfMuBar::barTypes
std::list< BlockAckReqType > barTypes
BAR types.
Definition: wifi-acknowledgment.h:263
ns3::WifiDlMuBarBaSequence::stationsReplyingWithBlockAck
std::map< Mac48Address, BlockAckInfo > stationsReplyingWithBlockAck
Set of stations replying with a BlockAck frame (no more than one)
Definition: wifi-acknowledgment.h:232
ns3::Mac48Address
an EUI-48 address
Definition: mac48-address.h:44
ns3::WifiDlMuAggregateTf
WifiDlMuAggregateTf specifies that a DL MU PPDU made of PSDUs including each a MU-BAR Trigger Frame i...
Definition: wifi-acknowledgment.h:277
ns3::WifiAckAfterTbPpdu
WifiAckAfterTbPpdu is used when a station prepares a TB PPDU to send in response to a Basic Trigger F...
Definition: wifi-acknowledgment.h:331
ns3::WifiTxVector
This class mimics the TXVECTOR which is to be passed to the PHY in order to define the parameters whi...
Definition: wifi-tx-vector.h:71
ns3::WifiDlMuTfMuBar::Print
void Print(std::ostream &os) const override
Print the object contents.
Definition: wifi-acknowledgment.cc:280
ns3::WifiAcknowledgment::DL_MU_BAR_BA_SEQUENCE
@ DL_MU_BAR_BA_SEQUENCE
Definition: wifi-acknowledgment.h:56
ns3::WifiNormalAck::ackTxVector
WifiTxVector ackTxVector
Ack TXVECTOR.
Definition: wifi-acknowledgment.h:152
ns3::WifiBarBlockAck::barType
BlockAckReqType barType
BlockAckReq type.
Definition: wifi-acknowledgment.h:189
ns3::WifiDlMuBarBaSequence::Copy
std::unique_ptr< WifiAcknowledgment > Copy(void) const override
Clone this object.
Definition: wifi-acknowledgment.cc:195
ns3::WifiDlMuBarBaSequence::BlockAckReqInfo::baType
BlockAckType baType
BlockAck type.
Definition: wifi-acknowledgment.h:226
wifi-mac-header.h
ns3::WifiDlMuBarBaSequence::Print
void Print(std::ostream &os) const override
Print the object contents.
Definition: wifi-acknowledgment.cc:231
ns3::WifiAcknowledgment::~WifiAcknowledgment
virtual ~WifiAcknowledgment()
Definition: wifi-acknowledgment.cc:37
ns3::WifiDlMuBarBaSequence::AckInfo::ackTxVector
WifiTxVector ackTxVector
TXVECTOR for the Ack frame.
Definition: wifi-acknowledgment.h:212
ns3::WifiDlMuTfMuBar::Copy
std::unique_ptr< WifiAcknowledgment > Copy(void) const override
Clone this object.
Definition: wifi-acknowledgment.cc:261
ns3::WifiDlMuBarBaSequence::BlockAckInfo::baType
BlockAckType baType
BlockAck type.
Definition: wifi-acknowledgment.h:218
ns3::WifiBarBlockAck
WifiBarBlockAck specifies that a BlockAckReq is sent to solicit a Block Ack response.
Definition: wifi-acknowledgment.h:180
ns3::WifiDlMuAggregateTf::BlockAckInfo::barHeader
CtrlBAckRequestHeader barHeader
BlockAckReq header.
Definition: wifi-acknowledgment.h:288
ns3::WifiDlMuAggregateTf::BlockAckInfo::muBarSize
uint32_t muBarSize
size in bytes of a MU-BAR Trigger Frame
Definition: wifi-acknowledgment.h:287
ctrl-headers.h
ns3::WifiDlMuBarBaSequence::BlockAckReqInfo::blockAckReqTxVector
WifiTxVector blockAckReqTxVector
TXVECTOR for the BlockAckReq frame.
Definition: wifi-acknowledgment.h:223
ns3::WifiAcknowledgment::UL_MU_MULTI_STA_BA
@ UL_MU_MULTI_STA_BA
Definition: wifi-acknowledgment.h:59
ns3::BlockAckReqType
The different BlockAckRequest variants.
Definition: block-ack-type.h:75
ns3::WifiAckAfterTbPpdu::Print
void Print(std::ostream &os) const override
Print the object contents.
Definition: wifi-acknowledgment.cc:395
ns3::WifiAckAfterTbPpdu::Copy
std::unique_ptr< WifiAcknowledgment > Copy(void) const override
Clone this object.
Definition: wifi-acknowledgment.cc:377
ns3::WifiDlMuBarBaSequence::BlockAckReqInfo::barType
BlockAckReqType barType
BlockAckReq type.
Definition: wifi-acknowledgment.h:224
ns3::WifiMacHeader::QosAckPolicy
QosAckPolicy
Ack policy for QoS frames.
Definition: wifi-mac-header.h:91
ns3::WifiDlMuTfMuBar::CheckQosAckPolicy
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 ...
Definition: wifi-acknowledgment.cc:267
ns3::WifiDlMuTfMuBar
WifiDlMuTfMuBar specifies that a DL MU PPDU is followed after a SIFS duration by a MU-BAR Trigger Fra...
Definition: wifi-acknowledgment.h:246
wifi-tx-vector.h
ns3::BlockAckType
The different BlockAck variants.
Definition: block-ack-type.h:34
ns3::WifiNormalAck
WifiNormalAck specifies that acknowledgment via Normal Ack is required.
Definition: wifi-acknowledgment.h:145
ns3::WifiDlMuTfMuBar::muBarTxVector
WifiTxVector muBarTxVector
TXVECTOR used to transmit the MU-BAR Trigger Frame.
Definition: wifi-acknowledgment.h:265
ns3::WifiBlockAck::Copy
std::unique_ptr< WifiAcknowledgment > Copy(void) const override
Clone this object.
Definition: wifi-acknowledgment.cc:131
ns3::WifiDlMuAggregateTf::Print
void Print(std::ostream &os) const override
Print the object contents.
Definition: wifi-acknowledgment.cc:321
ns3::WifiBarBlockAck::Copy
std::unique_ptr< WifiAcknowledgment > Copy(void) const override
Clone this object.
Definition: wifi-acknowledgment.cc:163
ns3::WifiUlMuMultiStaBa::tbPpduTxVector
WifiTxVector tbPpduTxVector
TXVECTOR for a TB PPDU.
Definition: wifi-acknowledgment.h:316
ns3::Time
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:104
ns3::WifiDlMuTfMuBar::ulLength
uint16_t ulLength
the UL Length field of the MU-BAR Trigger Frame
Definition: wifi-acknowledgment.h:264
ns3::WifiDlMuTfMuBar::BlockAckInfo
information related to a BlockAck frame sent by a station
Definition: wifi-acknowledgment.h:255
ns3::WifiAcknowledgment::DL_MU_AGGREGATE_TF
@ DL_MU_AGGREGATE_TF
Definition: wifi-acknowledgment.h:58
ns3::WifiAcknowledgment::Copy
virtual std::unique_ptr< WifiAcknowledgment > Copy(void) const =0
Clone this object.
ns3::WifiAcknowledgment::NORMAL_ACK
@ NORMAL_ACK
Definition: wifi-acknowledgment.h:53
ns3::WifiNoAck::WifiNoAck
WifiNoAck()
Definition: wifi-acknowledgment.cc:61
ns3::WifiBarBlockAck::CheckQosAckPolicy
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 ...
Definition: wifi-acknowledgment.cc:169
ns3::WifiDlMuAggregateTf::stationsReplyingWithBlockAck
std::map< Mac48Address, BlockAckInfo > stationsReplyingWithBlockAck
Set of stations replying with a BlockAck frame.
Definition: wifi-acknowledgment.h:294
ns3::WifiNoAck::Copy
std::unique_ptr< WifiAcknowledgment > Copy(void) const override
Clone this object.
Definition: wifi-acknowledgment.cc:68
ns3::WifiDlMuBarBaSequence
WifiDlMuBarBaSequence specifies that a DL MU PPDU is acknowledged through a sequence of BlockAckReq a...
Definition: wifi-acknowledgment.h:202
ns3::WifiBarBlockAck::blockAckReqTxVector
WifiTxVector blockAckReqTxVector
BlockAckReq TXVECTOR.
Definition: wifi-acknowledgment.h:187
ns3::WifiDlMuBarBaSequence::BlockAckInfo
information related to a BlockAck frame sent by a station
Definition: wifi-acknowledgment.h:216
ns3::WifiDlMuTfMuBar::WifiDlMuTfMuBar
WifiDlMuTfMuBar()
Definition: wifi-acknowledgment.cc:254
ns3::WifiDlMuAggregateTf::WifiDlMuAggregateTf
WifiDlMuAggregateTf()
Definition: wifi-acknowledgment.cc:295
ns3::WifiAckAfterTbPpdu::WifiAckAfterTbPpdu
WifiAckAfterTbPpdu()
Definition: wifi-acknowledgment.cc:371
ns3::WifiBlockAck::CheckQosAckPolicy
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 ...
Definition: wifi-acknowledgment.cc:137
ns3::WifiUlMuMultiStaBa::baType
BlockAckType baType
BlockAck type.
Definition: wifi-acknowledgment.h:315
ns3::WifiNormalAck::CheckQosAckPolicy
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 ...
Definition: wifi-acknowledgment.cc:106
ns3::WifiAcknowledgment::SetQosAckPolicy
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...
Definition: wifi-acknowledgment.cc:50
ns3::WifiAckAfterTbPpdu::CheckQosAckPolicy
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 ...
Definition: wifi-acknowledgment.cc:383
ns3::WifiBlockAck::blockAckTxVector
WifiTxVector blockAckTxVector
BlockAck TXVECTOR.
Definition: wifi-acknowledgment.h:169
ns3::WifiAcknowledgment
WifiAcknowledgment is an abstract base struct.
Definition: wifi-acknowledgment.h:45
ns3::WifiNoAck
WifiNoAck specifies that no acknowledgment is required.
Definition: wifi-acknowledgment.h:130
ns3::WifiUlMuMultiStaBa::multiStaBaTxVector
WifiTxVector multiStaBaTxVector
TXVECTOR for the Multi-STA BlockAck.
Definition: wifi-acknowledgment.h:317
ns3::WifiDlMuTfMuBar::BlockAckInfo::barHeader
CtrlBAckRequestHeader barHeader
BlockAckReq header.
Definition: wifi-acknowledgment.h:256
ns3::WifiAcknowledgment::Print
virtual void Print(std::ostream &os) const =0
Print the object contents.
ns3::WifiDlMuTfMuBar::BlockAckInfo::blockAckTxVector
WifiTxVector blockAckTxVector
TXVECTOR for the BlockAck frame.
Definition: wifi-acknowledgment.h:257
ns3::WifiDlMuBarBaSequence::stationsReplyingWithNormalAck
std::map< Mac48Address, AckInfo > stationsReplyingWithNormalAck
Set of stations replying with an Ack frame (no more than one)
Definition: wifi-acknowledgment.h:230
ns3::WifiDlMuBarBaSequence::BlockAckReqInfo::blockAckTxVector
WifiTxVector blockAckTxVector
TXVECTOR for the BlockAck frame.
Definition: wifi-acknowledgment.h:225
ns3::WifiUlMuMultiStaBa::CheckQosAckPolicy
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 ...
Definition: wifi-acknowledgment.cc:348
ns3::WifiAcknowledgment::Method
Method
Available acknowledgment methods.
Definition: wifi-acknowledgment.h:51
ns3::WifiAcknowledgment::BAR_BLOCK_ACK
@ BAR_BLOCK_ACK
Definition: wifi-acknowledgment.h:55
ns3::WifiDlMuAggregateTf::Copy
std::unique_ptr< WifiAcknowledgment > Copy(void) const override
Clone this object.
Definition: wifi-acknowledgment.cc:302
ns3::WifiNormalAck::WifiNormalAck
WifiNormalAck()
Definition: wifi-acknowledgment.cc:94
ns3::WifiUlMuMultiStaBa::stationsReceivingMultiStaBa
std::map< std::pair< Mac48Address, uint8_t >, std::size_t > stationsReceivingMultiStaBa
Map (originator, tid) pairs to the their index in baType.
Definition: wifi-acknowledgment.h:314
ns3::WifiAcknowledgment::m_ackPolicy
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.
Definition: wifi-acknowledgment.h:120
ns3::WifiAcknowledgment::DL_MU_TF_MU_BAR
@ DL_MU_TF_MU_BAR
Definition: wifi-acknowledgment.h:57
ns3::WifiAcknowledgment::GetQosAckPolicy
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...
Definition: wifi-acknowledgment.cc:42
ns3::WifiDlMuBarBaSequence::BlockAckInfo::blockAckTxVector
WifiTxVector blockAckTxVector
TXVECTOR for the BlockAck frame.
Definition: wifi-acknowledgment.h:217
ns3::WifiAcknowledgment::method
const Method method
acknowledgment method
Definition: wifi-acknowledgment.h:103
ns3::operator<<
std::ostream & operator<<(std::ostream &os, const Angles &a)
Definition: angles.cc:137
ns3::WifiBarBlockAck::baType
BlockAckType baType
BlockAck type.
Definition: wifi-acknowledgment.h:190
ns3::WifiBlockAck::baType
BlockAckType baType
BlockAck type.
Definition: wifi-acknowledgment.h:170
ns3::WifiAcknowledgment::BLOCK_ACK
@ BLOCK_ACK
Definition: wifi-acknowledgment.h:54
ns3::WifiBarBlockAck::blockAckTxVector
WifiTxVector blockAckTxVector
BlockAck TXVECTOR.
Definition: wifi-acknowledgment.h:188
ns3::WifiDlMuBarBaSequence::CheckQosAckPolicy
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 ...
Definition: wifi-acknowledgment.cc:201
ns3::WifiDlMuAggregateTf::ulLength
uint16_t ulLength
the UL Length field of the MU-BAR Trigger Frames
Definition: wifi-acknowledgment.h:295
ns3::WifiDlMuAggregateTf::BlockAckInfo::baType
BlockAckType baType
BlockAck type.
Definition: wifi-acknowledgment.h:290
ns3::WifiNormalAck::Print
void Print(std::ostream &os) const override
Print the object contents.
Definition: wifi-acknowledgment.cc:116
ns3::WifiBlockAck::WifiBlockAck
WifiBlockAck()
Definition: wifi-acknowledgment.cc:125
ns3::WifiDlMuTfMuBar::BlockAckInfo::baType
BlockAckType baType
BlockAck type.
Definition: wifi-acknowledgment.h:258
ns3::WifiDlMuBarBaSequence::WifiDlMuBarBaSequence
WifiDlMuBarBaSequence()
Definition: wifi-acknowledgment.cc:189