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

Main PacketBB Packet object. More...

#include <packetbb.h>

+ Inheritance diagram for ns3::PbbPacket:

Public Types

typedef std::list< Ptr
< PbbMessage >
>::const_iterator 
ConstMessageIterator
 
typedef std::list< Ptr< PbbTlv >
>::const_iterator 
ConstTlvIterator
 
typedef std::list< Ptr
< PbbMessage > >::iterator 
MessageIterator
 
typedef std::list< Ptr< PbbTlv >
>::iterator 
TlvIterator
 

Public Member Functions

virtual uint32_t Deserialize (Buffer::Iterator start)
 Deserializes a packet from the specified buffer. More...
 
TlvIterator Erase (TlvIterator position)
 Removes the packet TLV at the specified position. More...
 
TlvIterator Erase (TlvIterator first, TlvIterator last)
 Removes all packet TLVs from [first, last) (includes first, not includes last). More...
 
MessageIterator Erase (MessageIterator position)
 Removes the message at the specified position. More...
 
MessageIterator Erase (MessageIterator first, MessageIterator last)
 Removes all messages from [first, last) (includes first, not includes last). More...
 
virtual TypeId GetInstanceTypeId (void) const
 
uint16_t GetSequenceNumber (void) const
 
virtual uint32_t GetSerializedSize (void) const
 
uint8_t GetVersion (void) const
 
bool HasSequenceNumber (void) const
 Tests whether or not this packet has a sequence number. More...
 
Ptr< PbbMessageMessageBack (void)
 
const Ptr< PbbMessageMessageBack (void) const
 
MessageIterator MessageBegin (void)
 
ConstMessageIterator MessageBegin (void) const
 
void MessageClear (void)
 Removes all messages from this packet.
 
bool MessageEmpty (void) const
 
MessageIterator MessageEnd (void)
 
ConstMessageIterator MessageEnd (void) const
 
Ptr< PbbMessageMessageFront (void)
 
const Ptr< PbbMessageMessageFront (void) const
 
void MessagePopBack (void)
 Removes a message from the back of this packet.
 
void MessagePopFront (void)
 Removes a message from the front of this packet.
 
void MessagePushBack (Ptr< PbbMessage > message)
 Appends a message to the back of this packet. More...
 
void MessagePushFront (Ptr< PbbMessage > message)
 Prepends a message to the front of this packet. More...
 
int MessageSize (void) const
 
bool operator!= (const PbbPacket &other) const
 
bool operator== (const PbbPacket &other) const
 
virtual void Print (std::ostream &os) const
 Pretty-prints the contents of this block. More...
 
virtual void Serialize (Buffer::Iterator start) const
 Serializes this packet into the specified buffer. More...
 
void SetSequenceNumber (uint16_t number)
 Sets the sequence number of this packet. More...
 
Ptr< PbbTlvTlvBack (void)
 
const Ptr< PbbTlvTlvBack (void) const
 
TlvIterator TlvBegin (void)
 
ConstTlvIterator TlvBegin (void) const
 
void TlvClear (void)
 Removes all packet TLVs from this packet.
 
bool TlvEmpty (void) const
 
TlvIterator TlvEnd (void)
 
ConstTlvIterator TlvEnd (void) const
 
Ptr< PbbTlvTlvFront (void)
 
const Ptr< PbbTlvTlvFront (void) const
 
void TlvPopBack (void)
 Removes a packet TLV from the back of this block.
 
void TlvPopFront (void)
 Removes a packet TLV from the front of this packet.
 
void TlvPushBack (Ptr< PbbTlv > tlv)
 Appends a packet TLV to the back of this packet. More...
 
void TlvPushFront (Ptr< PbbTlv > tlv)
 Prepends a packet TLV to the front of this packet. More...
 
int TlvSize (void) const
 
- Public Member Functions inherited from ns3::SimpleRefCount< PbbPacket, Header >
 SimpleRefCount (const SimpleRefCount &o)
 
uint32_t GetReferenceCount (void) const
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 
void Ref (void) const
 
void Unref (void) const
 
- Public Member Functions inherited from ns3::ObjectBase
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::SimpleRefCount< PbbPacket, Header >
static void Cleanup (void)
 
- Static Public Member Functions inherited from ns3::Header
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::Chunk
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 

