24 #ifndef WIFI_MAC_QUEUE_ITEM_H
25 #define WIFI_MAC_QUEUE_ITEM_H
27 #include "ns3/nstime.h"
34 class QosBlockedDestinations;
181 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...
WifiMacQueueItem stores (const) packets along with their Wifi MAC headers and the time when they were...
Ptr< const Packet > GetPacket(void) const
Get the packet stored in this item.
uint32_t GetSize(void) const
Return the size of the packet stored by this item, including header size and trailer size.
void Aggregate(Ptr< const WifiMacQueueItem > 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.
DeaggregatedMsdusCI end(void)
Get a constant iterator indicating past-the-last MSDU in the list of aggregated MSDUs.
std::list< QueueIteratorPair > m_queueIts
Queue iterators pointing to this MSDU(s), if queued.
bool IsFragment(void) const
Return true if this item contains an MSDU fragment, false otherwise.
void DoAggregate(Ptr< const WifiMacQueueItem > msdu)
Aggregate the MSDU contained in the given MPDU to this MPDU (thus constituting an A-MSDU).
bool IsQueued(void) const
Return true if this item is stored in some queue, false otherwise.
DeaggregatedMsdus m_msduList
The list of aggregated MSDUs included in this MPDU.
virtual void Print(std::ostream &os) const
Print the item contents.
virtual ~WifiMacQueueItem()
WifiMacQueueItem(Ptr< const Packet > p, const WifiMacHeader &header)
Create a Wifi MAC queue item containing a packet and a Wifi MAC header.
Ptr< Packet > GetProtocolDataUnit(void) const
Get the MAC protocol data unit (MPDU) corresponding to this item (i.e.
Time GetTimeStamp(void) const
Get the timestamp included in this item.
std::list< std::pair< Ptr< const Packet >, AmsduSubframeHeader > >::const_iterator DeaggregatedMsdusCI
DeaggregatedMsdusCI typedef.
DeaggregatedMsdusCI begin(void)
Get a constant iterator pointing to the first MSDU in the list of aggregated MSDUs.
uint32_t GetPacketSize(void) const
Return the size in bytes of the packet or control header or management header stored by this item.
Time m_tstamp
timestamp when the packet arrived at the queue
const std::list< QueueIteratorPair > & GetQueueIteratorPairs(void) const
Get a const reference to the list of iterators pointing to the positions of the items in the queue.
Ptr< const Packet > m_packet
The packet (MSDU or A-MSDU) contained in this queue item.
Mac48Address GetDestinationAddress(void) const
Return the destination address present in the header.
const WifiMacHeader & GetHeader(void) const
Get the header stored in this item.
WifiMacHeader m_header
Wifi MAC header associated with the packet.
std::list< Ptr< WifiMacQueueItem > >::const_iterator ConstIterator
Const iterator typedef.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
std::ostream & operator<<(std::ostream &os, const Angles &a)
Information needed to remove an MSDU from the queue.
WifiMacQueue * queue
pointer to the queue where the MSDU is enqueued
ConstIterator it
iterator pointing to the MSDU in the queue