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

A message within a PbbPacket packet. More...

#include "packetbb.h"

+ Inheritance diagram for ns3::PbbMessage:
+ Collaboration diagram for ns3::PbbMessage:

Public Types

typedef std::list< Ptr< PbbAddressBlock > >::iterator AddressBlockIterator
 PbbAddressBlock iterator. More...
 
typedef std::list< Ptr< PbbAddressBlock > >::const_iterator ConstAddressBlockIterator
 PbbAddressBlock const iterator. More...
 
typedef std::list< Ptr< PbbTlv > >::const_iterator ConstTlvIterator
 PbbTlv const iterator. More...
 
typedef std::list< Ptr< PbbTlv > >::iterator TlvIterator
 PbbTlv iterator. More...
 

Public Member Functions

 PbbMessage ()
 
virtual ~PbbMessage ()
 
Ptr< PbbAddressBlockAddressBlockBack (void)
 
const Ptr< PbbAddressBlockAddressBlockBack (void) const
 
AddressBlockIterator AddressBlockBegin ()
 
ConstAddressBlockIterator AddressBlockBegin () const
 
void AddressBlockClear (void)
 Removes all address blocks from this message. More...
 
bool AddressBlockEmpty (void) const
 
AddressBlockIterator AddressBlockEnd ()
 
ConstAddressBlockIterator AddressBlockEnd () const
 
AddressBlockIterator AddressBlockErase (AddressBlockIterator first, AddressBlockIterator last)
 Removes all address blocks from [first, last) (includes first, not includes last). More...
 
AddressBlockIterator AddressBlockErase (AddressBlockIterator position)
 Removes the address block at the specified position. More...
 
Ptr< PbbAddressBlockAddressBlockFront (void)
 
const Ptr< PbbAddressBlockAddressBlockFront (void) const
 
void AddressBlockPopBack (void)
 Removes an address block from the back of this message. More...
 
void AddressBlockPopFront (void)
 Removes an address block from the front of this message. More...
 
void AddressBlockPushBack (Ptr< PbbAddressBlock > block)
 Appends an address block to the front of this message. More...
 
void AddressBlockPushFront (Ptr< PbbAddressBlock > block)
 Prepends an address block to the front of this message. More...
 
int AddressBlockSize (void) const
 
void Deserialize (Buffer::Iterator &start)
 Deserializes a message from the specified buffer. More...
 
uint8_t GetHopCount (void) const
 
uint8_t GetHopLimit (void) const
 
Address GetOriginatorAddress (void) const
 
uint16_t GetSequenceNumber (void) const
 
uint32_t GetSerializedSize (void) const
 
uint8_t GetType (void) const
 
bool HasHopCount (void) const
 Tests whether or not this message has a hop count. More...
 
bool HasHopLimit (void) const
 Tests whether or not this message has a hop limit. More...
 
bool HasOriginatorAddress (void) const
 Tests whether or not this message has an originator address. More...
 
bool HasSequenceNumber (void) const
 Tests whether or not this message has a sequence number. More...
 
bool operator!= (const PbbMessage &other) const
 Inequality operator for PbbMessage. More...
 
bool operator== (const PbbMessage &other) const
 Equality operator for PbbMessage. More...
 
void Print (std::ostream &os) const
 Pretty-prints the contents of this message. More...
 
void Print (std::ostream &os, int level) const
 Pretty-prints the contents of this message, with specified indentation. More...
 
void Serialize (Buffer::Iterator &start) const
 Serializes this message into the specified buffer. More...
 
void SetHopCount (uint8_t hopcount)
 Sets the current number of hops this message has traveled. More...
 
void SetHopLimit (uint8_t hoplimit)
 Sets the maximum number of hops this message should travel. More...
 
void SetOriginatorAddress (Address address)
 Sets the address for the node that created this packet. More...
 
void SetSequenceNumber (uint16_t seqnum)
 Sets the sequence number of this message. More...
 
void SetType (uint8_t type)
 Sets the type for this message. More...
 
Ptr< PbbTlvTlvBack (void)
 
const Ptr< PbbTlvTlvBack (void) const
 
