30#include "ns3/packet.h"
143 typedef std::list<WifiMacQueueElem>::iterator
Iterator;
203 virtual void Print(std::ostream& os)
const;
A template-based reference counting class.
Simulation virtual time values and global simulation resolution.
This queue implements the timeout procedure described in (Section 9.19.2.6 "Retransmit procedures" pa...
WifiMpdu stores (const) packets along with their Wifi MAC headers and the time when they were enqueue...
Time GetExpiryTime() const
bool IsInFlight() const
Return true if this MPDU is in flight, false otherwise.
DeaggregatedMsdus m_msduList
The list of aggregated MSDUs included in this MPDU.
Ptr< const Packet > m_packet
The packet (MSDU or A-MSDU) contained in this queue item.
WifiMacHeader m_header
Wifi MAC header associated with the packet.
std::list< std::pair< Ptr< constPacket >, AmsduSubframeHeader > >::const_iterator DeaggregatedMsdusCI
DeaggregatedMsdusCI typedef.
const WifiMacHeader & GetHeader() const
Get the header stored in this item.
void Aggregate(Ptr< const WifiMpdu > msdu)
Aggregate the MSDU contained in the given MPDU to this MPDU (thus constituting an A-MSDU).
void ResetInFlight()
Mark this MPDU as not being in flight (only used if Block Ack agreement established).
uint32_t GetSize() const
Return the size of the packet stored by this item, including header size and trailer size.
Ptr< Packet > GetProtocolDataUnit() const
Get the MAC protocol data unit (MPDU) corresponding to this item (i.e.
void DoAggregate(Ptr< const WifiMpdu > msdu)
Aggregate the MSDU contained in the given MPDU to this MPDU (thus constituting an A-MSDU).
std::list< std::pair< Ptr< const Packet >, AmsduSubframeHeader > > DeaggregatedMsdus
DeaggregatedMsdus typedef.
bool m_inFlight
whether the MPDU is in flight
virtual void Print(std::ostream &os) const
Print the item contents.
Iterator GetQueueIt(WmqIteratorTag tag) const
void SetInFlight()
Mark this MPDU as being in flight (only used if Block Ack agreement established).
Ptr< const Packet > GetPacket() const
Get the packet stored in this item.
DeaggregatedMsdusCI end() const
Get a constant iterator indicating past-the-last MSDU in the list of aggregated MSDUs.
DeaggregatedMsdusCI begin() const
Get a constant iterator pointing to the first MSDU in the list of aggregated MSDUs.
uint32_t GetPacketSize() const
Return the size in bytes of the packet or control header or management header stored by this item.
AcIndex GetQueueAc() const
Get the AC of the queue this item is stored into.
std::list< WifiMacQueueElem >::iterator Iterator
Const iterator typedef.
Mac48Address GetDestinationAddress() const
Return the destination address present in the header.
bool IsQueued() const
Return true if this item is stored in some queue, false otherwise.
void SetQueueIt(std::optional< Iterator > queueIt, WmqIteratorTag tag)
Set the queue iterator stored by this object.
bool IsFragment() const
Return true if this item contains an MSDU fragment, false otherwise.
WifiMpdu(Ptr< const Packet > p, const WifiMacHeader &header)
Create a Wifi MAC queue item containing a packet and a Wifi MAC header.
std::optional< Iterator > m_queueIt
Queue iterator pointing to this MPDU, if queued.
Tag used to allow (only) WifiMacQueue to access the queue iterator stored by a WifiMpdu.
AcIndex
This enumeration defines the Access Categories as an enumeration with values corresponding to the AC ...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
std::ostream & operator<<(std::ostream &os, const Angles &a)