A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::PbbAddressBlock Class Referenceabstract

An Address Block and its associated Address TLV Blocks. More...

#include "packetbb.h"

+ Inheritance diagram for ns3::PbbAddressBlock:
+ Collaboration diagram for ns3::PbbAddressBlock:

Public Types

typedef std::list< Address >::iterator AddressIterator
 Address iterator.
 
typedef std::list< Address >::const_iterator ConstAddressIterator
 Address const iterator.
 
typedef std::list< uint8_t >::const_iterator ConstPrefixIterator
 Prefix const iterator.
 
typedef PbbAddressTlvBlock::ConstIterator ConstTlvIterator
 tlvblock const iterator
 
typedef std::list< uint8_t >::iterator PrefixIterator
 Prefix iterator.
 
typedef PbbAddressTlvBlock::Iterator TlvIterator
 tlvblock iterator
 

Public Member Functions

 PbbAddressBlock ()
 
virtual ~PbbAddressBlock ()
 
Address AddressBack () const
 
AddressIterator AddressBegin ()
 
ConstAddressIterator AddressBegin () const
 
void AddressClear ()
 Removes all addresses from this block.
 
bool AddressEmpty () const
 
AddressIterator AddressEnd ()
 
ConstAddressIterator AddressEnd () const
 
AddressIterator AddressErase (AddressIterator first, AddressIterator last)
 Removes all addresses from [first, last) (includes first, not includes last).
 
AddressIterator AddressErase (AddressIterator position)
 Removes the address at the specified position.
 
Address AddressFront () const
 
AddressIterator AddressInsert (AddressIterator position, const Address value)
 Inserts an address at the specified position in this block.
 
void AddressPopBack ()
 Removes an address from the back of this block.
 
void AddressPopFront ()
 Removes an address from the front of this block.
 
void AddressPushBack (Address address)
 Appends an address to the back of this block.
 
void AddressPushFront (Address address)
 Prepends an address to the front of this block.
 
int AddressSize () const
 
void Deserialize (Buffer::Iterator &start)
 Deserializes an address block from the specified buffer.
 
uint32_t GetSerializedSize () const
 
bool operator!= (const PbbAddressBlock &other) const
 Inequality operator for PbbAddressBlock.
 
bool operator== (const PbbAddressBlock &other) const
 Equality operator for PbbAddressBlock.
 
uint8_t PrefixBack () const
 
PrefixIterator PrefixBegin ()
 
ConstPrefixIterator PrefixBegin () const
 
void PrefixClear ()
 Removes all prefixes from this block.
 
bool PrefixEmpty () const
 
PrefixIterator PrefixEnd ()
 
ConstPrefixIterator PrefixEnd () const
 
PrefixIterator PrefixErase (PrefixIterator first, PrefixIterator last)
 Removes all prefixes from [first, last) (includes first, not includes last).
 
PrefixIterator PrefixErase (PrefixIterator position)
 Removes the prefix at the specified position.
 
uint8_t PrefixFront () const
 
PrefixIterator PrefixInsert (PrefixIterator position, const uint8_t value)
 Inserts a prefix at the specified position in this block.
 
void PrefixPopBack ()
 Removes a prefix from the back of this block.
 
void PrefixPopFront ()
 Removes a prefix from the front of this block.
 
void PrefixPushBack (uint8_t prefix)
 Appends a prefix to the back of this block.
 
void PrefixPushFront (uint8_t prefix)
 Prepends a prefix to the front of this block.
 
int PrefixSize () const
 
void Print (std::ostream &os) const
 Pretty-prints the contents of this address block.
 
void Print (std::ostream &os, int level) const
 Pretty-prints the contents of this address block, with specified indentation.
 
void Serialize (Buffer::Iterator &start) const
 Serializes this address block into the specified buffer.
 
Ptr< PbbAddressTlvTlvBack ()
 
const Ptr< PbbAddressTlvTlvBack () const
 
TlvIterator TlvBegin ()
 
ConstTlvIterator TlvBegin () const
 
void TlvClear ()
 Removes all address TLVs from this block.
 
bool TlvEmpty () const
 
TlvIterator TlvEnd ()
 
ConstTlvIterator TlvEnd () const
 
TlvIterator TlvErase (TlvIterator first, TlvIterator last)
 Removes all address TLVs from [first, last) (includes first, not includes last).
 
