Ipv6QueueDiscItem is a subclass of QueueDiscItem which stores IPv6 packets. More...
#include "ipv6-queue-disc-item.h"
Public Member Functions | |
Ipv6QueueDiscItem (Ptr< Packet > p, const Address &addr, uint16_t protocol, const Ipv6Header &header) | |
Create an IPv6 queue disc item containing an IPv6 packet. More... | |
virtual | ~Ipv6QueueDiscItem () |
virtual void | AddHeader (void) |
Add the header to the packet. More... | |
const Ipv6Header & | GetHeader (void) const |
virtual uint32_t | GetPacketSize (void) const |
virtual bool | GetUint8Value (Uint8Values field, uint8_t &value) const |
Retrieve the value of a given field from the packet, if present. More... | |
virtual void | Print (std::ostream &os) const |
Print the item contents. More... | |
![]() | |
QueueDiscItem (Ptr< Packet > p, const Address &addr, uint16_t protocol) | |
Create a queue disc item. More... | |
virtual | ~QueueDiscItem () |
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... | |
void | SetTxQueueIndex (uint8_t txq) |
Set the transmission queue index to store in this item. More... | |
![]() | |
QueueItem (Ptr< Packet > p) | |
Create a queue item containing a packet. More... | |
virtual | ~QueueItem () |
Ptr< Packet > | GetPacket (void) const |
![]() | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (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 | |
Ipv6QueueDiscItem () | |
Default constructor. More... | |
Ipv6QueueDiscItem (const Ipv6QueueDiscItem &) | |
Copy constructor. More... | |
Ipv6QueueDiscItem & | operator= (const Ipv6QueueDiscItem &) |
Assignment operator. More... | |
Private Attributes | |
Ipv6Header | m_header |
The IPv6 header. More... | |
bool | m_headerAdded |
True if the header has already been added to the packet. More... | |
Additional Inherited Members | |
![]() | |
typedef void(* | TracedCallback) (Ptr< const QueueItem > item) |
TracedCallback signature for Ptr<QueueItem> More... | |
enum | Uint8Values { IP_DSFIELD } |
1-byte fields of the packet whose value can be retrieved, if present More... | |
![]() | |
static void | Cleanup (void) |
Noop. More... | |
Ipv6QueueDiscItem is a subclass of QueueDiscItem which stores IPv6 packets.
Header and payload are kept separate to allow the queue disc to manipulate the header, which is added to the packet when the packet is dequeued.
Definition at line 39 of file ipv6-queue-disc-item.h.
ns3::Ipv6QueueDiscItem::Ipv6QueueDiscItem | ( | Ptr< Packet > | p, |
const Address & | addr, | ||
uint16_t | protocol, | ||
const Ipv6Header & | header | ||
) |
Create an IPv6 queue disc item containing an IPv6 packet.
p | the packet included in the created item. |
addr | the destination MAC address |
protocol | the protocol number |
header | the IPv6 header |
Definition at line 26 of file ipv6-queue-disc-item.cc.
|
virtual |
Definition at line 34 of file ipv6-queue-disc-item.cc.
References NS_LOG_FUNCTION.
|
private |
Default constructor.
Defined and unimplemented to avoid misuse
|
private |
Copy constructor.
Defined and unimplemented to avoid misuse
|
virtual |
Add the header to the packet.
Implements ns3::QueueDiscItem.
Definition at line 57 of file ipv6-queue-disc-item.cc.
References ns3::Packet::AddHeader(), ns3::QueueItem::GetPacket(), m_header, m_headerAdded, NS_ASSERT, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
const Ipv6Header & ns3::Ipv6QueueDiscItem::GetHeader | ( | void | ) | const |
Definition at line 52 of file ipv6-queue-disc-item.cc.
References m_header.
|
virtual |
Reimplemented from ns3::QueueItem.
Definition at line 39 of file ipv6-queue-disc-item.cc.
References ns3::QueueItem::GetPacket(), ns3::Ipv6Header::GetSerializedSize(), ns3::Packet::GetSize(), m_header, m_headerAdded, and NS_ASSERT.
|
virtual |
Retrieve the value of a given field from the packet, if present.
field | the field whose value has to be retrieved |
value | the output parameter to store the retrieved value |
Reimplemented from ns3::QueueItem.
Definition at line 83 of file ipv6-queue-disc-item.cc.
References ns3::Ipv6Header::GetTrafficClass(), ns3::QueueItem::IP_DSFIELD, and m_header.
|
private |
Assignment operator.
Defined and unimplemented to avoid misuse
|
virtual |
Print the item contents.
os | output stream in which the data should be printed. |
Reimplemented from ns3::QueueDiscItem.
Definition at line 69 of file ipv6-queue-disc-item.cc.
References ns3::QueueDiscItem::GetAddress(), ns3::QueueItem::GetPacket(), ns3::QueueDiscItem::GetProtocol(), ns3::QueueDiscItem::GetTxQueueIndex(), m_header, and m_headerAdded.
|
private |
The IPv6 header.
Definition at line 103 of file ipv6-queue-disc-item.h.
Referenced by AddHeader(), GetHeader(), GetPacketSize(), GetUint8Value(), and Print().
|
private |
True if the header has already been added to the packet.
Definition at line 104 of file ipv6-queue-disc-item.h.
Referenced by AddHeader(), GetPacketSize(), and Print().