23 #include "ns3/simulator.h" 
   24 #include "ns3/packet.h" 
   25 #include "ns3/uinteger.h" 
   48     .AddConstructor<WifiMacQueue> ()
 
   49     .AddAttribute (
"MaxPacketNumber", 
"If a packet arrives when there are already this number of packets, it is dropped.",
 
   52                    MakeUintegerChecker<uint32_t> ())
 
   53     .AddAttribute (
"MaxDelay", 
"If a packet stays longer than this delay in the queue, it is dropped.",
 
  172           if (it->hdr.IsQosData ())
 
  175                   && it->hdr.GetQosTid () == tid)
 
  199           if (it->hdr.IsQosData ())
 
  202                   && it->hdr.GetQosTid () == tid)
 
  238       return it->hdr.GetAddr1 ();
 
  242       return it->hdr.GetAddr2 ();
 
  246       return it->hdr.GetAddr3 ();
 
  255   for (; it != 
m_queue.end (); it++)
 
  257       if (it->packet == packet)
 
  285   uint32_t nPackets = 0;
 
  293               if (it->hdr.IsQosData () && it->hdr.GetQosTid () == tid)
 
  311       if (!it->hdr.IsQosData ()
 
  312           || !blockedPackets->
IsBlocked (it->hdr.GetAddr1 (), it->hdr.GetQosTid ()))
 
  315           timestamp = it->tstamp;
 
  332       if (!it->hdr.IsQosData ()
 
  333           || !blockedPackets->
IsBlocked (it->hdr.GetAddr1 (), it->hdr.GetQosTid ()))
 
  336           timestamp = it->tstamp;
 
keep track of time values and allow control of global simulation resolution 
 
void SetMaxDelay(Time delay)
 
Ptr< const Packet > packet
 
Ptr< const Packet > PeekByTidAndAddress(WifiMacHeader *hdr, uint8_t tid, WifiMacHeader::AddressType type, Mac48Address addr)
 
uint32_t GetNPacketsByTidAndAddress(uint8_t tid, WifiMacHeader::AddressType type, Mac48Address addr)
 
bool Remove(Ptr< const Packet > packet)
 
void SetMaxSize(uint32_t maxSize)
 
Ptr< const Packet > DequeueFirstAvailable(WifiMacHeader *hdr, Time &tStamp, const QosBlockedDestinations *blockedPackets)
 
Ptr< const Packet > DequeueByTidAndAddress(WifiMacHeader *hdr, uint8_t tid, WifiMacHeader::AddressType type, Mac48Address addr)
 
hold objects of type ns3::Time 
 
Hold an unsigned integer type. 
 
NS_OBJECT_ENSURE_REGISTERED(AntennaModel)
 
static TypeId GetTypeId(void)
 
Mac48Address GetAddressForPacket(enum WifiMacHeader::AddressType type, PacketQueueI)
 
uint32_t GetMaxSize(void) const 
 
Ptr< const Packet > Dequeue(WifiMacHeader *hdr)
 
Ptr< const Packet > Peek(WifiMacHeader *hdr)
 
void PushFront(Ptr< const Packet > packet, const WifiMacHeader &hdr)
 
Ptr< const Packet > PeekFirstAvailable(WifiMacHeader *hdr, Time &tStamp, const QosBlockedDestinations *blockedPackets)
 
void Enqueue(Ptr< const Packet > packet, const WifiMacHeader &hdr)
 
Ptr< const AttributeChecker > MakeTimeChecker(const Time min, const Time max)
Helper to make a Time checker with bounded range. Both limits are inclusive. 
 
Time GetMaxDelay(void) const 
 
a base class which provides memory management and object aggregation 
 
a unique identifier for an interface. 
 
TypeId SetParent(TypeId tid)
 
std::list< struct Item >::iterator PacketQueueI
 
Item(Ptr< const Packet > packet, const WifiMacHeader &hdr, Time tstamp)
 
bool IsBlocked(Mac48Address dest, uint8_t tid) const