TlvIterator TlvBegin ()
 
ConstTlvIterator TlvBegin () const
 
void TlvClear (void)
 Removes all message TLVs from this block. More...
 
bool TlvEmpty (void) const
 
TlvIterator TlvEnd ()
 
ConstTlvIterator TlvEnd () const
 
TlvIterator TlvErase (TlvIterator first, TlvIterator last)
 Removes all message TLVs from [first, last) (includes first, not includes last). More...
 
TlvIterator TlvErase (TlvIterator position)
 Removes the message TLV at the specified position. More...
 
Ptr< PbbTlvTlvFront (void)
 
const Ptr< PbbTlvTlvFront (void) const
 
void TlvPopBack (void)
 Removes a message TLV from the back of this message. More...
 
void TlvPopFront (void)
 Removes a message TLV from the front of this message. More...
 
void TlvPushBack (Ptr< PbbTlv > tlv)
 Appends a message TLV to the back of this message. More...
 
void TlvPushFront (Ptr< PbbTlv > tlv)
 Prepends a message TLV to the front of this message. More...
 
int TlvSize (void) const
 
- Public Member Functions inherited from ns3::SimpleRefCount< PbbMessage >
 SimpleRefCount ()
 Default constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o[[maybe_unused]])
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= ([[maybe_unused]] const SimpleRefCount &o)
 Assignment operator. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) const
 Decrement the reference count. More...
 

Static Public Member Functions

static Ptr< PbbMessageDeserializeMessage (Buffer::Iterator &start)
 Deserializes a message, returning the correct object depending on whether it is an IPv4 message or an IPv6 message. More...
 

Protected Member Functions

virtual Ptr< PbbAddressBlockAddressBlockDeserialize (Buffer::Iterator &start) const =0
 Deserialize an address block. More...
 
virtual Address DeserializeOriginatorAddress (Buffer::Iterator &start) const =0
 Deserialize the originator address. More...
 
virtual PbbAddressLength GetAddressLength (void) const =0
 Returns address length (IPV4 3 or IPV6 15) More...
 
virtual void PrintOriginatorAddress (std::ostream &os) const =0
 Print the originator address. More...
 
virtual void SerializeOriginatorAddress (Buffer::Iterator &start) const =0
 Serialize the originator address. More...
 

Private Attributes

std::list< Ptr< PbbAddressBlock > > m_addressBlockList
 PbbAddressBlock container. More...
 
PbbAddressLength m_addrSize
 the address size More...
 
bool m_hasHopCount
 Hop count present. More...
 
bool m_hasHopLimit
 Hop limit present. More...
 
bool m_hasOriginatorAddress
 Originator address present. More...
 
bool m_hasSequenceNumber
 Sequence number present. More...
 
uint8_t m_hopCount
 Hop count. More...
 
uint8_t m_hopLimit
 Hop limit. More...
 
Address m_originatorAddress
 originator address More...
 
uint16_t m_sequenceNumber
 Sequence number. More...
 
PbbTlvBlock m_tlvList
 PbbTlvBlock. More...
 
uint8_t m_type
 the type for this message More...
 

Detailed Description

A message within a PbbPacket packet.

There may be any number of messages in one packet packet. This is a pure virtual base class, when creating a message, you should instantiate either PbbMessageIpv4 or PbbMessageIpv6.

Definition at line 695 of file packetbb.h.

Member Typedef Documentation

◆ AddressBlockIterator

PbbAddressBlock iterator.

Definition at line 703 of file packetbb.h.

◆ ConstAddressBlockIterator

PbbAddressBlock const iterator.

Definition at line 705 of file packetbb.h.

◆ ConstTlvIterator

PbbTlv const iterator.

Definition at line 701 of file packetbb.h.

◆ TlvIterator

PbbTlv iterator.

Definition at line 699 of file packetbb.h.

Constructor & Destructor Documentation

◆ PbbMessage()

ns3::PbbMessage::PbbMessage ( )

◆ ~PbbMessage()

ns3::PbbMessage::~PbbMessage ( )
virtual

Definition at line 1036 of file packetbb.cc.