TlvIterator TlvErase (TlvIterator position)
 Removes the address TLV at the specified position.
 
Ptr< PbbAddressTlvTlvFront ()
 
const Ptr< PbbAddressTlvTlvFront () const
 
TlvIterator TlvInsert (TlvIterator position, const Ptr< PbbTlv > value)
 Inserts an address TLV at the specified position in this block.
 
void TlvPopBack ()
 Removes an address TLV from the back of this message.
 
void TlvPopFront ()
 Removes an address TLV from the front of this message.
 
void TlvPushBack (Ptr< PbbAddressTlv > address)
 Appends an address TLV to the back of this message.
 
void TlvPushFront (Ptr< PbbAddressTlv > address)
 Prepends an address TLV to the front of this message.
 
int TlvSize () const
 
- Public Member Functions inherited from ns3::SimpleRefCount< PbbAddressBlock >
 SimpleRefCount ()
 Default constructor.
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor.
 
uint32_t GetReferenceCount () const
 Get the reference count of the object.
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment operator.
 
void Ref () const
 Increment the reference count.
 
void Unref () const
 Decrement the reference count.
 

Protected Member Functions

virtual Address DeserializeAddress (uint8_t *buffer) const =0
 Deserialize one address.
 
virtual uint8_t GetAddressLength () const =0
 Returns address length.
 
virtual void PrintAddress (std::ostream &os, ConstAddressIterator iter) const =0
 Print one or more addresses.
 
virtual void SerializeAddress (uint8_t *buffer, ConstAddressIterator iter) const =0
 Serialize one or more addresses.
 

Private Member Functions

void GetHeadTail (uint8_t *head, uint8_t &headlen, uint8_t *tail, uint8_t &taillen) const
 Get head and tail.
 
uint8_t GetPrefixFlags () const
 Get the prefix flags.
 
bool HasZeroTail (const uint8_t *tail, uint8_t taillen) const
 Check if the tail is empty.
 

Private Attributes

std::list< Addressm_addressList
 Addresses container.
 
PbbAddressTlvBlock m_addressTlvList
 PbbAddressTlv container.
 
std::list< uint8_t > m_prefixList
 Prefixes container.
 

Detailed Description

An Address Block and its associated Address TLV Blocks.

This is a pure virtual base class, when creating address blocks, you should instantiate either PbbAddressBlockIpv4 or PbbAddressBlockIpv6.

Definition at line 1184 of file packetbb.h.

Member Typedef Documentation

◆ AddressIterator

typedef std::list<Address>::iterator ns3::PbbAddressBlock::AddressIterator

Address iterator.

Definition at line 1188 of file packetbb.h.

◆ ConstAddressIterator

typedef std::list<Address>::const_iterator ns3::PbbAddressBlock::ConstAddressIterator

Address const iterator.

Definition at line 1190 of file packetbb.h.

◆ ConstPrefixIterator

typedef std::list<uint8_t>::const_iterator ns3::PbbAddressBlock::ConstPrefixIterator

Prefix const iterator.

Definition at line 1195 of file packetbb.h.

◆ ConstTlvIterator

tlvblock const iterator

Definition at line 1200 of file packetbb.h.

◆ PrefixIterator

typedef std::list<uint8_t>::iterator ns3::PbbAddressBlock::PrefixIterator

Prefix iterator.

Definition at line 1193 of file packetbb.h.

◆ TlvIterator

tlvblock iterator

Definition at line 1198 of file packetbb.h.

Constructor & Destructor Documentation

◆ PbbAddressBlock()

ns3::PbbAddressBlock::PbbAddressBlock ( )

Definition at line 1808 of file packetbb.cc.

References NS_LOG_FUNCTION.

◆ ~PbbAddressBlock()

ns3::PbbAddressBlock::~PbbAddressBlock ( )
virtual

Definition at line 1813 of file packetbb.cc.

References NS_LOG_FUNCTION.

Member Function Documentation

◆ AddressBack()

Address ns3::PbbAddressBlock::AddressBack ( ) const
Returns
the last address in this block.

Definition at line 1870 of file packetbb.cc.

References m_addressList, and NS_LOG_FUNCTION.

◆ AddressBegin() [1/2]

PbbAddressBlock::AddressIterator ns3::PbbAddressBlock::AddressBegin ( )
Returns
an iterator to the first address in this block.

