A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::WimaxMacQueue Class Reference

#include <wimax-mac-queue.h>

+ Inheritance diagram for ns3::WimaxMacQueue:
+ Collaboration diagram for ns3::WimaxMacQueue:

Classes

struct  QueueElement
 

Public Member Functions

 WimaxMacQueue (void)
 
 WimaxMacQueue (uint32_t maxSize)
 
 ~WimaxMacQueue (void)
 
bool CheckForFragmentation (MacHeaderType::HeaderType packetType)
 Fragmentation utilities. More...
 
Ptr< PacketDequeue (MacHeaderType::HeaderType packetType)
 Dequeue a packet of type packetType from the queue. More...
 
Ptr< PacketDequeue (MacHeaderType::HeaderType packetType, uint32_t availableByte)
 Dequeue a fragment of size availableByte from the queue. More...
 
bool Enqueue (Ptr< Packet > packet, const MacHeaderType &hdrType, const GenericMacHeader &hdr)
 Enqueue a packet. More...
 
uint32_t GetFirstPacketHdrSize (MacHeaderType::HeaderType packetType)
 
uint32_t GetFirstPacketPayloadSize (MacHeaderType::HeaderType packetType)
 
uint32_t GetFirstPacketRequiredByte (MacHeaderType::HeaderType packetType)
 
uint32_t GetMaxSize (void) const
 
uint32_t GetNBytes (void) const
 
const WimaxMacQueue::PacketQueueGetPacketQueue (void) const
 
uint32_t GetQueueLengthWithMACOverhead (void)
 
uint32_t GetSize (void) const
 
bool IsEmpty (void) const
 
bool IsEmpty (MacHeaderType::HeaderType packetType) const
 
Ptr< PacketPeek (GenericMacHeader &hdr) const
 Same as Dequeue but does not pop from queue. More...
 
Ptr< PacketPeek (GenericMacHeader &hdr, Time &timeStamp) const
 
Ptr< PacketPeek (MacHeaderType::HeaderType packetType) const
 Two versions for SS without Generic MAC Header parameter, as SS's scheduler does not require to know the CID in Generic MAC Header. More...
 
Ptr< PacketPeek (MacHeaderType::HeaderType packetType, Time &timeStamp) const
 
void SetFragmentation (MacHeaderType::HeaderType packetType)
 
void SetFragmentNumber (MacHeaderType::HeaderType packetType)
 
void SetFragmentOffset (MacHeaderType::HeaderType packetType, uint32_t offset)
 
void SetMaxSize (uint32_t maxSize)
 set the maximum queue size More...
 
- Public Member Functions inherited from ns3::Object
 Object ()
 
virtual ~Object ()
 
void AggregateObject (Ptr< Object > other)
 
void Dispose (void)
 Run the DoDispose methods of this object and all the objects aggregated to it. More...
 
AggregateIterator GetAggregateIterator (void) const
 
virtual TypeId GetInstanceTypeId (void) const
 
template<typename T >
Ptr< T > GetObject (void) const
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 
void Initialize (void)
 This method calls the virtual DoInitialize method on all the objects aggregated to this object. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) const
 Decrement the reference count. More...
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
void GetAttribute (std::string name, AttributeValue &value) const
 
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
 
void SetAttribute (std::string name, const AttributeValue &value)
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 

Static Public Member Functions

static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 Noop. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Private Types

typedef std::deque< QueueElementPacketQueue
 

Private Member Functions

WimaxMacQueue::QueueElement Front (MacHeaderType::HeaderType packetType) const
 
void Pop (MacHeaderType::HeaderType packetType)
 

Private Attributes

uint32_t m_bytes
 
uint32_t m_maxSize
 
uint32_t m_nrDataPackets
 
uint32_t m_nrRequestPackets
 
PacketQueue m_queue
 
TracedCallback< Ptr< const
Packet > > 
m_traceDequeue
 
TracedCallback< Ptr< const
Packet > > 
m_traceDrop
 
TracedCallback< Ptr< const
Packet > > 
m_traceEnqueue
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 
virtual void DoDispose (void)
 This method is called by Object::Dispose or by the object's destructor, whichever comes first. More...
 
virtual void DoInitialize (void)
 This method is called only once by Object::Initialize. More...
 
virtual void NotifyNewAggregate (void)
 This method is invoked whenever two sets of objects are aggregated together. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 This method is invoked once all member attributes have been initialized. More...
 

Detailed Description

Config Paths

ns3::WimaxMacQueue is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/BasicConnection/TxQueue
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/PrimaryConnection/TxQueue
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/BasicConnection/TxQueue
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/PrimaryConnection/TxQueue
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BroadcastConnection/TxQueue
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/InitialRangingConnection/TxQueue

Attributes

  • MaxSize: Maximum size