References AddressBlockClear(), and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

Member Function Documentation

◆ AddressBlockBack() [1/2]

Ptr< PbbAddressBlock > ns3::PbbMessage::AddressBlockBack ( void  )
Returns
a smart pointer to the last address block in this message.

Definition at line 1335 of file packetbb.cc.

References m_addressBlockList, and NS_LOG_FUNCTION.

◆ AddressBlockBack() [2/2]

const Ptr< PbbAddressBlock > ns3::PbbMessage::AddressBlockBack ( void  ) const
Returns
a const smart pointer to the last address block in this message.

Definition at line 1342 of file packetbb.cc.

References m_addressBlockList, and NS_LOG_FUNCTION.

◆ AddressBlockBegin() [1/2]

PbbMessage::AddressBlockIterator ns3::PbbMessage::AddressBlockBegin ( void  )
Returns
an iterator to the first address block in this message.

Definition at line 1279 of file packetbb.cc.

References m_addressBlockList, and NS_LOG_FUNCTION.

Referenced by AddressBlockClear(), GetSerializedSize(), operator==(), Print(), and Serialize().

+ Here is the caller graph for this function:

◆ AddressBlockBegin() [2/2]

PbbMessage::ConstAddressBlockIterator ns3::PbbMessage::AddressBlockBegin ( void  ) const
Returns
a const iterator to the first address block in this message.

Definition at line 1286 of file packetbb.cc.

References m_addressBlockList, and NS_LOG_FUNCTION.

◆ AddressBlockClear()

void ns3::PbbMessage::AddressBlockClear ( void  )

Removes all address blocks from this message.

Definition at line 1392 of file packetbb.cc.

References AddressBlockBegin(), AddressBlockEnd(), m_addressBlockList, and NS_LOG_FUNCTION.

Referenced by ~PbbMessage().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AddressBlockDeserialize()

virtual Ptr<PbbAddressBlock> ns3::PbbMessage::AddressBlockDeserialize ( Buffer::Iterator start) const
protectedpure virtual

Deserialize an address block.

Parameters
startthe buffer iterator start
Returns
the deserialized address block

Implemented in ns3::PbbMessageIpv6, and ns3::PbbMessageIpv4.

Referenced by Deserialize().

+ Here is the caller graph for this function:

◆ AddressBlockEmpty()

bool ns3::PbbMessage::AddressBlockEmpty ( void  ) const
Returns
true if there are no address blocks in this message, false otherwise.

Definition at line 1314 of file packetbb.cc.

References m_addressBlockList, and NS_LOG_FUNCTION.

◆ AddressBlockEnd() [1/2]

PbbMessage::AddressBlockIterator ns3::PbbMessage::AddressBlockEnd ( void  )
Returns
an iterator to the past-the-end address block element in this message.

Definition at line 1293 of file packetbb.cc.

References m_addressBlockList, and NS_LOG_FUNCTION.

Referenced by AddressBlockClear(), GetSerializedSize(), operator==(), Print(), and Serialize().

+ Here is the caller graph for this function:

◆ AddressBlockEnd() [2/2]

PbbMessage::ConstAddressBlockIterator ns3::PbbMessage::AddressBlockEnd ( void  ) const
Returns
a const iterator to the past-the-end address block element in this message.

Definition at line 1300 of file packetbb.cc.

References m_addressBlockList, and NS_LOG_FUNCTION.

◆ AddressBlockErase() [1/2]

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

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

Definition at line 1384 of file packetbb.cc.

References m_addressBlockList, and NS_LOG_FUNCTION.

◆ AddressBlockErase() [2/2]

PbbMessage::AddressBlockIterator ns3::PbbMessage::AddressBlockErase ( PbbMessage::AddressBlockIterator  position)

Removes the address block at the specified position.

Parameters
positionan Iterator pointing to the address block to erase.
Returns
an iterator pointing to the next address block in the message.

Definition at line 1377 of file packetbb.cc.

References m_addressBlockList, and NS_LOG_FUNCTION.

◆ AddressBlockFront() [1/2]