Definition at line 1821 of file packetbb.cc.

References m_addressList, and NS_LOG_FUNCTION.

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

+ Here is the caller graph for this function:

◆ AddressBegin() [2/2]

PbbAddressBlock::ConstAddressIterator ns3::PbbAddressBlock::AddressBegin ( ) const
Returns
a const iterator to the first address in this block.

Definition at line 1828 of file packetbb.cc.

References m_addressList, and NS_LOG_FUNCTION.

◆ AddressClear()

void ns3::PbbAddressBlock::AddressClear ( )

Removes all addresses from this block.

Definition at line 1920 of file packetbb.cc.

References m_addressList, and NS_LOG_FUNCTION.

◆ AddressEmpty()

bool ns3::PbbAddressBlock::AddressEmpty ( ) const
Returns
true if there are no addresses in this block, false otherwise.

Definition at line 1856 of file packetbb.cc.

References m_addressList, and NS_LOG_FUNCTION.

◆ AddressEnd() [1/2]

PbbAddressBlock::AddressIterator ns3::PbbAddressBlock::AddressEnd ( )
Returns
an iterator to the last address in this block.

Definition at line 1835 of file packetbb.cc.

References m_addressList, and NS_LOG_FUNCTION.

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

+ Here is the caller graph for this function:

◆ AddressEnd() [2/2]

PbbAddressBlock::ConstAddressIterator ns3::PbbAddressBlock::AddressEnd ( ) const
Returns
a const iterator to the last address in this block.

Definition at line 1842 of file packetbb.cc.

References m_addressList, and NS_LOG_FUNCTION.

◆ AddressErase() [1/2]

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

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

Definition at line 1912 of file packetbb.cc.

References m_addressList, and NS_LOG_FUNCTION.

◆ AddressErase() [2/2]

PbbAddressBlock::AddressIterator ns3::PbbAddressBlock::AddressErase ( PbbAddressBlock::AddressIterator position)

Removes the address at the specified position.

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

Definition at line 1905 of file packetbb.cc.

References m_addressList, and NS_LOG_FUNCTION.

◆ AddressFront()

Address ns3::PbbAddressBlock::AddressFront ( ) const
Returns
the first address in this block.

Definition at line 1863 of file packetbb.cc.

References m_addressList, and NS_LOG_FUNCTION.

◆ AddressInsert()

AddressIterator ns3::PbbAddressBlock::AddressInsert ( AddressIterator position,
const Address value )

Inserts an address at the specified position in this block.

Parameters
positionan Iterator pointing to the position in this block to insert the address.
valuethe address to insert.
Returns
An iterator pointing to the newly inserted address.

◆ AddressPopBack()

void ns3::PbbAddressBlock::AddressPopBack ( )

Removes an address from the back of this block.

Definition at line 1898 of file packetbb.cc.

References m_addressList, and NS_LOG_FUNCTION.

◆ AddressPopFront()

void ns3::PbbAddressBlock::AddressPopFront ( )

Removes an address from the front of this block.

Definition at line 1884 of file packetbb.cc.

References m_addressList, and NS_LOG_FUNCTION.

◆ AddressPushBack()

void ns3::PbbAddressBlock::AddressPushBack ( Address address)

Appends an address to the back of this block.

Parameters
addressthe address to append.

Definition at line 1891 of file packetbb.cc.

References m_addressList, and NS_LOG_FUNCTION.

Referenced by Deserialize().

+ Here is the caller graph for this function:

◆ AddressPushFront()

void ns3::PbbAddressBlock::AddressPushFront ( Address address)

Prepends an address to the front of this block.

Parameters
addressthe address to prepend.

Definition at line 1877 of file packetbb.cc.

References m_addressList, and NS_LOG_FUNCTION.

◆ AddressSize()

int ns3::PbbAddressBlock::AddressSize ( ) const
Returns
the number of addresses in this block.

Definition at line 1849 of file packetbb.cc.

References m_addressList, and NS_LOG_FUNCTION.

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

+ Here is the caller graph for this function:

◆ Deserialize()

void ns3::PbbAddressBlock::Deserialize ( Buffer::Iterator & start)

Deserializes an address block 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 2291 of file packetbb.cc.