Private Attributes

bool m_hasseqnum
 
std::list< Ptr< PbbMessage > > m_messageList
 
uint16_t m_seqnum
 
PbbTlvBlock m_tlvList
 
uint8_t m_version
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 

Detailed Description

Main PacketBB Packet object.

A PacketBB packet is made up of zero or more packet TLVs (PbbTlv), and zero or more messages (PbbMessage).

See: http://tools.ietf.org/html/rfc5444 for details.

Doxygen introspection did not find any typical Config paths.
No Attributes are defined for this type.
No TraceSources are defined for this type.

Definition at line 364 of file packetbb.h.

Member Function Documentation

uint32_t ns3::PbbPacket::Deserialize ( Buffer::Iterator  start)
virtual

Deserializes a packet from the specified buffer.

Parameters
startstart offset
Returns
the number of bytes deserialized

If this returns a number smaller than the total number of bytes in the buffer, there was an error.

Implements ns3::Header.

Definition at line 916 of file packetbb.cc.

References ns3::PbbTlvBlock::Deserialize(), ns3::PbbMessage::DeserializeMessage(), ns3::Buffer::Iterator::GetDistanceFrom(), ns3::Buffer::Iterator::IsEnd(), MessagePushBack(), NS_LOG_FUNCTION, ns3::Buffer::Iterator::ReadNtohU16(), ns3::Buffer::Iterator::ReadU8(), and SetSequenceNumber().

PbbPacket::MessageIterator ns3::PbbPacket::Erase ( PbbPacket::TlvIterator  position)

Removes the packet TLV at the specified position.

Parameters
positionan Iterator pointing to the packet TLV to erase.
Returns
an iterator pointing to the next packet TLV in the block.

Definition at line 690 of file packetbb.cc.

References ns3::PbbTlvBlock::Erase(), and NS_LOG_FUNCTION.

PbbPacket::MessageIterator ns3::PbbPacket::Erase ( PbbPacket::TlvIterator  first,
PbbPacket::TlvIterator  last 
)

Removes all packet TLVs from [first, last) (includes first, not includes last).

Parameters
firstan Iterator pointing to the first packet TLV to erase (inclusive).
lastan Iterator pointing to the element past the last packet TLV to erase.
Returns
an iterator pointing to the next packet TLV in the block.

Definition at line 697 of file packetbb.cc.

References ns3::PbbTlvBlock::Erase(), and NS_LOG_FUNCTION.

MessageIterator ns3::PbbPacket::Erase ( MessageIterator  position)

Removes the message at the specified position.

Parameters
positionan Iterator pointing to the message to erase.
Returns
an iterator pointing to the next message in the packet.
MessageIterator ns3::PbbPacket::Erase ( MessageIterator  first,
MessageIterator  last 
)

Removes all messages from [first, last) (includes first, not includes last).

Parameters
firstan Iterator pointing to the first message to erase (inclusive).
lastan Iterator pointing to the element past the last message to erase.
Returns
an iterator pointing to the next message in the block.
TypeId ns3::PbbPacket::GetInstanceTypeId ( void  ) const
virtual
Returns
the TypeId associated to the most-derived type of this instance.

This method is typically implemented by ns3::Object::GetInstanceTypeId but some classes which derive from ns3::ObjectBase directly have to implement it themselves.

Implements ns3::ObjectBase.

Definition at line 848 of file packetbb.cc.

uint16_t ns3::PbbPacket::GetSequenceNumber ( void  ) const
Returns
the sequence number of this packet.

Calling this while HasSequenceNumber is False is undefined. Make sure you check it first. This will be checked by an assert in debug builds.

Definition at line 575 of file packetbb.cc.

References HasSequenceNumber(), NS_ASSERT, and NS_LOG_FUNCTION.

Referenced by Print(), and Serialize().

uint32_t ns3::PbbPacket::GetSerializedSize ( void  ) const
virtual
Returns
The size (in bytes) needed to serialize this packet.

Implements ns3::Header.

Definition at line 854 of file packetbb.cc.

References ns3::PbbTlvBlock::GetSerializedSize(), HasSequenceNumber(), MessageBegin(), MessageEnd(), NS_LOG_FUNCTION, and TlvEmpty().