Ptr< PbbAddressBlock > ns3::PbbMessage::AddressBlockFront ( void  )
Returns
a smart pointer to the first address block in this message.

Definition at line 1321 of file packetbb.cc.

References m_addressBlockList, and NS_LOG_FUNCTION.

◆ AddressBlockFront() [2/2]

const Ptr< PbbAddressBlock > ns3::PbbMessage::AddressBlockFront ( void  ) const
Returns
a const smart pointer to the first address block in this message.

Definition at line 1328 of file packetbb.cc.

References m_addressBlockList, and NS_LOG_FUNCTION.

◆ AddressBlockPopBack()

void ns3::PbbMessage::AddressBlockPopBack ( void  )

Removes an address block from the back of this message.

Definition at line 1370 of file packetbb.cc.

References m_addressBlockList, and NS_LOG_FUNCTION.

◆ AddressBlockPopFront()

void ns3::PbbMessage::AddressBlockPopFront ( void  )

Removes an address block from the front of this message.

Definition at line 1356 of file packetbb.cc.

References m_addressBlockList, and NS_LOG_FUNCTION.

◆ AddressBlockPushBack()

void ns3::PbbMessage::AddressBlockPushBack ( Ptr< PbbAddressBlock block)

Appends an address block to the front of this message.

Parameters
blocka smart pointer to the address block to append.

Definition at line 1363 of file packetbb.cc.

References m_addressBlockList, and NS_LOG_FUNCTION.

Referenced by Deserialize().

+ Here is the caller graph for this function:

◆ AddressBlockPushFront()

void ns3::PbbMessage::AddressBlockPushFront ( Ptr< PbbAddressBlock block)

Prepends an address block to the front of this message.

Parameters
blocka smart pointer to the address block to prepend.

Definition at line 1349 of file packetbb.cc.

References m_addressBlockList, and NS_LOG_FUNCTION.

◆ AddressBlockSize()

int ns3::PbbMessage::AddressBlockSize ( void  ) const
Returns
the number of address blocks in this message.

Definition at line 1307 of file packetbb.cc.

References m_addressBlockList, and NS_LOG_FUNCTION.

Referenced by operator==().

+ Here is the caller graph for this function:

◆ Deserialize()

void ns3::PbbMessage::Deserialize ( Buffer::Iterator start)

Deserializes a message from the specified buffer.

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

Users should not need to call this. Blocks will be deserialized by their containing packet.

Definition at line 1534 of file packetbb.cc.

References AddressBlockDeserialize(), AddressBlockPushBack(), ns3::PbbTlvBlock::Deserialize(), DeserializeOriginatorAddress(), m_tlvList, MHAS_HOP_COUNT, MHAS_HOP_LIMIT, MHAS_ORIG, MHAS_SEQ_NUM, NS_LOG_FUNCTION, SetHopCount(), SetHopLimit(), SetOriginatorAddress(), SetSequenceNumber(), SetType(), and visualizer.core::start().

+ Here is the call graph for this function:

◆ DeserializeMessage()

Ptr< PbbMessage > ns3::PbbMessage::DeserializeMessage ( Buffer::Iterator start)
static

Deserializes a message, returning the correct object depending on whether it is an IPv4 message or an IPv6 message.

Parameters
starta reference to the point in a buffer to begin deserializing.
Returns
A pointer to the deserialized message, or 0 on error.

Users should not need to call this. Blocks will be deserialized by their containing packet.

Definition at line 1501 of file packetbb.cc.

References ns3::IPV4, ns3::IPV6, NS_LOG_FUNCTION, and visualizer.core::start().

Referenced by ns3::PbbPacket::Deserialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DeserializeOriginatorAddress()

virtual Address ns3::PbbMessage::DeserializeOriginatorAddress ( Buffer::Iterator start) const
protectedpure virtual

Deserialize the originator address.

Parameters
startthe buffer iterator start
Returns
the deserialized address

Implemented in ns3::PbbMessageIpv6, and ns3::PbbMessageIpv4.

Referenced by Deserialize().

+ Here is the caller graph for this function:

◆ GetAddressLength()

PbbAddressLength ns3::PbbMessage::GetAddressLength ( void  ) const
protectedpure virtual