References AddressPushBack(), AHAS_FULL_TAIL, AHAS_HEAD, AHAS_MULTI_PRE_LEN, AHAS_SINGLE_PRE_LEN, AHAS_ZERO_TAIL, ns3::PbbAddressTlvBlock::Deserialize(), DeserializeAddress(), GetAddressLength(), m_addressTlvList, NS_LOG_FUNCTION, and PrefixPushBack().

+ Here is the call graph for this function:

◆ DeserializeAddress()

virtual Address ns3::PbbAddressBlock::DeserializeAddress ( uint8_t * buffer) const
protectedpure virtual

Deserialize one address.

Parameters
bufferthe buffer to deserialize from
Returns
the address

Implemented in ns3::PbbAddressBlockIpv4, and ns3::PbbAddressBlockIpv6.

Referenced by Deserialize().

+ Here is the caller graph for this function:

◆ GetAddressLength()

virtual uint8_t ns3::PbbAddressBlock::GetAddressLength ( ) const
protectedpure virtual

Returns address length.

Returns
Address length

Implemented in ns3::PbbAddressBlockIpv4, and ns3::PbbAddressBlockIpv6.

Referenced by Deserialize(), GetHeadTail(), GetSerializedSize(), and Serialize().

+ Here is the caller graph for this function:

◆ GetHeadTail()

void ns3::PbbAddressBlock::GetHeadTail ( uint8_t * head,
uint8_t & headlen,
uint8_t * tail,
uint8_t & taillen ) const
private

Get head and tail.

Parameters
headthe head
headlenthe head length
tailthe tail
taillenthe tail length

Definition at line 2444 of file packetbb.cc.

References AddressBegin(), AddressEnd(), GetAddressLength(), NS_LOG_FUNCTION, and SerializeAddress().

Referenced by GetSerializedSize(), and Serialize().

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

◆ GetPrefixFlags()

uint8_t ns3::PbbAddressBlock::GetPrefixFlags ( ) const
private

Get the prefix flags.

Returns
the prefix flags

Definition at line 2426 of file packetbb.cc.

References AHAS_MULTI_PRE_LEN, AHAS_SINGLE_PRE_LEN, NS_LOG_FUNCTION, and PrefixSize().

Referenced by Serialize().

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

◆ GetSerializedSize()

uint32_t ns3::PbbAddressBlock::GetSerializedSize ( ) const
Returns
The size (in bytes) needed to serialize this address block.

Definition at line 2163 of file packetbb.cc.

References AddressSize(), GetAddressLength(), GetHeadTail(), ns3::PbbAddressTlvBlock::GetSerializedSize(), HasZeroTail(), m_addressTlvList, NS_LOG_FUNCTION, and PrefixSize().

+ Here is the call graph for this function:

◆ HasZeroTail()

bool ns3::PbbAddressBlock::HasZeroTail ( const uint8_t * tail,
uint8_t taillen ) const
private

Check if the tail is empty.

Parameters
tailthe tail
taillenthe tail length
Returns
true if the tail is empty

Definition at line 2505 of file packetbb.cc.

References NS_LOG_FUNCTION.

Referenced by GetSerializedSize(), and Serialize().

+ Here is the caller graph for this function:

◆ operator!=()

bool ns3::PbbAddressBlock::operator!= ( const PbbAddressBlock & other) const

Inequality operator for PbbAddressBlock.

Parameters
otherPbbAddressBlock to compare to this one
Returns
true if PbbAddressBlock are not equal

Definition at line 2420 of file packetbb.cc.

◆ operator==()

bool ns3::PbbAddressBlock::operator== ( const PbbAddressBlock & other) const

Equality operator for PbbAddressBlock.

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

Definition at line 2380 of file packetbb.cc.

References AddressBegin(), AddressEnd(), AddressSize(), m_addressTlvList, PrefixBegin(), PrefixEnd(), and PrefixSize().

+ Here is the call graph for this function:

◆ PrefixBack()

uint8_t ns3::PbbAddressBlock::PrefixBack ( ) const
Returns
the last prefix in this block.

Definition at line 1978 of file packetbb.cc.

References m_prefixList, and NS_LOG_FUNCTION.

◆ PrefixBegin() [1/2]

PbbAddressBlock::PrefixIterator ns3::PbbAddressBlock::PrefixBegin ( )
Returns
an iterator to the first prefix in this block.

Definition at line 1929 of file packetbb.cc.