uint8_t ns3::PbbPacket::GetVersion ( void  ) const
Returns
the version of PacketBB that constructed this packet.

This will always return 0 for packets constructed using this API.

Definition at line 560 of file packetbb.cc.

References NS_LOG_FUNCTION.

bool ns3::PbbPacket::HasSequenceNumber ( void  ) const

Tests whether or not this packet has a sequence number.

Returns
true if this packet has a sequence number, false otherwise.

This should be called before calling GetSequenceNumber to make sure there actually is one.

Definition at line 583 of file packetbb.cc.

References NS_LOG_FUNCTION.

Referenced by GetSequenceNumber(), GetSerializedSize(), Print(), and Serialize().

Ptr< PbbMessage > ns3::PbbPacket::MessageBack ( void  )
Returns
a smart pointer to the last message in this packet.

Definition at line 769 of file packetbb.cc.

References NS_LOG_FUNCTION.

const Ptr< PbbMessage > ns3::PbbPacket::MessageBack ( void  ) const
Returns
a const smart pointer to the last message in this packet.

Definition at line 776 of file packetbb.cc.

References NS_LOG_FUNCTION.

PbbPacket::MessageIterator ns3::PbbPacket::MessageBegin ( void  )
Returns
an iterator to the first message in this packet.

Definition at line 713 of file packetbb.cc.

References NS_LOG_FUNCTION.

Referenced by GetSerializedSize(), MessageClear(), Print(), and Serialize().

PbbPacket::ConstMessageIterator ns3::PbbPacket::MessageBegin ( void  ) const
Returns
a const iterator to the first message in this packet.

Definition at line 720 of file packetbb.cc.

References NS_LOG_FUNCTION.

bool ns3::PbbPacket::MessageEmpty ( void  ) const
Returns
true if there are no messages in this packet, false otherwise.

Definition at line 748 of file packetbb.cc.

References NS_LOG_FUNCTION.

PbbPacket::MessageIterator ns3::PbbPacket::MessageEnd ( void  )
Returns
an iterator to the past-the-end element in this message block.

Definition at line 727 of file packetbb.cc.

References NS_LOG_FUNCTION.

Referenced by GetSerializedSize(), MessageClear(), Print(), and Serialize().

PbbPacket::ConstMessageIterator ns3::PbbPacket::MessageEnd ( void  ) const
Returns
a const iterator to the past-the-end element in this message block.

Definition at line 734 of file packetbb.cc.

References NS_LOG_FUNCTION.

Ptr< PbbMessage > ns3::PbbPacket::MessageFront ( void  )
Returns
a smart pointer to the first message in this packet.

Definition at line 755 of file packetbb.cc.

References NS_LOG_FUNCTION.

const Ptr< PbbMessage > ns3::PbbPacket::MessageFront ( void  ) const
Returns
a const smart pointer to the first message in this packet.

Definition at line 762 of file packetbb.cc.

References NS_LOG_FUNCTION.

void ns3::PbbPacket::MessagePushBack ( Ptr< PbbMessage message)

Appends a message to the back of this packet.

Parameters
messagea smart pointer to the message to append.

Definition at line 797 of file packetbb.cc.

References NS_LOG_FUNCTION.

Referenced by Deserialize().

void ns3::PbbPacket::MessagePushFront ( Ptr< PbbMessage message)

Prepends a message to the front of this packet.

Parameters
messagea smart pointer to the message to prepend.

Definition at line 783 of file packetbb.cc.

References NS_LOG_FUNCTION.

int ns3::PbbPacket::MessageSize ( void  ) const
Returns
the number of messages in this packet.

Definition at line 741 of file packetbb.cc.

References NS_LOG_FUNCTION.

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

Pretty-prints the contents of this block.

Parameters
osa stream object to print to.

Implements ns3::Header.

Definition at line 950 of file packetbb.cc.

References GetSequenceNumber(), HasSequenceNumber(), MessageBegin(), MessageEnd(), NS_LOG_FUNCTION, and ns3::PbbTlvBlock::Print().

void ns3::PbbPacket::Serialize ( Buffer::Iterator  start) const
virtual

Serializes this packet into the specified buffer.

Parameters
starta reference to the point in a buffer to begin serializing.

Implements ns3::Header.

Definition at line 881 of file packetbb.cc.