Returns address length (IPV4 3 or IPV6 15)

Returns message size in bytes - 1 IPv4 = 4 - 1 = 3, IPv6 = 16 - 1 = 15

Returns
Address length (IPV4 3 or IPV6 15)

Implemented in ns3::PbbMessageIpv6, and ns3::PbbMessageIpv4.

Definition at line 1057 of file packetbb.cc.

References m_addrSize, and NS_LOG_FUNCTION.

Referenced by GetSerializedSize(), operator==(), Print(), and Serialize().

+ Here is the caller graph for this function:

◆ GetHopCount()

uint8_t ns3::PbbMessage::GetHopCount ( void  ) const
Returns
the current number of hops this message has traveled.

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

Definition at line 1118 of file packetbb.cc.

References HasHopCount(), m_hopCount, NS_ASSERT, and NS_LOG_FUNCTION.

Referenced by operator==(), Print(), and Serialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHopLimit()

uint8_t ns3::PbbMessage::GetHopLimit ( void  ) const
Returns
the maximum number of hops this message should travel.

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

Definition at line 1095 of file packetbb.cc.

References HasHopLimit(), m_hopLimit, NS_ASSERT, and NS_LOG_FUNCTION.

Referenced by operator==(), Print(), and Serialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOriginatorAddress()

Address ns3::PbbMessage::GetOriginatorAddress ( void  ) const
Returns
the address of the node that created this packet.

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

Definition at line 1072 of file packetbb.cc.

References HasOriginatorAddress(), m_originatorAddress, NS_ASSERT, and NS_LOG_FUNCTION.

Referenced by operator==(), ns3::PbbMessageIpv4::PrintOriginatorAddress(), ns3::PbbMessageIpv6::PrintOriginatorAddress(), ns3::PbbMessageIpv4::SerializeOriginatorAddress(), and ns3::PbbMessageIpv6::SerializeOriginatorAddress().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetSequenceNumber()

uint16_t ns3::PbbMessage::GetSequenceNumber ( void  ) const
Returns
the sequence number of this message.

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 1141 of file packetbb.cc.

References HasSequenceNumber(), m_sequenceNumber, NS_ASSERT, and NS_LOG_FUNCTION.

Referenced by operator==(), Print(), and Serialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetSerializedSize()

uint32_t ns3::PbbMessage::GetSerializedSize ( void  ) const
Returns
The size (in bytes) needed to serialize this message.

Definition at line 1405 of file packetbb.cc.

References AddressBlockBegin(), AddressBlockEnd(), GetAddressLength(), ns3::PbbTlvBlock::GetSerializedSize(), HasHopCount(), HasHopLimit(), HasOriginatorAddress(), HasSequenceNumber(), m_tlvList, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ GetType()

uint8_t ns3::PbbMessage::GetType ( void  ) const
Returns
the type assigned to this packet

Definition at line 1050 of file packetbb.cc.

References m_type, and NS_LOG_FUNCTION.

Referenced by operator==(), Print(), and Serialize().

+ Here is the caller graph for this function:

◆ HasHopCount()

bool ns3::PbbMessage::HasHopCount ( void  ) const

Tests whether or not this message has a hop count.

Returns
true if this message has a hop limit, false otherwise.

Definition at line 1126 of file packetbb.cc.

References m_hasHopCount, and NS_LOG_FUNCTION.

Referenced by GetHopCount(), GetSerializedSize(), operator==(), Print(), and Serialize().

+ Here is the caller graph for this function:

◆ HasHopLimit()

bool ns3::PbbMessage::HasHopLimit ( void  ) const

Tests whether or not this message has a hop limit.

Returns
true if this message has a hop limit, false otherwise.

If this is set, messages should not hop further than this limit.

Definition at line 1103 of file packetbb.cc.

References m_hasHopLimit, and NS_LOG_FUNCTION.

Referenced by GetHopLimit(), GetSerializedSize(), operator==(), Print(), and Serialize().

+ Here is the caller graph for this function:

◆ HasOriginatorAddress()

bool ns3::PbbMessage::HasOriginatorAddress ( void  ) const