References m_prefixList, and NS_LOG_FUNCTION.

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

+ Here is the caller graph for this function:

◆ PrefixBegin() [2/2]

PbbAddressBlock::ConstPrefixIterator ns3::PbbAddressBlock::PrefixBegin ( ) const
Returns
a const iterator to the first prefix in this block.

Definition at line 1936 of file packetbb.cc.

References m_prefixList, and NS_LOG_FUNCTION.

◆ PrefixClear()

void ns3::PbbAddressBlock::PrefixClear ( )

Removes all prefixes from this block.

Definition at line 2035 of file packetbb.cc.

References m_prefixList, and NS_LOG_FUNCTION.

◆ PrefixEmpty()

bool ns3::PbbAddressBlock::PrefixEmpty ( ) const
Returns
true if there are no prefixes in this block, false otherwise.

Definition at line 1964 of file packetbb.cc.

References m_prefixList, and NS_LOG_FUNCTION.

◆ PrefixEnd() [1/2]

PbbAddressBlock::PrefixIterator ns3::PbbAddressBlock::PrefixEnd ( )
Returns
an iterator to the last prefix in this block.

Definition at line 1943 of file packetbb.cc.

References m_prefixList, and NS_LOG_FUNCTION.

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

+ Here is the caller graph for this function:

◆ PrefixEnd() [2/2]

PbbAddressBlock::ConstPrefixIterator ns3::PbbAddressBlock::PrefixEnd ( ) const
Returns
a const iterator to the last prefix in this block.

Definition at line 1950 of file packetbb.cc.

References m_prefixList, and NS_LOG_FUNCTION.

◆ PrefixErase() [1/2]

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

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

Definition at line 2027 of file packetbb.cc.

References m_prefixList, and NS_LOG_FUNCTION.

◆ PrefixErase() [2/2]

PbbAddressBlock::PrefixIterator ns3::PbbAddressBlock::PrefixErase ( PbbAddressBlock::PrefixIterator position)

Removes the prefix at the specified position.

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

Definition at line 2020 of file packetbb.cc.

References m_prefixList, and NS_LOG_FUNCTION.

◆ PrefixFront()

uint8_t ns3::PbbAddressBlock::PrefixFront ( ) const
Returns
the first prefix in this block.

Definition at line 1971 of file packetbb.cc.

References m_prefixList, and NS_LOG_FUNCTION.

Referenced by Serialize().

+ Here is the caller graph for this function:

◆ PrefixInsert()

PbbAddressBlock::PrefixIterator ns3::PbbAddressBlock::PrefixInsert ( PbbAddressBlock::PrefixIterator position,
const uint8_t value )

Inserts a prefix at the specified position in this block.

Parameters
positionan Iterator pointing to the position in this block to insert the prefix.
valuethe prefix to insert.
Returns
An iterator pointing to the newly inserted prefix.

Definition at line 2013 of file packetbb.cc.

References m_prefixList, and NS_LOG_FUNCTION.

◆ PrefixPopBack()

void ns3::PbbAddressBlock::PrefixPopBack ( )

Removes a prefix from the back of this block.

Definition at line 2006 of file packetbb.cc.

References m_prefixList, and NS_LOG_FUNCTION.

◆ PrefixPopFront()

void ns3::PbbAddressBlock::PrefixPopFront ( )

Removes a prefix from the front of this block.

Definition at line 1992 of file packetbb.cc.

References m_prefixList, and NS_LOG_FUNCTION.

◆ PrefixPushBack()

void ns3::PbbAddressBlock::PrefixPushBack ( uint8_t prefix)

Appends a prefix to the back of this block.

Parameters
prefixthe prefix to append.

Definition at line 1999 of file packetbb.cc.

References m_prefixList, and NS_LOG_FUNCTION.

Referenced by Deserialize().

+ Here is the caller graph for this function:

◆ PrefixPushFront()

void ns3::PbbAddressBlock::PrefixPushFront ( uint8_t prefix)

Prepends a prefix to the front of this block.

Parameters
prefixthe prefix to prepend.

Definition at line 1985 of file packetbb.cc.

References m_prefixList, and NS_LOG_FUNCTION.

◆ PrefixSize()

int ns3::PbbAddressBlock::PrefixSize ( ) const
Returns
the number of prefixes in this block.

