a 802.11e-specific queue. More...
#include <wifi-mac-queue.h>
Classes | |
struct | Item |
Public Member Functions | |
WifiMacQueue () | |
~WifiMacQueue () | |
void | SetMaxSize (uint32_t maxSize) |
void | SetMaxDelay (Time delay) |
uint32_t | GetMaxSize (void) const |
Time | GetMaxDelay (void) const |
void | Enqueue (Ptr< const Packet > packet, WifiMacHeader const &hdr) |
Ptr< const Packet > | Dequeue (WifiMacHeader *hdr) |
void | Flush (void) |
bool | IsEmpty (void) |
uint32_t | GetSize (void) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
This method returns the TypeId associated to ns3::Object. | |
Private Types | |
typedef std::deque< struct Item > | PacketQueue |
typedef std::deque< struct Item >::reverse_iterator | PacketQueueRI |
typedef std::deque< struct Item >::iterator | PacketQueueI |
Private Member Functions | |
void | Cleanup (void) |
Private Attributes | |
PacketQueue | m_queue |
WifiMacParameters * | m_parameters |
uint32_t | m_size |
uint32_t | m_maxSize |
Time | m_maxDelay |
a 802.11e-specific queue.
This queue implements what is needed for the 802.11e standard Specifically, it refers to 802.11e/D9, section 9.9.1.6, paragraph 6.
When a packet is received by the MAC, to be sent to the PHY, it is queued in the internal queue after being tagged by the current time.
When a packet is dequeued, the queue checks its timestamp to verify whether or not it should be dropped. If dot11EDCATableMSDULifetime has elapsed, it is dropped. Otherwise, it is returned to the caller.
Definition at line 49 of file wifi-mac-queue.h.
typedef std::deque<struct Item> ns3::WifiMacQueue::PacketQueue [private] |
Definition at line 79 of file wifi-mac-queue.h.
typedef std::deque<struct Item>::iterator ns3::WifiMacQueue::PacketQueueI [private] |
Definition at line 81 of file wifi-mac-queue.h.
typedef std::deque<struct Item>::reverse_iterator ns3::WifiMacQueue::PacketQueueRI [private] |
Definition at line 80 of file wifi-mac-queue.h.
ns3::WifiMacQueue::WifiMacQueue | ( | ) |
Definition at line 55 of file wifi-mac-queue.cc.
ns3::WifiMacQueue::~WifiMacQueue | ( | ) |
Definition at line 59 of file wifi-mac-queue.cc.
References Flush().
void ns3::WifiMacQueue::Cleanup | ( | void | ) | [private] |
Definition at line 98 of file wifi-mac-queue.cc.
References m_maxDelay, m_queue, m_size, and ns3::Now().
Ptr< const Packet > ns3::WifiMacQueue::Dequeue | ( | WifiMacHeader * | hdr | ) |
Definition at line 122 of file wifi-mac-queue.cc.
References Cleanup(), ns3::WifiMacQueue::Item::hdr, m_queue, m_size, and ns3::WifiMacQueue::Item::packet.
void ns3::WifiMacQueue::Enqueue | ( | Ptr< const Packet > | packet, | |
WifiMacHeader const & | hdr | |||
) |
Definition at line 86 of file wifi-mac-queue.cc.
References Cleanup(), m_maxSize, m_queue, m_size, and ns3::Now().
void ns3::WifiMacQueue::Flush | ( | void | ) |
Definition at line 152 of file wifi-mac-queue.cc.
References m_queue, and m_size.
Referenced by ~WifiMacQueue().
Time ns3::WifiMacQueue::GetMaxDelay | ( | void | ) | const |
Definition at line 80 of file wifi-mac-queue.cc.
References m_maxDelay.
uint32_t ns3::WifiMacQueue::GetMaxSize | ( | void | ) | const |
Definition at line 75 of file wifi-mac-queue.cc.
References m_maxSize.
uint32_t ns3::WifiMacQueue::GetSize | ( | void | ) |
Definition at line 146 of file wifi-mac-queue.cc.
References m_size.
TypeId ns3::WifiMacQueue::GetTypeId | ( | void | ) | [static] |
This method returns the TypeId associated to ns3::Object.
No Attributes defined for this type.
No TraceSources defined for this type.
Reimplemented from ns3::Object.
Definition at line 38 of file wifi-mac-queue.cc.
References ns3::TypeId::AddAttribute(), m_maxDelay, m_maxSize, ns3::Seconds(), and ns3::TypeId::SetParent().
bool ns3::WifiMacQueue::IsEmpty | ( | void | ) |
Definition at line 138 of file wifi-mac-queue.cc.
void ns3::WifiMacQueue::SetMaxDelay | ( | Time | delay | ) |
Definition at line 70 of file wifi-mac-queue.cc.
References m_maxDelay.
void ns3::WifiMacQueue::SetMaxSize | ( | uint32_t | maxSize | ) |
Definition at line 65 of file wifi-mac-queue.cc.
References m_maxSize.
Time ns3::WifiMacQueue::m_maxDelay [private] |
Definition at line 86 of file wifi-mac-queue.h.
Referenced by Cleanup(), GetMaxDelay(), GetTypeId(), and SetMaxDelay().
uint32_t ns3::WifiMacQueue::m_maxSize [private] |
Definition at line 85 of file wifi-mac-queue.h.
Referenced by Enqueue(), GetMaxSize(), GetTypeId(), and SetMaxSize().
WifiMacParameters* ns3::WifiMacQueue::m_parameters [private] |
Definition at line 83 of file wifi-mac-queue.h.
PacketQueue ns3::WifiMacQueue::m_queue [private] |
uint32_t ns3::WifiMacQueue::m_size [private] |