Tests whether or not this message has an originator address.

Returns
true if this message has an originator address, false otherwise.

Definition at line 1080 of file packetbb.cc.

References m_hasOriginatorAddress, and NS_LOG_FUNCTION.

Referenced by GetOriginatorAddress(), GetSerializedSize(), operator==(), Print(), and Serialize().

+ Here is the caller graph for this function:

◆ HasSequenceNumber()

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

Tests whether or not this message has a sequence number.

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

Definition at line 1149 of file packetbb.cc.

References m_hasSequenceNumber, and NS_LOG_FUNCTION.

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

+ Here is the caller graph for this function:

◆ operator!=()

bool ns3::PbbMessage::operator!= ( const PbbMessage other) const

Inequality operator for PbbMessage.

Parameters
otherPbbMessage to compare to this one
Returns
true if PbbMessages are not equal

Definition at line 1719 of file packetbb.cc.

◆ operator==()

bool ns3::PbbMessage::operator== ( const PbbMessage other) const

Equality operator for PbbMessage.

Parameters
otherPbbMessage to compare to this one
Returns
true if PbbMessages are equal

Definition at line 1631 of file packetbb.cc.

References AddressBlockBegin(), AddressBlockEnd(), AddressBlockSize(), GetAddressLength(), GetHopCount(), GetHopLimit(), GetOriginatorAddress(), GetSequenceNumber(), GetType(), HasHopCount(), HasHopLimit(), HasOriginatorAddress(), HasSequenceNumber(), and m_tlvList.

+ Here is the call graph for this function:

◆ Print() [1/2]

void ns3::PbbMessage::Print ( std::ostream &  os) const

Pretty-prints the contents of this message.

Parameters
osa stream object to print to.

Definition at line 1576 of file packetbb.cc.

References NS_LOG_FUNCTION.

◆ Print() [2/2]

void ns3::PbbMessage::Print ( std::ostream &  os,
int  level 
) const

Pretty-prints the contents of this message, with specified indentation.

Parameters
osa stream object to print to.
levellevel of indentation.

This probably never needs to be called by users. This is used when recursively printing sub-objects.

Definition at line 1583 of file packetbb.cc.

References AddressBlockBegin(), AddressBlockEnd(), GetAddressLength(), GetHopCount(), GetHopLimit(), GetSequenceNumber(), GetType(), HasHopCount(), HasHopLimit(), HasOriginatorAddress(), HasSequenceNumber(), m_tlvList, NS_LOG_FUNCTION, ns3::PbbTlvBlock::Print(), and PrintOriginatorAddress().

+ Here is the call graph for this function:

◆ PrintOriginatorAddress()

virtual void ns3::PbbMessage::PrintOriginatorAddress ( std::ostream &  os) const
protectedpure virtual

Print the originator address.

Parameters
osthe output stream

Implemented in ns3::PbbMessageIpv6, and ns3::PbbMessageIpv4.

Referenced by Print().

+ Here is the caller graph for this function:

◆ Serialize()

void ns3::PbbMessage::Serialize ( Buffer::Iterator start) const

Serializes this message into the specified buffer.

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

Users should not need to call this. Blocks will be deserialized by their containing packet.

Definition at line 1444 of file packetbb.cc.

References AddressBlockBegin(), AddressBlockEnd(), GetAddressLength(), ns3::Buffer::Iterator::GetDistanceFrom(), GetHopCount(), GetHopLimit(), GetSequenceNumber(), GetType(), HasHopCount(), HasHopLimit(), HasOriginatorAddress(), HasSequenceNumber(), m_tlvList, MHAS_HOP_COUNT, MHAS_HOP_LIMIT, MHAS_ORIG, MHAS_SEQ_NUM, NS_LOG_FUNCTION, ns3::PbbTlvBlock::Serialize(), SerializeOriginatorAddress(), visualizer.core::start(), ns3::Buffer::Iterator::WriteHtonU16(), and ns3::Buffer::Iterator::WriteU8().

+ Here is the call graph for this function:

◆ SerializeOriginatorAddress()