TraceSources

  • Enqueue: Enqueue trace
  • Dequeue: Dequeue trace
  • Drop: Drop trace

Definition at line 37 of file wimax-mac-queue.h.

Member Typedef Documentation

typedef std::deque<QueueElement> ns3::WimaxMacQueue::PacketQueue
private

Definition at line 161 of file wimax-mac-queue.h.

Constructor & Destructor Documentation

ns3::WimaxMacQueue::WimaxMacQueue ( void  )

Definition at line 103 of file wimax-mac-queue.cc.

ns3::WimaxMacQueue::WimaxMacQueue ( uint32_t  maxSize)

Definition at line 111 of file wimax-mac-queue.cc.

ns3::WimaxMacQueue::~WimaxMacQueue ( void  )

Definition at line 119 of file wimax-mac-queue.cc.

Member Function Documentation

bool ns3::WimaxMacQueue::CheckForFragmentation ( MacHeaderType::HeaderType  packetType)

Fragmentation utilities.

Definition at line 493 of file wimax-mac-queue.cc.

References ns3::MacHeaderType::GetType(), ns3::WimaxMacQueue::QueueElement::m_fragmentation, ns3::WimaxMacQueue::QueueElement::m_hdrType, m_queue, and NS_LOG_INFO.

Referenced by GetFirstPacketHdrSize(), GetFirstPacketPayloadSize(), and GetQueueLengthWithMACOverhead().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WimaxMacQueue::Enqueue ( Ptr< Packet packet,
const MacHeaderType hdrType,
const GenericMacHeader hdr 
)

Enqueue a packet.

Parameters
packetthe packet to enqueue
hdrTypethe mac header type of the packet
hdrthe header of the packet

Definition at line 136 of file wimax-mac-queue.cc.

References ns3::WimaxMacQueue::QueueElement::GetSize(), ns3::MacHeaderType::GetType(), ns3::MacHeaderType::HEADER_TYPE_GENERIC, m_bytes, m_maxSize, m_nrDataPackets, m_nrRequestPackets, m_queue, m_traceDrop, m_traceEnqueue, and ns3::Simulator::Now().

+ Here is the call graph for this function:

WimaxMacQueue::QueueElement ns3::WimaxMacQueue::Front ( MacHeaderType::HeaderType  packetType) const
private

Definition at line 431 of file wimax-mac-queue.cc.

References ns3::MacHeaderType::GetType(), ns3::WimaxMacQueue::QueueElement::m_hdrType, and m_queue.

Referenced by Dequeue(), and Peek().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint32_t ns3::WimaxMacQueue::GetFirstPacketHdrSize ( MacHeaderType::HeaderType  packetType)
uint32_t ns3::WimaxMacQueue::GetFirstPacketPayloadSize ( MacHeaderType::HeaderType  packetType)
uint32_t ns3::WimaxMacQueue::GetFirstPacketRequiredByte ( MacHeaderType::HeaderType  packetType)

Definition at line 586 of file wimax-mac-queue.cc.

References GetFirstPacketHdrSize(), GetFirstPacketPayloadSize(), and NS_LOG_INFO.

+ Here is the call graph for this function:

uint32_t ns3::WimaxMacQueue::GetMaxSize ( void  ) const
Returns
the maximum queue size

Definition at line 130 of file wimax-mac-queue.cc.

References m_maxSize.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

uint32_t ns3::WimaxMacQueue::GetNBytes ( void  ) const

Definition at line 412 of file wimax-mac-queue.cc.

References m_bytes.

Referenced by GetQueueLengthWithMACOverhead().

+ Here is the caller graph for this function:

const WimaxMacQueue::PacketQueue & ns3::WimaxMacQueue::GetPacketQueue ( void  ) const

Definition at line 487 of file wimax-mac-queue.cc.

References m_queue.

uint32_t ns3::WimaxMacQueue::GetQueueLengthWithMACOverhead ( void  )

Definition at line 417 of file wimax-mac-queue.cc.

References CheckForFragmentation(), GetNBytes(), GetSize(), and ns3::MacHeaderType::HEADER_TYPE_GENERIC.

+ Here is the call graph for this function:

uint32_t ns3::WimaxMacQueue::GetSize ( void  ) const

Definition at line 406 of file wimax-mac-queue.cc.

References m_queue.

Referenced by GetQueueLengthWithMACOverhead().

+ Here is the caller graph for this function:

TypeId ns3::WimaxMacQueue::GetTypeId ( void  )
static

Definition at line 79 of file wimax-mac-queue.cc.

References GetMaxSize(), m_traceDequeue, m_traceDrop, m_traceEnqueue, ns3::MakeTraceSourceAccessor(), SetMaxSize(), and ns3::TypeId::SetParent().

+ Here is the call graph for this function:

