A Discrete-Event Network Simulator
API
ns3::QueueDiscItem Class Referenceabstract

QueueDiscItem is the abstract base class for items that are stored in a queue disc. More...

#include "queue-disc.h"

+ Inheritance diagram for ns3::QueueDiscItem:
+ Collaboration diagram for ns3::QueueDiscItem:

Public Member Functions

 QueueDiscItem (Ptr< Packet > p, const Address &addr, uint16_t protocol)
 Create a queue disc item. More...
 
virtual ~QueueDiscItem ()
 
virtual void AddHeader (void)=0
 Add the header to the packet. More...
 
Address GetAddress (void) const
 Get the MAC address included in this item. More...
 
uint16_t GetProtocol (void) const
 Get the L3 protocol included in this item. More...
 
uint8_t GetTxQueueIndex (void) const
 Get the transmission queue index included in this item. More...
 
virtual void Print (std::ostream &os) const
 Print the item contents. More...
 
void SetTxQueueIndex (uint8_t txq)
 Set the transmission queue index to store in this item. More...
 
- Public Member Functions inherited from ns3::QueueItem
 QueueItem (Ptr< Packet > p)
 Create a queue item containing a packet. More...
 
virtual ~QueueItem ()
 
Ptr< PacketGetPacket (void) const
 
virtual uint32_t GetPacketSize (void) const
 Use this method (instead of GetPacket ()->GetSize ()) to get the packet size. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< QueueItem >
 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...
 

Private Member Functions

 QueueDiscItem ()
 Default constructor. More...
 
 QueueDiscItem (const QueueDiscItem &)
 Copy constructor. More...
 
QueueDiscItemoperator= (const QueueDiscItem &)
 Assignment operator. More...
 

Private Attributes

Address m_address
 MAC destination address. More...
 
uint16_t m_protocol
 L3 Protocol number. More...
 
uint8_t m_txq
 Transmission queue index. More...
 

Additional Inherited Members

- Public Types inherited from ns3::QueueItem
typedef void(* TracedCallback) (Ptr< const QueueItem > item)
 TracedCallback signature for Ptr<QueueItem> More...
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< QueueItem >
static void Cleanup (void)
 Noop. More...
 

Detailed Description

QueueDiscItem is the abstract base class for items that are stored in a queue disc.

It is derived from QueueItem (which only consists of a Ptr<Packet>) to additionally store the destination MAC address, the L3 protocol number and the transmission queue index,

Definition at line 43 of file queue-disc.h.

Constructor & Destructor Documentation

ns3::QueueDiscItem::QueueDiscItem ( Ptr< Packet p,
const Address addr,
uint16_t  protocol 
)

Create a queue disc item.

Parameters
pthe packet included in the created item.
addrthe destination MAC address
protocolthe L3 protocol number

Definition at line 33 of file queue-disc.cc.

ns3::QueueDiscItem::~QueueDiscItem ( )
virtual

Definition at line 41 of file queue-disc.cc.

References NS_LOG_FUNCTION.

ns3::QueueDiscItem::QueueDiscItem ( )
private

Default constructor.

Defined and unimplemented to avoid misuse

ns3::QueueDiscItem::QueueDiscItem ( const QueueDiscItem )
private

Copy constructor.

Defined and unimplemented to avoid misuse

Member Function Documentation

virtual void ns3::QueueDiscItem::AddHeader ( void  )
pure virtual

Add the header to the packet.

Subclasses may keep header and payload separate to allow manipulating the header, so this method allows to add the header to the packet before sending the packet to the device.

Implemented in ns3::Ipv4QueueDiscItem, ns3::Ipv6QueueDiscItem, CodelQueueDiscTestItem, and RedQueueDiscTestItem.

Address ns3::QueueDiscItem::GetAddress ( void  ) const

Get the MAC address included in this item.

Returns
the MAC address included in this item.

Definition at line 47 of file queue-disc.cc.

References m_address.

Referenced by ns3::Ipv4QueueDiscItem::Print(), and ns3::Ipv6QueueDiscItem::Print().

+ Here is the caller graph for this function:

uint16_t ns3::QueueDiscItem::GetProtocol ( void  ) const

Get the L3 protocol included in this item.

Returns
the L3 protocol included in this item.

Definition at line 53 of file queue-disc.cc.

References m_protocol.

Referenced by ns3::Ipv4QueueDiscItem::Print(), and ns3::Ipv6QueueDiscItem::Print().

+ Here is the caller graph for this function:

uint8_t ns3::QueueDiscItem::GetTxQueueIndex ( void  ) const

Get the transmission queue index included in this item.

Returns
the transmission queue index included in this item.

Definition at line 59 of file queue-disc.cc.

References m_txq.

Referenced by ns3::Ipv4QueueDiscItem::Print(), and ns3::Ipv6QueueDiscItem::Print().

+ Here is the caller graph for this function:

QueueDiscItem& ns3::QueueDiscItem::operator= ( const QueueDiscItem )
private

Assignment operator.

Defined and unimplemented to avoid misuse

Returns
void ns3::QueueDiscItem::Print ( std::ostream &  os) const
virtual

Print the item contents.

Parameters
osoutput stream in which the data should be printed.

Reimplemented from ns3::QueueItem.

Reimplemented in ns3::Ipv4QueueDiscItem, and ns3::Ipv6QueueDiscItem.

Definition at line 71 of file queue-disc.cc.

References ns3::QueueItem::GetPacket(), m_address, m_protocol, and m_txq.

+ Here is the call graph for this function:

void ns3::QueueDiscItem::SetTxQueueIndex ( uint8_t  txq)

Set the transmission queue index to store in this item.

Parameters
txqthe transmission queue index to store in this item.

Definition at line 65 of file queue-disc.cc.

References m_txq.

Member Data Documentation

Address ns3::QueueDiscItem::m_address
private

MAC destination address.

Definition at line 115 of file queue-disc.h.

Referenced by GetAddress(), and Print().

uint16_t ns3::QueueDiscItem::m_protocol
private

L3 Protocol number.

Definition at line 116 of file queue-disc.h.

Referenced by GetProtocol(), and Print().

uint8_t ns3::QueueDiscItem::m_txq
private

Transmission queue index.

Definition at line 117 of file queue-disc.h.

Referenced by GetTxQueueIndex(), Print(), and SetTxQueueIndex().


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