References GetSequenceNumber(), HasSequenceNumber(), MessageBegin(), MessageEnd(), ns3::Buffer::Iterator::Next(), NS_LOG_FUNCTION, ns3::PbbTlvBlock::Serialize(), TlvEmpty(), ns3::Buffer::Iterator::WriteHtonU16(), and ns3::Buffer::Iterator::WriteU8().

void ns3::PbbPacket::SetSequenceNumber ( uint16_t  number)

Sets the sequence number of this packet.

Parameters
numberthe sequence number.

Definition at line 567 of file packetbb.cc.

References NS_LOG_FUNCTION.

Referenced by Deserialize().

Ptr< PbbTlv > ns3::PbbPacket::TlvBack ( void  )
Returns
a smart pointer to the last packet TLV in this packet.

Definition at line 648 of file packetbb.cc.

References ns3::PbbTlvBlock::Back(), and NS_LOG_FUNCTION.

const Ptr< PbbTlv > ns3::PbbPacket::TlvBack ( void  ) const
Returns
a const smart pointer to the last packet TLV in this packet.

Definition at line 655 of file packetbb.cc.

References ns3::PbbTlvBlock::Back(), and NS_LOG_FUNCTION.

PbbPacket::TlvIterator ns3::PbbPacket::TlvBegin ( void  )
Returns
an iterator to the first Packet TLV in this packet.

Definition at line 592 of file packetbb.cc.

References ns3::PbbTlvBlock::Begin(), and NS_LOG_FUNCTION.

PbbPacket::ConstTlvIterator ns3::PbbPacket::TlvBegin ( void  ) const
Returns
a const iterator to the first Packet TLV in this packet.

Definition at line 599 of file packetbb.cc.

References ns3::PbbTlvBlock::Begin(), and NS_LOG_FUNCTION.

bool ns3::PbbPacket::TlvEmpty ( void  ) const
Returns
true if there are no packet TLVs in this packet, false otherwise.

Definition at line 627 of file packetbb.cc.

References ns3::PbbTlvBlock::Empty(), and NS_LOG_FUNCTION.

Referenced by GetSerializedSize(), and Serialize().

PbbPacket::TlvIterator ns3::PbbPacket::TlvEnd ( void  )
Returns
an iterator to the past-the-end element in this packet TLV block.

Definition at line 606 of file packetbb.cc.

References ns3::PbbTlvBlock::End(), and NS_LOG_FUNCTION.

PbbPacket::ConstTlvIterator ns3::PbbPacket::TlvEnd ( void  ) const
Returns
a const iterator to the past-the-end element in this packet TLV block.

Definition at line 613 of file packetbb.cc.

References ns3::PbbTlvBlock::End(), and NS_LOG_FUNCTION.

Ptr< PbbTlv > ns3::PbbPacket::TlvFront ( void  )
Returns
a smart pointer to the first packet TLV in this packet.

Definition at line 634 of file packetbb.cc.

References ns3::PbbTlvBlock::Front(), and NS_LOG_FUNCTION.

const Ptr< PbbTlv > ns3::PbbPacket::TlvFront ( void  ) const
Returns
a const smart pointer to the first packet TLV in this packet.

Definition at line 641 of file packetbb.cc.

References ns3::PbbTlvBlock::Front(), and NS_LOG_FUNCTION.

void ns3::PbbPacket::TlvPushBack ( Ptr< PbbTlv tlv)

Appends a packet TLV to the back of this packet.

Parameters
tlva smart pointer to the packet TLV to append.

Definition at line 676 of file packetbb.cc.

References NS_LOG_FUNCTION, and ns3::PbbTlvBlock::PushBack().

void ns3::PbbPacket::TlvPushFront ( Ptr< PbbTlv tlv)

Prepends a packet TLV to the front of this packet.

Parameters
tlva smart pointer to the packet TLV to prepend.

Definition at line 662 of file packetbb.cc.

References NS_LOG_FUNCTION, and ns3::PbbTlvBlock::PushFront().

int ns3::PbbPacket::TlvSize ( void  ) const
Returns
the number of packet TLVs in this packet.

Definition at line 620 of file packetbb.cc.

References NS_LOG_FUNCTION, and ns3::PbbTlvBlock::Size().


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