virtual void ns3::PbbMessage::SerializeOriginatorAddress ( Buffer::Iterator start) const
protectedpure virtual

Serialize the originator address.

Parameters
startthe buffer iterator start

Implemented in ns3::PbbMessageIpv6, and ns3::PbbMessageIpv4.

Referenced by Serialize().

+ Here is the caller graph for this function:

◆ SetHopCount()

void ns3::PbbMessage::SetHopCount ( uint8_t  hopcount)

Sets the current number of hops this message has traveled.

Parameters
hopcountthe current number of hops

Definition at line 1110 of file packetbb.cc.

References m_hasHopCount, m_hopCount, and NS_LOG_FUNCTION.

Referenced by Deserialize().

+ Here is the caller graph for this function:

◆ SetHopLimit()

void ns3::PbbMessage::SetHopLimit ( uint8_t  hoplimit)

Sets the maximum number of hops this message should travel.

Parameters
hoplimitthe limit to set

Definition at line 1087 of file packetbb.cc.

References m_hasHopLimit, m_hopLimit, and NS_LOG_FUNCTION.

Referenced by Deserialize().

+ Here is the caller graph for this function:

◆ SetOriginatorAddress()

void ns3::PbbMessage::SetOriginatorAddress ( Address  address)

Sets the address for the node that created this packet.

Parameters
addressthe originator address.

Definition at line 1064 of file packetbb.cc.

References first::address, m_hasOriginatorAddress, m_originatorAddress, and NS_LOG_FUNCTION.

Referenced by Deserialize().

+ Here is the caller graph for this function:

◆ SetSequenceNumber()

void ns3::PbbMessage::SetSequenceNumber ( uint16_t  seqnum)

Sets the sequence number of this message.

Parameters
seqnumthe sequence number to set.

Definition at line 1133 of file packetbb.cc.

References m_hasSequenceNumber, m_sequenceNumber, and NS_LOG_FUNCTION.

Referenced by Deserialize().

+ Here is the caller graph for this function:

◆ SetType()

void ns3::PbbMessage::SetType ( uint8_t  type)

Sets the type for this message.

Parameters
typethe type to set.

Definition at line 1043 of file packetbb.cc.

References m_type, and NS_LOG_FUNCTION.

Referenced by Deserialize().

+ Here is the caller graph for this function:

◆ TlvBack() [1/2]

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

Definition at line 1214 of file packetbb.cc.

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

+ Here is the call graph for this function:

◆ TlvBack() [2/2]

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

Definition at line 1221 of file packetbb.cc.

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

+ Here is the call graph for this function:

◆ TlvBegin() [1/2]

PbbMessage::TlvIterator ns3::PbbMessage::TlvBegin ( void  )
Returns
an iterator to the first message TLV in this message.

Definition at line 1158 of file packetbb.cc.

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

+ Here is the call graph for this function:

◆ TlvBegin() [2/2]

PbbMessage::ConstTlvIterator ns3::PbbMessage::TlvBegin ( void  ) const
Returns
a const iterator to the first message TLV in this message.

Definition at line 1165 of file packetbb.cc.

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

+ Here is the call graph for this function:

◆ TlvClear()

void ns3::PbbMessage::TlvClear ( void  )

Removes all message TLVs from this block.

Definition at line 1270 of file packetbb.cc.

References ns3::PbbTlvBlock::Clear(), m_tlvList, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ TlvEmpty()

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

Definition at line 1193 of file packetbb.cc.

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

+ Here is the call graph for this function:

◆ TlvEnd() [1/2]

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

Definition at line 1172 of file packetbb.cc.

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

+ Here is the call graph for this function:

◆ TlvEnd() [2/2]

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

Definition at line 1179 of file packetbb.cc.

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

+ Here is the call graph for this function:

◆ TlvErase() [1/2]

PbbMessage::TlvIterator ns3::PbbMessage::TlvErase ( PbbMessage::TlvIterator  first,
PbbMessage::TlvIterator  last 
)

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

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

Definition at line 1263 of file packetbb.cc.

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

+ Here is the call graph for this function:

◆ TlvErase() [2/2]

PbbMessage::TlvIterator ns3::PbbMessage::TlvErase ( PbbMessage::TlvIterator  position)

Removes the message TLV at the specified position.

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

Definition at line 1256 of file packetbb.cc.

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

+ Here is the call graph for this function:

◆ TlvFront() [1/2]

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

Definition at line 1200 of file packetbb.cc.

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

+ Here is the call graph for this function:

◆ TlvFront() [2/2]

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

Definition at line 1207 of file packetbb.cc.

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

+ Here is the call graph for this function:

◆ TlvPopBack()

void ns3::PbbMessage::TlvPopBack ( void  )

Removes a message TLV from the back of this message.

Definition at line 1249 of file packetbb.cc.

References m_tlvList, NS_LOG_FUNCTION, and ns3::PbbTlvBlock::PopBack().

+ Here is the call graph for this function:

◆ TlvPopFront()

void ns3::PbbMessage::TlvPopFront ( void  )

Removes a message TLV from the front of this message.

Definition at line 1235 of file packetbb.cc.

References m_tlvList, NS_LOG_FUNCTION, and ns3::PbbTlvBlock::PopFront().

+ Here is the call graph for this function:

◆ TlvPushBack()

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

Appends a message TLV to the back of this message.

Parameters
tlva smart pointer to the message TLV to append.

Definition at line 1242 of file packetbb.cc.

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

+ Here is the call graph for this function:

◆ TlvPushFront()

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

Prepends a message TLV to the front of this message.

Parameters
tlva smart pointer to the message TLV to prepend.

Definition at line 1228 of file packetbb.cc.

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

+ Here is the call graph for this function:

◆ TlvSize()

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

Definition at line 1186 of file packetbb.cc.

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

+ Here is the call graph for this function:

Member Data Documentation

◆ m_addressBlockList

◆ m_addrSize

PbbAddressLength ns3::PbbMessage::m_addrSize
private

the address size

Definition at line 1107 of file packetbb.h.

Referenced by PbbMessage(), and GetAddressLength().

◆ m_hasHopCount

bool ns3::PbbMessage::m_hasHopCount
private

Hop count present.

Definition at line 1115 of file packetbb.h.

Referenced by PbbMessage(), HasHopCount(), and SetHopCount().

◆ m_hasHopLimit

bool ns3::PbbMessage::m_hasHopLimit
private

Hop limit present.

Definition at line 1112 of file packetbb.h.

Referenced by PbbMessage(), HasHopLimit(), and SetHopLimit().

◆ m_hasOriginatorAddress

bool ns3::PbbMessage::m_hasOriginatorAddress
private

Originator address present.

Definition at line 1109 of file packetbb.h.

Referenced by PbbMessage(), HasOriginatorAddress(), and SetOriginatorAddress().

◆ m_hasSequenceNumber

bool ns3::PbbMessage::m_hasSequenceNumber
private

Sequence number present.

Definition at line 1118 of file packetbb.h.

Referenced by PbbMessage(), HasSequenceNumber(), and SetSequenceNumber().

◆ m_hopCount

uint8_t ns3::PbbMessage::m_hopCount
private

Hop count.

Definition at line 1116 of file packetbb.h.

Referenced by GetHopCount(), and SetHopCount().

◆ m_hopLimit

uint8_t ns3::PbbMessage::m_hopLimit
private

Hop limit.

Definition at line 1113 of file packetbb.h.

Referenced by GetHopLimit(), and SetHopLimit().

◆ m_originatorAddress

Address ns3::PbbMessage::m_originatorAddress
private

originator address

Definition at line 1110 of file packetbb.h.

Referenced by GetOriginatorAddress(), and SetOriginatorAddress().

◆ m_sequenceNumber

uint16_t ns3::PbbMessage::m_sequenceNumber
private

Sequence number.

Definition at line 1119 of file packetbb.h.

Referenced by GetSequenceNumber(), and SetSequenceNumber().

◆ m_tlvList

◆ m_type

uint8_t ns3::PbbMessage::m_type
private

the type for this message

Definition at line 1106 of file packetbb.h.

Referenced by GetType(), and SetType().


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