bool ns3::WimaxMacQueue::IsEmpty ( void  ) const

Definition at line 466 of file wimax-mac-queue.cc.

References m_queue.

Referenced by Dequeue(), and Peek().

+ Here is the caller graph for this function:

bool ns3::WimaxMacQueue::IsEmpty ( MacHeaderType::HeaderType  packetType) const
Ptr< Packet > ns3::WimaxMacQueue::Peek ( GenericMacHeader hdr) const

Same as Dequeue but does not pop from queue.

Exclusive for BS. Two versions of Peek function (with Generic MAC Header as parameter) only for BS, as BS's scheduler needs to know the CID in Generic MAC Header.

Definition at line 327 of file wimax-mac-queue.cc.

References ns3::Packet::AddHeader(), ns3::Packet::Copy(), IsEmpty(), ns3::WimaxMacQueue::QueueElement::m_hdr, ns3::WimaxMacQueue::QueueElement::m_packet, and m_queue.

+ Here is the call graph for this function:

Ptr< Packet > ns3::WimaxMacQueue::Peek ( GenericMacHeader hdr,
Time timeStamp 
) const
Ptr< Packet > ns3::WimaxMacQueue::Peek ( MacHeaderType::HeaderType  packetType) const

Two versions for SS without Generic MAC Header parameter, as SS's scheduler does not require to know the CID in Generic MAC Header.

Definition at line 362 of file wimax-mac-queue.cc.

References ns3::Packet::AddHeader(), ns3::Packet::Copy(), Front(), ns3::MacHeaderType::GetType(), ns3::MacHeaderType::HEADER_TYPE_GENERIC, IsEmpty(), ns3::WimaxMacQueue::QueueElement::m_hdr, ns3::WimaxMacQueue::QueueElement::m_hdrType, and ns3::WimaxMacQueue::QueueElement::m_packet.

+ Here is the call graph for this function:

void ns3::WimaxMacQueue::Pop ( MacHeaderType::HeaderType  packetType)
private

Definition at line 449 of file wimax-mac-queue.cc.

References ns3::MacHeaderType::GetType(), ns3::WimaxMacQueue::QueueElement::m_hdrType, and m_queue.

Referenced by Dequeue().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WimaxMacQueue::SetFragmentation ( MacHeaderType::HeaderType  packetType)

Definition at line 599 of file wimax-mac-queue.cc.

References m_queue.

Referenced by Dequeue().

+ Here is the caller graph for this function:

void ns3::WimaxMacQueue::SetFragmentNumber ( MacHeaderType::HeaderType  packetType)

Definition at line 613 of file wimax-mac-queue.cc.

References m_queue.

Referenced by Dequeue().

+ Here is the caller graph for this function:

void ns3::WimaxMacQueue::SetFragmentOffset ( MacHeaderType::HeaderType  packetType,
uint32_t  offset 
)

Definition at line 627 of file wimax-mac-queue.cc.

References m_queue.

Referenced by Dequeue().

+ Here is the caller graph for this function:

void ns3::WimaxMacQueue::SetMaxSize ( uint32_t  maxSize)

set the maximum queue size

Parameters
maxSizethe max queue size

Definition at line 124 of file wimax-mac-queue.cc.

References m_maxSize.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

Member Data Documentation

uint32_t ns3::WimaxMacQueue::m_bytes
private

Definition at line 164 of file wimax-mac-queue.h.

Referenced by Dequeue(), Enqueue(), and GetNBytes().

uint32_t ns3::WimaxMacQueue::m_maxSize
private

Definition at line 163 of file wimax-mac-queue.h.

Referenced by Enqueue(), GetMaxSize(), and SetMaxSize().

uint32_t ns3::WimaxMacQueue::m_nrDataPackets
private

Definition at line 165 of file wimax-mac-queue.h.

Referenced by Dequeue(), Enqueue(), and IsEmpty().

uint32_t ns3::WimaxMacQueue::m_nrRequestPackets
private

Definition at line 166 of file wimax-mac-queue.h.

Referenced by Dequeue(), Enqueue(), and IsEmpty().

TracedCallback<Ptr<const Packet> > ns3::WimaxMacQueue::m_traceDequeue
private

Definition at line 169 of file wimax-mac-queue.h.

Referenced by Dequeue(), and GetTypeId().

TracedCallback<Ptr<const Packet> > ns3::WimaxMacQueue::m_traceDrop
private

Definition at line 170 of file wimax-mac-queue.h.

Referenced by Enqueue(), and GetTypeId().

TracedCallback<Ptr<const Packet> > ns3::WimaxMacQueue::m_traceEnqueue
private

Definition at line 168 of file wimax-mac-queue.h.

Referenced by Enqueue(), and GetTypeId().


The documentation for this class was generated from the following files: