25 #include "ns3/ipv4-address.h"
26 #include "ns3/ipv6-address.h"
27 #include "ns3/assert.h"
200 size += (*iter)->GetSerializedSize ();
221 (*iter)->Serialize (start);
240 newtlv->Deserialize (start);
257 std::string prefix =
"";
258 for (
int i = 0; i < level; i++)
260 prefix.append (
"\t");
263 os << prefix <<
"TLV Block {" << std::endl;
264 os << prefix <<
"\tsize = " <<
Size () << std::endl;
265 os << prefix <<
"\tmembers [" << std::endl;
269 (*iter)->Print (os, level+2);
272 os << prefix <<
"\t]" << std::endl;
273 os << prefix <<
"}" << std::endl;
286 ti !=
End () && oi != other.
End ();
300 return !(*
this == other);
441 size += (*iter)->GetSerializedSize ();
462 (*iter)->Serialize (start);
481 newtlv->Deserialize (start);
498 std::string prefix =
"";
499 for (
int i = 0; i < level; i++)
501 prefix.append (
"\t");
504 os << prefix <<
"TLV Block {" << std::endl;
505 os << prefix <<
"\tsize = " <<
Size () << std::endl;
506 os << prefix <<
"\tmembers [" << std::endl;
510 (*iter)->Print (os, level+2);
513 os << prefix <<
"\t]" << std::endl;
514 os << prefix <<
"}" << std::endl;
527 it !=
End () && ot != other.
End ();
541 return !(*
this == other);
843 .AddConstructor<PbbPacket> ()
875 size += (*iter)->GetSerializedSize ();
912 (*iter)->Serialize (start);
922 uint8_t flags = start.
ReadU8 ();
934 while (!start.
IsEnd ())
954 os <<
"PbbPacket {" << std::endl;
969 (*iter)->Print (os, 1);
972 os <<
"}" << std::endl;
1020 return !(*
this == other);
1437 size += (*iter)->GetSerializedSize ();
1494 (*iter)->Serialize (start);
1507 uint8_t addrlen = start.
ReadU8 ();
1512 addrlen = (addrlen & 0xf);
1520 newmsg = Create<PbbMessageIpv4> ();
1523 newmsg = Create<PbbMessageIpv6> ();
1529 newmsg->Deserialize (start);
1539 uint8_t flags = start.
ReadU8 ();
1586 std::string prefix =
"";
1587 for (
int i = 0; i < level; i++)
1589 prefix.append (
"\t");
1592 os << prefix <<
"PbbMessage {" << std::endl;
1594 os << prefix <<
"\tmessage type = " << (int)
GetType () << std::endl;
1599 os << prefix <<
"\toriginator address = ";
1606 os << prefix <<
"\thop limit = " << (int)
GetHopLimit () << std::endl;
1611 os << prefix <<
"\thop count = " << (int)
GetHopCount () << std::endl;
1625 (*iter)->Print (os, level+1);
1627 os << prefix <<
"}" << std::endl;
1721 return !(*
this == other);
1776 newab->Deserialize (start);
1832 newab->Deserialize (start);
2205 uint8_t headlen = 0;
2207 uint8_t taillen = 0;
2213 size += 1 + headlen;
2266 uint8_t headlen = 0;
2267 uint8_t taillen = 0;
2275 start.
Write (head, headlen);
2289 start.
Write (tail, taillen);
2327 uint8_t numaddr = start.
ReadU8 ();
2328 uint8_t flags = start.
ReadU8 ();
2332 uint8_t headlen = 0;
2333 uint8_t taillen = 0;
2339 headlen = start.
ReadU8 ();
2340 start.
Read (addrtmp, headlen);
2345 taillen = start.
ReadU8 ();
2347 if (flags & AHAS_FULL_TAIL)
2353 for (
int i = 0; i < numaddr; i++)
2365 for (
int i = 0; i < numaddr; i++)
2388 std::string prefix =
"";
2389 for (
int i = 0; i < level; i++)
2391 prefix.append (
"\t");
2394 os << prefix <<
"PbbAddressBlock {" << std::endl;
2395 os << prefix <<
"\taddresses = " << std::endl;
2400 os << prefix <<
"\t\t";
2405 os << prefix <<
"\tprefixes = " << std::endl;
2410 os << prefix <<
"\t\t" << (int)(*iter) << std::endl;
2462 return !(*
this == other);
2488 uint8_t *tail, uint8_t &taillen)
const
2491 << &tail << static_cast<uint32_t> (taillen));
2510 for (i = 0; i < headlen; i++)
2512 if (buflast[i] != bufcur[i])
2526 if (buflast[i] != bufcur[i])
2533 else if (headlen == 0)
2544 memcpy (head, bufcur, headlen);
2556 for (i = 0; i < taillen; i++)
2563 return i == taillen;
2894 uint8_t flags = start.
ReadU8 ();
2944 std::string prefix =
"";
2945 for (
int i = 0; i < level; i++)
2947 prefix.append (
"\t");
2950 os << prefix <<
"PbbTlv {" << std::endl;
2951 os << prefix <<
"\ttype = " << (int)
GetType () << std::endl;
2955 os << prefix <<
"\ttypeext = " << (int)
GetTypeExt () << std::endl;
2960 os << prefix <<
"\tindexStart = " << (int)
GetIndexStart () << std::endl;
2965 os << prefix <<
"\tindexStop = " << (int)
GetIndexStop () << std::endl;
2968 os << prefix <<
"\tisMultivalue = " <<
IsMultivalue () << std::endl;
2972 os << prefix <<
"\thas value; size = " <<
GetValue ().
GetSize () << std::endl;
2975 os << prefix <<
"}" << std::endl;
3026 return !(*
this == other);
bool m_hasOriginatorAddress
static const uint8_t THAS_MULTI_INDEX
PrefixIterator PrefixEnd(void)
AddressBlockIterator AddressBlockEnd()
static Ipv4Address Deserialize(const uint8_t buf[4])
void Print(std::ostream &os) const
Pretty-prints the contents of this message.
void TlvPushBack(Ptr< PbbTlv > tlv)
Appends a packet TLV to the back of this packet.
void AddressBlockPushBack(Ptr< PbbAddressBlock > block)
Appends an address block to the front of this message.
TlvIterator TlvBegin(void)
std::list< Ptr< PbbTlv > >::iterator Iterator
smart pointer class similar to boost::intrusive_ptr
#define NS_LOG_FUNCTION(parameters)
void MessagePushFront(Ptr< PbbMessage > message)
Prepends a message to the front of this packet.
Ptr< PbbMessage > MessageBack(void)
std::list< Ptr< PbbMessage > >::const_iterator ConstMessageIterator
This is a PbbMessageIterator for PbbPacket.
void PushFront(Ptr< PbbTlv > tlv)
Prepends a TLV to the front of this block.
uint16_t GetSequenceNumber(void) const
void RemoveAtEnd(uint32_t end)
static const uint8_t AHAS_HEAD
Main PacketBB Packet object.
static const uint8_t THAS_TYPE_EXT
virtual Address DeserializeOriginatorAddress(Buffer::Iterator &start) const
bool HasIndexStart(void) const
void MessagePushBack(Ptr< PbbMessage > message)
Appends a message to the back of this packet.
void PopFront(void)
Removes an AddressTLV from the front of this block.
uint32_t GetSerializedSize(void) const
virtual ~PbbMessageIpv6()
bool IsMultivalue(void) const
virtual ~PbbAddressBlockIpv6()
void PushFront(Ptr< PbbAddressTlv > tlv)
Prepends an Address TLV to the front of this block.
void SetSequenceNumber(uint16_t number)
Sets the sequence number of this packet.
static Ipv6Address Deserialize(const uint8_t buf[16])
Deserialize this address.
bool HasSequenceNumber(void) const
Tests whether or not this message has a sequence number.
void SetIndexStop(uint8_t index)
virtual Address DeserializeOriginatorAddress(Buffer::Iterator &start) const =0
automatically resized byte buffer
int PrefixSize(void) const
~PbbAddressTlvBlock(void)
void AddressBlockPopBack(void)
Removes an address block from the back of this message.
void SetIndexStop(uint8_t index)
Sets the index of the last address in the associated address block that this address TLV applies to...
static const uint8_t VERSION
bool TlvEmpty(void) const
#define NS_ASSERT(condition)
NS_OBJECT_ENSURE_REGISTERED(NullMessageSimulatorImpl)
void TlvPushFront(Ptr< PbbTlv > tlv)
Prepends a packet TLV to the front of this packet.
virtual void SerializeOriginatorAddress(Buffer::Iterator &start) const
PbbAddressLength
Used in Messages to determine whether it contains IPv4 or IPv6 addresses.
std::list< Address > m_addressList
Ptr< PbbAddressBlock > AddressBlockBack(void)
void PrefixPopBack(void)
Removes a prefix from the back of this block.
static const uint8_t AHAS_SINGLE_PRE_LEN
bool HasTypeExt(void) const
Tests whether or not this TLV has a type extension.
AddressIterator AddressEnd(void)
void SetMultivalue(bool isMultivalue)
Sets whether or not this address TLV is "multivalue".
A message within a PbbPacket packet.
void MessageClear(void)
Removes all messages from this packet.
void PushBack(Ptr< PbbTlv > tlv)
Appends a TLV to the back of this block.
std::list< Ptr< PbbTlv > >::const_iterator ConstIterator
this is an iterator
Ptr< PbbAddressTlv > Back(void) const
NS_LOG_COMPONENT_DEFINE("PacketBB")
bool operator!=(const PbbAddressBlock &other) const
Inequality operator for PbbAddressBlock.
static const uint8_t PHAS_SEQ_NUM
void Print(std::ostream &os) const
Pretty-prints the contents of this block.
bool HasIndexStart(void) const
Tests whether or not this address TLV has a start index.
bool HasIndexStop(void) const
Tests whether or not this address TLV has a stop index.
std::list< Ptr< PbbAddressBlock > >::const_iterator ConstAddressBlockIterator
This is a PbbAddressBlock iterator for PbbMessage.
static const uint8_t MHAS_HOP_LIMIT
uint8_t GetIndexStart(void) const
void SetMultivalue(bool isMultivalue)
void MessagePopFront(void)
Removes a message from the front of this packet.
void SetSequenceNumber(uint16_t seqnum)
Sets the sequence number of this message.
static const uint8_t AHAS_FULL_TAIL
void TlvPopBack(void)
Removes a message TLV from the back of this message.
uint8_t GetIndexStart(void) const
std::list< Ptr< PbbMessage > >::iterator MessageIterator
This is a const PbbTlv iterator for PbbPacket.
Ptr< PbbAddressTlv > TlvFront(void)
std::list< uint8_t > m_prefixList
std::list< Ptr< PbbAddressBlock > >::iterator AddressBlockIterator
This is a const PbbTlv iterator for PbbMessage.
bool IsMultivalue(void) const
Tests whether or not this address TLV is "multivalue".
uint32_t GetDistanceFrom(Iterator const &o) const
Ptr< PbbTlv > TlvBack(void)
iterator in a Buffer instance
a polymophic address class
PbbAddressTlvBlock(void)
This is a const PbbAddressTlv iterator for PbbAddressTlvBlock.
virtual void PrintAddress(std::ostream &os, ConstAddressIterator iter) const
MessageIterator MessageEnd(void)
uint16_t m_sequenceNumber
AddressBlockIterator AddressBlockBegin()
static const uint8_t TIS_MULTIVALUE
virtual Address DeserializeAddress(uint8_t *buffer) const =0
void SetType(uint8_t type)
Sets the type of this TLV.
void PopBack(void)
Removes an Address TLV from the back of this block.
bool TlvEmpty(void) const
static const uint8_t AHAS_ZERO_TAIL
bool AddressEmpty(void) const
void AddressBlockClear(void)
Removes all address blocks from this message.
Address GetOriginatorAddress(void) const
uint8_t GetTypeExt(void) const
virtual PbbAddressLength GetAddressLength(void) const
Returns address length (IPV4 3 or IPV6 15)
void TlvPushFront(Ptr< PbbAddressTlv > address)
Prepends an address TLV to the front of this message.
std::list< Address >::const_iterator ConstAddressIterator
this is an address iterator for PbbAddressBlock
Iterator Erase(Iterator position)
Removes the Address TLV at the specified position.
virtual void SerializeAddress(uint8_t *buffer, ConstAddressIterator iter) const
bool operator!=(const PbbTlv &other) const
Inequality operator for PbbTlv.
void AddressPopFront(void)
Removes an address from the front of this block.
TlvIterator TlvBegin(void)
PbbTlvBlock(void)
this is a const iterator
std::list< Address >::iterator AddressIterator
TlvIterator Erase(TlvIterator position)
Removes the packet TLV at the specified position.
bool operator==(const PbbMessage &other) const
Equality operator for PbbMessage.
virtual void PrintAddress(std::ostream &os, ConstAddressIterator iter) const
void SetIndexStart(uint8_t index)
Sets the index of the first address in the associated address block that this address TLV applies to...
static const uint8_t THAS_EXT_LEN
bool operator!=(const PbbPacket &other) const
Inequality operator for PbbPacket.
void Prev(void)
go backward by one byte
Ptr< PbbAddressTlv > TlvBack(void)
static const uint8_t MHAS_ORIG
uint8_t GetVersion(void) const
virtual uint8_t GetAddressLength(void) const
Returns address length.
void PushBack(Ptr< PbbAddressTlv > tlv)
Appends an Address TLV to the back of this block.
void SetType(uint8_t type)
Sets the type for this message.
std::list< Ptr< PbbTlv > >::iterator TlvIterator
void Serialize(Buffer::Iterator &start) const
Serializes this message into the specified buffer.
void TlvPopBack(void)
Removes an address TLV from the back of this message.
virtual Ptr< PbbAddressBlock > AddressBlockDeserialize(Buffer::Iterator &start) const
uint16_t GetSequenceNumber(void) const
int MessageSize(void) const
void AddressPushBack(Address address)
Appends an address to the back of this block.
void WriteHtonU16(uint16_t data)
Address AddressFront(void) const
void TlvClear(void)
Removes all message TLVs from this block.
Ptr< PbbAddressBlock > AddressBlockFront(void)
bool TlvEmpty(void) const
uint8_t const * PeekData(void) const
uint8_t PrefixBack(void) const
PbbAddressLength m_addrSize
Ptr< PbbTlv > Front(void) const
bool operator==(const PbbTlvBlock &other) const
Equality operator for PbbTlvBlock.
std::list< uint8_t >::const_iterator ConstPrefixIterator
this is a prefix iterator for PbbAddressBlock
bool HasHopCount(void) const
Tests whether or not this message has a hop count.
void Next(void)
go forward by one byte
virtual void PrintAddress(std::ostream &os, ConstAddressIterator iter) const =0
uint8_t GetType(void) const
void Print(std::ostream &os) const
Print this address to the given output stream.
Ptr< PbbTlv > Back(void) const
void Serialize(uint8_t buf[4]) const
Serialize this address to a 4-byte buffer.
void Deserialize(Buffer::Iterator &start)
Deserializes a block from the specified buffer.
std::list< Ptr< PbbTlv > >::iterator TlvIterator
uint32_t GetSerializedSize(void) const
void Print(std::ostream &os) const
Print this address to the given output stream.
int AddressBlockSize(void) const
void Deserialize(Buffer::Iterator &start)
Deserializes a block from the specified buffer.
virtual Ptr< PbbAddressBlock > AddressBlockDeserialize(Buffer::Iterator &start) const =0
static const uint8_t THAS_SINGLE_INDEX
virtual uint32_t GetSerializedSize(void) const
Buffer::Iterator Begin(void) const
virtual PbbAddressLength GetAddressLength(void) const
Returns address length (IPV4 3 or IPV6 15)
void Deserialize(Buffer::Iterator &start)
Deserializes a message from the specified buffer.
void TlvPopFront(void)
Removes a message TLV from the front of this message.
bool HasValue(void) const
Tests whether or not this TLV has a value.
virtual void SerializeOriginatorAddress(Buffer::Iterator &start) const
virtual void SerializeAddress(uint8_t *buffer, ConstAddressIterator iter) const =0
virtual ~PbbAddressBlock()
void Deserialize(Buffer::Iterator &start)
Deserializes a TLV from the specified buffer.
void TlvPopBack(void)
Removes a packet TLV from the back of this block.
void SetHopLimit(uint8_t hoplimit)
Sets the maximum number of hops this message should travel.
bool HasOriginatorAddress(void) const
Tests whether or not this message has an originator address.
uint8_t PrefixFront(void) const
void PrefixPushFront(uint8_t prefix)
Prepends a prefix to the front of this block.
std::list< Ptr< PbbAddressTlv > >::iterator Iterator
PbbAddressTlvBlock::Iterator TlvIterator
this is a const prefix iterator for PbbAddressBlock
bool HasHopLimit(void) const
Tests whether or not this message has a hop limit.
AddressBlockIterator AddressBlockErase(AddressBlockIterator position)
Removes the address block at the specified position.
void Serialize(Buffer::Iterator &start) const
Serializes this address block into the specified buffer.
void Print(std::ostream &os) const
Pretty-prints the contents of this TLV.
virtual void PrintOriginatorAddress(std::ostream &os) const
void Print(std::ostream &os) const
Pretty-prints the contents of this address block.
static const uint8_t MHAS_SEQ_NUM
PbbAddressTlvBlock m_addressTlvList
virtual ~PbbMessageIpv4()
void TlvClear(void)
Removes all address TLVs from this block.
bool operator==(const PbbPacket &other) const
Equality operator for PbbPacket.
uint32_t GetSerializedSize(void) const
void PrefixPushBack(uint8_t prefix)
Appends a prefix to the back of this block.
void Read(uint8_t *buffer, uint32_t size)
PbbMessage()
This is a const PbbAddressBlock iterator for PbbMessage.
std::list< Ptr< PbbAddressTlv > > m_tlvList
PbbAddressBlock()
this is a const tlvblock iterator for PbbAddressBlock
void AddressBlockPopFront(void)
Removes an address block from the front of this message.
bool operator!=(const PbbTlvBlock &other) const
Inequality operator for PbbTlvBlock.
Address m_originatorAddress
A block of packet or message TLVs (PbbTlv).
uint8_t GetType(void) const
bool MessageEmpty(void) const
uint32_t GetSize(void) const
uint8_t GetIndexStop(void) const
std::list< Ptr< PbbMessage > > m_messageList
void Print(std::ostream &os) const
Pretty-prints the contents of this block.
void SetIndexStart(uint8_t index)
void TlvPushBack(Ptr< PbbAddressTlv > address)
Appends an address TLV to the back of this message.
std::list< Ptr< PbbTlv > > m_tlvList
int AddressSize(void) const
std::list< Ptr< PbbAddressBlock > > m_addressBlockList
bool operator!=(const PbbAddressTlvBlock &other) const
Inequality operator for PbbAddressTlvBlock.
A block of Address TLVs (PbbAddressTlv).
uint8_t GetHopCount(void) const
bool HasSequenceNumber(void) const
Tests whether or not this packet has a sequence number.
void PopBack(void)
Removes a TLV from the back of this block.
void TlvPopFront(void)
Removes a packet TLV from the front of this packet.
bool operator==(const PbbTlv &other) const
Equality operator for PbbTlv.
uint8_t GetHopLimit(void) const
PbbAddressTlvBlock::ConstIterator ConstTlvIterator
this is a tlvblock iterator for PbbAddressBlock
virtual ~PbbAddressBlockIpv4()
virtual void PrintOriginatorAddress(std::ostream &os) const =0
void WriteU8(uint8_t data)
PrefixIterator PrefixInsert(PrefixIterator position, const uint8_t value)
Inserts a prefix at the specified position in this block.
Ptr< PbbTlv > TlvBack(void)
TlvIterator TlvErase(TlvIterator position)
Removes the message TLV at the specified position.
uint32_t GetSerializedSize(void) const
void AddressBlockPushFront(Ptr< PbbAddressBlock > block)
Prepends an address block to the front of this message.
static const uint8_t THAS_VALUE
void MessagePopBack(void)
Removes a message from the back of this packet.
Ptr< PbbTlv > TlvFront(void)
virtual void SerializeAddress(uint8_t *buffer, ConstAddressIterator iter) const
Iterator Insert(Iterator position, const Ptr< PbbAddressTlv > tlv)
Inserts an Address TLV at the specified position in this block.
virtual PbbAddressLength GetAddressLength(void) const =0
Returns address length (IPV4 3 or IPV6 15)
void SetTypeExt(uint8_t type)
Sets the type extension of this TLV.
AddressIterator AddressBegin(void)
void AddressClear(void)
Removes all addresses from this block.
virtual void SerializeOriginatorAddress(Buffer::Iterator &start) const =0
void SetHopCount(uint8_t hopcount)
Sets the current number of hops this message has traveled.
virtual uint8_t GetAddressLength(void) const =0
Returns address length.
Ptr< PbbTlv > TlvFront(void)
bool operator!=(const PbbMessage &other) const
Inequality operator for PbbMessage.
void PrefixPopFront(void)
Removes a prefix from the front of this block.
static const uint8_t MHAS_HOP_COUNT
Address AddressBack(void) const
void Write(uint8_t const *buffer, uint32_t size)
PrefixIterator PrefixErase(PrefixIterator position)
Removes the prefix at the specified position.
void Serialize(Buffer::Iterator &start) const
Serializes this block into the specified buffer.
void SetOriginatorAddress(Address address)
Sets the address for the node that created this packet.
std::list< Ptr< PbbAddressTlv > >::const_iterator ConstIterator
This is a PbbAddressTlv iterator for PbbAddressTlvBlock.
uint32_t GetSerializedSize(void) const
void Deserialize(Buffer::Iterator &start)
Deserializes an address block from the specified buffer.
Iterator Insert(Iterator position, const Ptr< PbbTlv > tlv)
Inserts a TLV at the specified position in this block.
void TlvPopFront(void)
Removes an address TLV from the front of this message.
static const uint8_t AHAS_MULTI_PRE_LEN
virtual Address DeserializeOriginatorAddress(Buffer::Iterator &start) const
uint8_t GetPrefixFlags(void) const
bool HasZeroTail(const uint8_t *tail, uint8_t taillen) const
static Ipv4Address ConvertFrom(const Address &address)
bool AddAtStart(uint32_t start)
Buffer GetValue(void) const
uint8_t GetIndexStop(void) const
void Clear(void)
Removes all Address TLVs from this block.
void SetValue(Buffer start)
Sets the value of this message to the specified buffer.
PrefixIterator PrefixBegin(void)
virtual void Print(std::ostream &os) const
Pretty-prints the contents of this block.
Ptr< PbbMessage > MessageFront(void)
virtual Ptr< PbbAddressBlock > AddressBlockDeserialize(Buffer::Iterator &start) const
void TlvPushFront(Ptr< PbbTlv > tlv)
Prepends a message TLV to the front of this message.
PbbPacket(void)
This is a const PbbMessageIterator for PbbPacket.
MessageIterator MessageBegin(void)
uint16_t ReadNtohU16(void)
bool HasIndexStop(void) const
void Clear(void)
Removes all TLVs from this block.
std::list< uint8_t >::iterator PrefixIterator
this is an const address iterator for PbbAddressBlock
virtual Address DeserializeAddress(uint8_t *buffer) const
AddressIterator AddressErase(AddressIterator position)
Removes the address at the specified position.
void AddressPopBack(void)
Removes an address from the back of this block.
void Serialize(Buffer::Iterator &start) const
Serializes this block into the specified buffer.
a unique identifier for an interface.
virtual void Serialize(Buffer::Iterator start) const
Serializes this packet into the specified buffer.
TypeId SetParent(TypeId tid)
std::list< Ptr< PbbTlv > >::const_iterator ConstTlvIterator
This is a PbbTlv iterator for PbbPacket.
static Ptr< PbbMessage > DeserializeMessage(Buffer::Iterator &start)
Deserializes a message, returning the correct object depending on whether it is an IPv4 message or an...
bool AddressBlockEmpty(void) const
void GetHeadTail(uint8_t *head, uint8_t &headlen, uint8_t *tail, uint8_t &taillen) const
An Address Block and its associated Address TLV Blocks.
virtual void PrintOriginatorAddress(std::ostream &os) const
bool operator==(const PbbAddressTlvBlock &other) const
Equality operator for PbbAddressTlvBlock.
void Serialize(Buffer::Iterator &start) const
Serializes this TLV into the specified buffer.
void TlvPushBack(Ptr< PbbTlv > tlv)
Appends a message TLV to the back of this message.
virtual TypeId GetInstanceTypeId(void) const
bool operator==(const PbbAddressBlock &other) const
Equality operator for PbbAddressBlock.
std::list< Ptr< PbbTlv > >::const_iterator ConstTlvIterator
This is a PbbTlv iterator for PbbMessage.
virtual uint8_t GetAddressLength(void) const
Returns address length.
static const uint8_t PHAS_TLV
static TypeId GetTypeId(void)
void AddressPushFront(Address address)
Prepends an address to the front of this block.
void PrefixClear(void)
Removes all prefixes from this block.
bool PrefixEmpty(void) const
Ptr< PbbAddressTlv > Front(void) const
virtual uint32_t Deserialize(Buffer::Iterator start)
Deserializes a packet from the specified buffer.
static Ipv6Address ConvertFrom(const Address &address)
Convert the Address object into an Ipv6Address ones.
void TlvClear(void)
Removes all packet TLVs from this packet.
virtual Address DeserializeAddress(uint8_t *buffer) const
TlvIterator TlvErase(TlvIterator position)
Removes the address TLV at the specified position.
Iterator Erase(Iterator position)
Removes the TLV at the specified position.
void PopFront(void)
Removes a TLV from the front of this block.
void Serialize(uint8_t buf[16]) const
Serialize this address to a 16-byte buffer.