Definition at line 1957 of file packetbb.cc.

References m_prefixList, and NS_LOG_FUNCTION.

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

+ Here is the caller graph for this function:

◆ Print() [1/2]

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

Pretty-prints the contents of this address block.

Parameters
osa stream object to print to.

Definition at line 2345 of file packetbb.cc.

References NS_LOG_FUNCTION, and Print().

Referenced by Print().

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

◆ Print() [2/2]

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

Pretty-prints the contents of this address block, 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 2352 of file packetbb.cc.

References AddressBegin(), AddressEnd(), m_addressTlvList, NS_LOG_FUNCTION, PrefixBegin(), PrefixEnd(), ns3::PbbAddressTlvBlock::Print(), and PrintAddress().

+ Here is the call graph for this function:

◆ PrintAddress()

virtual void ns3::PbbAddressBlock::PrintAddress ( std::ostream & os,
ConstAddressIterator iter ) const
protectedpure virtual

Print one or more addresses.

Parameters
osthe output stream
iterthe iterator to the addresses

Implemented in ns3::PbbAddressBlockIpv4, and ns3::PbbAddressBlockIpv6.

Referenced by Print().

+ Here is the caller graph for this function:

◆ Serialize()

void ns3::PbbAddressBlock::Serialize ( Buffer::Iterator & start) const

Serializes this address block 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 2211 of file packetbb.cc.

References AddressBegin(), AddressEnd(), AddressSize(), AHAS_FULL_TAIL, AHAS_HEAD, AHAS_SINGLE_PRE_LEN, AHAS_ZERO_TAIL, GetAddressLength(), GetHeadTail(), GetPrefixFlags(), HasZeroTail(), m_addressTlvList, ns3::Buffer::Iterator::Next(), NS_LOG_FUNCTION, PrefixBegin(), PrefixEnd(), PrefixFront(), PrefixSize(), ns3::PbbAddressTlvBlock::Serialize(), SerializeAddress(), and ns3::Buffer::Iterator::WriteU8().

+ Here is the call graph for this function:

◆ SerializeAddress()

virtual void ns3::PbbAddressBlock::SerializeAddress ( uint8_t * buffer,
ConstAddressIterator iter ) const
protectedpure virtual

Serialize one or more addresses.

Parameters
bufferthe buffer to serialize to
iterthe iterator to the addresses

Implemented in ns3::PbbAddressBlockIpv4, and ns3::PbbAddressBlockIpv6.

Referenced by GetHeadTail(), and Serialize().

+ Here is the caller graph for this function:

◆ TlvBack() [1/2]

Ptr< PbbAddressTlv > ns3::PbbAddressBlock::TlvBack ( )
Returns
a smart pointer to the last address TLV in this message.

Definition at line 2100 of file packetbb.cc.

References ns3::PbbAddressTlvBlock::Back(), m_addressTlvList, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ TlvBack() [2/2]

const Ptr< PbbAddressTlv > ns3::PbbAddressBlock::TlvBack ( ) const
Returns
a const smart pointer to the last address TLV in this message.

Definition at line 2107 of file packetbb.cc.

References ns3::PbbAddressTlvBlock::Back(), m_addressTlvList, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ TlvBegin() [1/2]

PbbAddressBlock::TlvIterator ns3::PbbAddressBlock::TlvBegin ( )
Returns
an iterator to the first address TLV in this block.

Definition at line 2044 of file packetbb.cc.

References ns3::PbbAddressTlvBlock::Begin(), m_addressTlvList, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ TlvBegin() [2/2]

PbbAddressBlock::ConstTlvIterator ns3::PbbAddressBlock::TlvBegin ( ) const
Returns
a const iterator to the first address TLV in this block.

Definition at line 2051 of file packetbb.cc.

References ns3::PbbAddressTlvBlock::Begin(), m_addressTlvList, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ TlvClear()

void ns3::PbbAddressBlock::TlvClear ( )

Removes all address TLVs from this block.

Definition at line 2156 of file packetbb.cc.

References ns3::PbbAddressTlvBlock::Clear(), m_addressTlvList, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ TlvEmpty()

bool ns3::PbbAddressBlock::TlvEmpty ( ) const
Returns
true if there are no address TLVs in this block, false otherwise.

Definition at line 2079 of file packetbb.cc.

References ns3::PbbAddressTlvBlock::Empty(), m_addressTlvList, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ TlvEnd() [1/2]

PbbAddressBlock::TlvIterator ns3::PbbAddressBlock::TlvEnd ( )
Returns
an iterator to the last address TLV in this block.

Definition at line 2058 of file packetbb.cc.

References ns3::PbbAddressTlvBlock::End(), m_addressTlvList, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ TlvEnd() [2/2]

PbbAddressBlock::ConstTlvIterator ns3::PbbAddressBlock::TlvEnd ( ) const
Returns
a const iterator to the last address TLV in this block.

Definition at line 2065 of file packetbb.cc.

References ns3::PbbAddressTlvBlock::End(), m_addressTlvList, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ TlvErase() [1/2]

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

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

Definition at line 2149 of file packetbb.cc.

References ns3::PbbAddressTlvBlock::Erase(), m_addressTlvList, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ TlvErase() [2/2]

PbbAddressBlock::TlvIterator ns3::PbbAddressBlock::TlvErase ( PbbAddressBlock::TlvIterator position)

Removes the address TLV at the specified position.

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

Definition at line 2142 of file packetbb.cc.

References ns3::PbbAddressTlvBlock::Erase(), m_addressTlvList, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ TlvFront() [1/2]

Ptr< PbbAddressTlv > ns3::PbbAddressBlock::TlvFront ( )
Returns
a smart pointer to the first address TLV in this block.

Definition at line 2086 of file packetbb.cc.

References ns3::PbbAddressTlvBlock::Front(), m_addressTlvList, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ TlvFront() [2/2]

const Ptr< PbbAddressTlv > ns3::PbbAddressBlock::TlvFront ( ) const
Returns
a const smart pointer to the first address TLV in this message.

Definition at line 2093 of file packetbb.cc.

References ns3::PbbAddressTlvBlock::Front(), m_addressTlvList, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ TlvInsert()

TlvIterator ns3::PbbAddressBlock::TlvInsert ( TlvIterator position,
const Ptr< PbbTlv > value )

Inserts an address TLV at the specified position in this block.

Parameters
positionan Iterator pointing to the position in this block to insert the address TLV.
valuethe prefix to insert.
Returns
An iterator pointing to the newly inserted address TLV.

◆ TlvPopBack()

void ns3::PbbAddressBlock::TlvPopBack ( )

Removes an address TLV from the back of this message.

Definition at line 2135 of file packetbb.cc.

References m_addressTlvList, NS_LOG_FUNCTION, and ns3::PbbAddressTlvBlock::PopBack().

+ Here is the call graph for this function:

◆ TlvPopFront()

void ns3::PbbAddressBlock::TlvPopFront ( )

Removes an address TLV from the front of this message.

Definition at line 2121 of file packetbb.cc.

References m_addressTlvList, NS_LOG_FUNCTION, and ns3::PbbAddressTlvBlock::PopFront().

+ Here is the call graph for this function:

◆ TlvPushBack()

void ns3::PbbAddressBlock::TlvPushBack ( Ptr< PbbAddressTlv > address)

Appends an address TLV to the back of this message.

Parameters
addressa smart pointer to the address TLV to append.

Definition at line 2128 of file packetbb.cc.

References m_addressTlvList, NS_LOG_FUNCTION, and ns3::PbbAddressTlvBlock::PushBack().

+ Here is the call graph for this function:

◆ TlvPushFront()

void ns3::PbbAddressBlock::TlvPushFront ( Ptr< PbbAddressTlv > address)

Prepends an address TLV to the front of this message.

Parameters
addressa smart pointer to the address TLV to prepend.

Definition at line 2114 of file packetbb.cc.

References m_addressTlvList, NS_LOG_FUNCTION, and ns3::PbbAddressTlvBlock::PushFront().

+ Here is the call graph for this function:

◆ TlvSize()

int ns3::PbbAddressBlock::TlvSize ( ) const
Returns
the number of address TLVs in this block.

Definition at line 2072 of file packetbb.cc.

References m_addressTlvList, NS_LOG_FUNCTION, and ns3::PbbAddressTlvBlock::Size().

+ Here is the call graph for this function:

Member Data Documentation

◆ m_addressList

◆ m_addressTlvList

◆ m_prefixList

std::list<uint8_t> ns3::PbbAddressBlock::m_prefixList
private

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