| 
	      
		 A Discrete-Event Network Simulator 
		
	       | 
	      
	      
		API
	       | 
	    
	  
	
	
       
 
Go to the documentation of this file.
   25 #include "ns3/ipv4-address.h" 
   26 #include "ns3/ipv6-address.h" 
   27 #include "ns3/assert.h" 
  199       size += (*iter)->GetSerializedSize ();
 
  210       start.WriteHtonU16 (0);
 
  220       (*iter)->Serialize (
start);
 
  223   uint16_t size = 
start.GetDistanceFrom (tlvsize) - 2;
 
  231   uint16_t size = 
start.ReadNtohU16 ();
 
  236       while (
start.GetDistanceFrom (tlvstart) < size)
 
  239           newtlv->Deserialize (
start);
 
  256   std::string prefix = 
"";
 
  257   for (
int i = 0; i < level; i++)
 
  259       prefix.append (
"\t");
 
  262   os << prefix << 
"TLV Block {" << std::endl;
 
  263   os << prefix << 
"\tsize = " << 
Size () << std::endl;
 
  264   os << prefix << 
"\tmembers [" << std::endl;
 
  268       (*iter)->Print (os, level+2);
 
  271   os << prefix << 
"\t]" << std::endl;
 
  272   os << prefix << 
"}" << std::endl;
 
  285        ti != 
End () && oi != other.
End ();
 
  299   return !(*
this == other);
 
  440       size += (*iter)->GetSerializedSize ();
 
  451       start.WriteHtonU16 (0);
 
  461       (*iter)->Serialize (
start);
 
  464   uint16_t size = 
start.GetDistanceFrom (tlvsize) - 2;
 
  472   uint16_t size = 
start.ReadNtohU16 ();
 
  477       while (
start.GetDistanceFrom (tlvstart) < size)
 
  480           newtlv->Deserialize (
start);
 
  497   std::string prefix = 
"";
 
  498   for (
int i = 0; i < level; i++)
 
  500       prefix.append (
"\t");
 
  503   os << prefix << 
"TLV Block {" << std::endl;
 
  504   os << prefix << 
"\tsize = " << 
Size () << std::endl;
 
  505   os << prefix << 
"\tmembers [" << std::endl;
 
  509       (*iter)->Print (os, level+2);
 
  512   os << prefix << 
"\t]" << std::endl;
 
  513   os << prefix << 
"}" << std::endl;
 
  526        it != 
End () && ot != other.
End ();
 
  540   return !(*
this == other);
 
  842     .SetGroupName(
"Network")
 
  875       size += (*iter)->GetSerializedSize ();
 
  912       (*iter)->Serialize (
start);
 
  922   uint8_t flags = 
start.ReadU8 ();
 
  934   while (!
start.IsEnd ())
 
  939           return start.GetDistanceFrom (begin);
 
  947   return start.GetDistanceFrom (begin);
 
  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 ();
 
 1541   uint16_t size = 
start.ReadNtohU16 ();
 
 1567       while (
start.GetDistanceFrom (front) < size)
 
 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;
 
 2274           start.WriteU8 (headlen);
 
 2275           start.Write (head, headlen);
 
 2280           start.WriteU8 (taillen);
 
 2289               start.Write (tail, taillen);
 
 2313           start.WriteU8 (*iter);
 
 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 ();
 
 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;
 
 2870           start.WriteHtonU16 (size);
 
 2874           start.WriteU8 (size);
 
 2894   uint8_t flags = 
start.ReadU8 ();
 
 2917           len = 
start.ReadNtohU16 ();
 
 2921           len = 
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 HasIndexStart(void) const
Checks if there is a starting index.
 
a unique identifier for an interface.
 
void Write(uint8_t const *buffer, uint32_t size)
 
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
 
bool operator!=(const PbbAddressBlock &other) const
Inequality operator for PbbAddressBlock.
 
bool AddressBlockEmpty(void) const
 
void TlvPushFront(Ptr< PbbTlv > tlv)
Prepends a packet TLV to the front of this packet.
 
static Ipv6Address Deserialize(const uint8_t buf[16])
Deserialize this address.
 
void Serialize(Buffer::Iterator &start) const
Serializes this TLV into the specified buffer.
 
void TlvPopBack(void)
Removes a packet TLV from the back of this block.
 
uint8_t m_type
Type of this TLV.
 
void AddressPushFront(Address address)
Prepends an address to the front of this block.
 
int MessageSize(void) const
 
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
 
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
 
bool m_hasseqnum
Sequence number present.
 
Ptr< PbbAddressBlock > AddressBlockBack(void)
 
static const uint8_t AHAS_MULTI_PRE_LEN
 
static Ptr< PbbMessage > DeserializeMessage(Buffer::Iterator &start)
Deserializes a message, returning the correct object depending on whether it is an IPv4 message or an...
 
std::list< Ptr< PbbTlv > > m_tlvList
PbbTlv container.
 
std::list< Address >::const_iterator ConstAddressIterator
Address const iterator.
 
void AddressBlockPopBack(void)
Removes an address block from the back of this message.
 
std::list< Ptr< PbbTlv > >::const_iterator ConstTlvIterator
PbbTlv const iterator for PbbPacket.
 
static const uint8_t THAS_TYPE_EXT
 
bool operator==(const PbbAddressBlock &other) const
Equality operator for PbbAddressBlock.
 
uint8_t GetHopLimit(void) const
 
uint8_t GetVersion(void) const
 
uint8_t m_hopLimit
Hop limit.
 
virtual Ptr< PbbAddressBlock > AddressBlockDeserialize(Buffer::Iterator &start) const =0
Deserialize an address block.
 
void Serialize(Buffer::Iterator &start) const
Serializes this block into the specified buffer.
 
std::list< Ptr< PbbMessage > > m_messageList
PbbTlvBlock container.
 
AddressBlockIterator AddressBlockEnd()
 
static const uint8_t AHAS_ZERO_TAIL
 
Ptr< PbbTlv > TlvFront(void)
 
bool m_hasValue
Has value.
 
Every class exported by the ns3 library is enclosed in the ns3 namespace.
 
void TlvPopBack(void)
Removes a message TLV from the back of this message.
 
int AddressSize(void) const
 
PbbAddressTlvBlock::ConstIterator ConstTlvIterator
tlvblock const iterator
 
std::list< Ptr< PbbAddressBlock > > m_addressBlockList
PbbAddressBlock container.
 
uint32_t GetDistanceFrom(Iterator const &o) const
 
void Clear(void)
Removes all Address TLVs from this block.
 
AddressIterator AddressBegin(void)
 
void Deserialize(Buffer::Iterator &start)
Deserializes a block from the specified buffer.
 
virtual PbbAddressLength GetAddressLength(void) const =0
Returns address length (IPV4 3 or IPV6 15)
 
virtual void PrintAddress(std::ostream &os, ConstAddressIterator iter) const =0
Print one or more addresses.
 
virtual Address DeserializeAddress(uint8_t *buffer) const
Deserialize one address.
 
void TlvPopFront(void)
Removes a packet TLV from the front of this packet.
 
uint32_t GetSize(void) const
 
virtual Address DeserializeOriginatorAddress(Buffer::Iterator &start) const
Deserialize the originator address.
 
virtual ~PbbAddressBlockIpv6()
 
Address AddressFront(void) const
 
static const uint8_t THAS_VALUE
 
void Serialize(Buffer::Iterator &start) const
Serializes this address block into the specified buffer.
 
static const uint8_t VERSION
GTPv2-C protocol version number.
 
virtual Ptr< PbbAddressBlock > AddressBlockDeserialize(Buffer::Iterator &start) const
Deserialize an address block.
 
bool m_isMultivalue
Is multivalue.
 
std::list< uint8_t > m_prefixList
Prefixes container.
 
void Deserialize(Buffer::Iterator &start)
Deserializes a TLV from the specified buffer.
 
virtual Address DeserializeAddress(uint8_t *buffer) const =0
Deserialize one address.
 
bool m_hasIndexStop
Stop index present.
 
void MessagePopBack(void)
Removes a message from the back of this packet.
 
uint8_t GetType(void) const
 
bool operator!=(const PbbAddressTlvBlock &other) const
Inequality operator for PbbAddressTlvBlock.
 
std::list< uint8_t >::iterator PrefixIterator
Prefix iterator.
 
bool HasOriginatorAddress(void) const
Tests whether or not this message has an originator address.
 
uint8_t m_typeExt
Extended type.
 
PbbAddressTlvBlock m_addressTlvList
PbbAddressTlv container.
 
void AddressBlockPushBack(Ptr< PbbAddressBlock > block)
Appends an address block to the front of this message.
 
void TlvPopBack(void)
Removes an address TLV from the back of this message.
 
uint8_t GetTypeExt(void) const
 
PrefixIterator PrefixEnd(void)
 
virtual uint8_t GetAddressLength(void) const
Returns address length.
 
void TlvClear(void)
Removes all message TLVs from this block.
 
void AddressBlockPushFront(Ptr< PbbAddressBlock > block)
Prepends an address block to the front of this message.
 
uint32_t GetSerializedSize(void) const
 
uint8_t GetIndexStart(void) const
Get the starting point index.
 
int AddressBlockSize(void) const
 
void WriteU8(uint8_t data)
 
void PrefixPushBack(uint8_t prefix)
Appends a prefix to the back of this block.
 
bool HasIndexStart(void) const
Tests whether or not this address TLV has a start index.
 
virtual ~PbbMessageIpv6()
 
bool HasValue(void) const
Tests whether or not this TLV has a value.
 
std::list< Ptr< PbbTlv > >::const_iterator ConstIterator
PbbTlv container const iterator.
 
void Clear(void)
Removes all TLVs from this block.
 
virtual void SerializeOriginatorAddress(Buffer::Iterator &start) const =0
Serialize the originator address.
 
PbbAddressLength m_addrSize
the address size
 
void PopBack(void)
Removes a TLV from the back of this block.
 
void PushBack(Ptr< PbbAddressTlv > tlv)
Appends an Address TLV to the back of this block.
 
void PopFront(void)
Removes an AddressTLV from the front of this block.
 
void Print(std::ostream &os) const
Pretty-prints the contents of this address block.
 
bool TlvEmpty(void) const
 
An Address Block and its associated Address TLV Blocks.
 
int PrefixSize(void) const
 
uint16_t m_sequenceNumber
Sequence number.
 
virtual PbbAddressLength GetAddressLength(void) const
Returns address length (IPV4 3 or IPV6 15)
 
std::list< Ptr< PbbAddressTlv > >::const_iterator ConstIterator
PbbAddressTlv const iterator for PbbAddressTlvBlock.
 
bool operator!=(const PbbTlvBlock &other) const
Inequality operator for PbbTlvBlock.
 
std::list< Ptr< PbbMessage > >::const_iterator ConstMessageIterator
PbbMessage Const Iterator for PbbPacket.
 
virtual uint32_t GetSerializedSize(void) const
 
std::list< Ptr< PbbAddressBlock > >::const_iterator ConstAddressBlockIterator
PbbAddressBlock const iterator.
 
virtual void SerializeOriginatorAddress(Buffer::Iterator &start) const
Serialize the originator address.
 
uint8_t GetPrefixFlags(void) const
Get the prefix flags.
 
uint8_t m_indexStart
Start index.
 
uint32_t GetSize(Ptr< const Packet > packet, const WifiMacHeader *hdr, bool isAmpdu)
Return the total size of the packet after WifiMacHeader and FCS trailer have been added.
 
std::list< Ptr< PbbAddressTlv > >::iterator Iterator
PbbAddressTlv iterator for PbbAddressTlvBlock.
 
TypeId SetParent(TypeId tid)
Set the parent TypeId.
 
std::list< Address > m_addressList
Addresses container.
 
Ptr< PbbAddressTlv > TlvBack(void)
 
void MessagePushBack(Ptr< PbbMessage > message)
Appends a message to the back of this packet.
 
bool operator!=(const PbbPacket &other) const
Inequality operator for PbbPacket.
 
bool HasIndexStop(void) const
Tests whether or not this address TLV has a stop index.
 
void AddressBlockPopFront(void)
Removes an address block from the front of this message.
 
Iterator Erase(Iterator position)
Removes the TLV at the specified position.
 
bool PrefixEmpty(void) const
 
void AddAtStart(uint32_t start)
 
void Serialize(uint8_t buf[16]) const
Serialize this address to a 16-byte buffer.
 
void WriteHtonU16(uint16_t data)
 
uint8_t GetHopCount(void) const
 
void MessageClear(void)
Removes all messages from this packet.
 
void SetMultivalue(bool isMultivalue)
Sets whether or not this address TLV is "multivalue".
 
void TlvPushFront(Ptr< PbbTlv > tlv)
Prepends a message TLV to the front of this message.
 
virtual ~PbbMessageIpv4()
 
void SetTypeExt(uint8_t type)
Sets the type extension of this TLV.
 
void Print(std::ostream &os) const
Pretty-prints the contents of this message.
 
void SetType(uint8_t type)
Sets the type for this message.
 
void GetHeadTail(uint8_t *head, uint8_t &headlen, uint8_t *tail, uint8_t &taillen) const
Get head and tail.
 
bool m_hasTypeExt
Extended type present.
 
static Ipv4Address Deserialize(const uint8_t buf[4])
 
Address m_originatorAddress
originator address
 
Ptr< PbbAddressTlv > Front(void) const
 
Ptr< PbbTlv > TlvBack(void)
 
Smart pointer class similar to boost::intrusive_ptr.
 
virtual Ptr< PbbAddressBlock > AddressBlockDeserialize(Buffer::Iterator &start) const
Deserialize an address block.
 
A block of Address TLVs (PbbAddressTlv).
 
uint32_t GetSerializedSize(void) const
 
static const uint8_t AHAS_HEAD
 
PrefixIterator PrefixBegin(void)
 
virtual void Print(std::ostream &os) const
Pretty-prints the contents of this block.
 
uint8_t GetIndexStop(void) const
 
std::list< Ptr< PbbTlv > >::iterator TlvIterator
PbbTlv iterator.
 
PbbAddressTlvBlock::Iterator TlvIterator
tlvblock iterator
 
virtual void PrintAddress(std::ostream &os, ConstAddressIterator iter) const
Print one or more addresses.
 
void Print(std::ostream &os) const
Pretty-prints the contents of this block.
 
void PushFront(Ptr< PbbTlv > tlv)
Prepends a TLV to the front of this block.
 
bool TlvEmpty(void) const
 
virtual Address DeserializeAddress(uint8_t *buffer) const
Deserialize one address.
 
a polymophic address class
 
void Serialize(Buffer::Iterator &start) const
Serializes this message into the specified buffer.
 
uint8_t GetType(void) const
 
Ptr< PbbTlv > TlvBack(void)
 
void SetType(uint8_t type)
Sets the type of this TLV.
 
TlvIterator TlvBegin(void)
 
void Deserialize(Buffer::Iterator &start)
Deserializes a message from the specified buffer.
 
virtual ~PbbAddressBlockIpv4()
 
virtual void PrintOriginatorAddress(std::ostream &os) const =0
Print the originator address.
 
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
 
virtual void SerializeAddress(uint8_t *buffer, ConstAddressIterator iter) const
Serialize one or more addresses.
 
uint32_t GetSerializedSize(void) const
 
void SetIndexStop(uint8_t index)
Sets the index of the last address in the associated address block that this address TLV applies to.
 
bool m_hasHopCount
Hop count present.
 
static Ipv6Address ConvertFrom(const Address &address)
Convert the Address object into an Ipv6Address ones.
 
void Print(std::ostream &os) const
Print this address to the given output stream.
 
PbbAddressLength
Used in Messages to determine whether it contains IPv4 or IPv6 addresses.
 
void TlvPushBack(Ptr< PbbAddressTlv > address)
Appends an address TLV to the back of this message.
 
Iterator Insert(Iterator position, const Ptr< PbbAddressTlv > tlv)
Inserts an Address TLV at the specified position in this block.
 
uint8_t m_indexStop
Stop index.
 
bool TlvEmpty(void) const
 
void TlvPushFront(Ptr< PbbAddressTlv > address)
Prepends an address TLV to the front of this message.
 
uint16_t m_seqnum
Sequence number.
 
std::list< Ptr< PbbTlv > >::iterator TlvIterator
PbbTlv iterator for PbbPacket.
 
Ptr< PbbAddressTlv > TlvFront(void)
 
TlvIterator TlvErase(TlvIterator position)
Removes the address TLV at the specified position.
 
bool operator!=(const PbbTlv &other) const
Inequality operator for PbbTlv.
 
automatically resized byte buffer
 
static const uint8_t AHAS_SINGLE_PRE_LEN
 
static const uint8_t MHAS_ORIG
 
uint8_t PrefixBack(void) const
 
uint8_t const  * PeekData(void) const
 
static const uint8_t MHAS_SEQ_NUM
 
static TypeId GetTypeId(void)
Get the type ID.
 
void AddressPushBack(Address address)
Appends an address to the back of this block.
 
void MessagePushFront(Ptr< PbbMessage > message)
Prepends a message to the front of this packet.
 
bool HasIndexStop(void) const
Checks if there is a stop index.
 
bool AddressEmpty(void) const
 
void SetHopCount(uint8_t hopcount)
Sets the current number of hops this message has traveled.
 
virtual void PrintOriginatorAddress(std::ostream &os) const
Print the originator address.
 
Buffer::Iterator Begin(void) const
 
bool HasTypeExt(void) const
Tests whether or not this TLV has a type extension.
 
bool HasSequenceNumber(void) const
Tests whether or not this message has a sequence number.
 
virtual ~PbbAddressBlock()
 
std::list< Ptr< PbbMessage > >::iterator MessageIterator
PbbMessage Iterator for PbbPacket.
 
virtual void SerializeAddress(uint8_t *buffer, ConstAddressIterator iter) const
Serialize one or more addresses.
 
bool HasHopLimit(void) const
Tests whether or not this message has a hop limit.
 
void SetHopLimit(uint8_t hoplimit)
Sets the maximum number of hops this message should travel.
 
bool HasHopCount(void) const
Tests whether or not this message has a hop count.
 
PbbTlvBlock m_tlvList
PbbTlv container.
 
uint8_t GetIndexStart(void) const
 
virtual void SerializeAddress(uint8_t *buffer, ConstAddressIterator iter) const =0
Serialize one or more addresses.
 
TlvIterator TlvBegin(void)
 
uint8_t GetIndexStop(void) const
Get the stop point index.
 
void SetMultivalue(bool isMultivalue)
Set the multivalue parameter.
 
bool operator==(const PbbTlv &other) const
Equality operator for PbbTlv.
 
Iterator Insert(Iterator position, const Ptr< PbbTlv > tlv)
Inserts a TLV at the specified position in this block.
 
TlvIterator Erase(TlvIterator position)
Removes the packet TLV at the specified position.
 
static const uint8_t THAS_SINGLE_INDEX
 
static const uint8_t TIS_MULTIVALUE
 
static const uint8_t PHAS_TLV
 
static const uint8_t VERSION
 
iterator in a Buffer instance
 
void PopBack(void)
Removes an Address TLV from the back of this block.
 
void RemoveAtEnd(uint32_t end)
 
PrefixIterator PrefixErase(PrefixIterator position)
Removes the prefix at the specified position.
 
Ptr< PbbMessage > MessageFront(void)
 
void PushBack(Ptr< PbbTlv > tlv)
Appends a TLV to the back of this block.
 
void TlvPushBack(Ptr< PbbTlv > tlv)
Appends a message TLV to the back of this message.
 
std::list< uint8_t >::const_iterator ConstPrefixIterator
Prefix const iterator.
 
std::list< Ptr< PbbAddressBlock > >::iterator AddressBlockIterator
PbbAddressBlock iterator.
 
void TlvPopFront(void)
Removes an address TLV from the front of this message.
 
MessageIterator MessageEnd(void)
 
bool m_hasOriginatorAddress
Originator address present.
 
void SetSequenceNumber(uint16_t number)
Sets the sequence number of this packet.
 
PrefixIterator PrefixInsert(PrefixIterator position, const uint8_t value)
Inserts a prefix at the specified position in this block.
 
void PrefixPopBack(void)
Removes a prefix from the back of this block.
 
virtual void PrintAddress(std::ostream &os, ConstAddressIterator iter) const
Print one or more addresses.
 
Ptr< PbbTlv > Front(void) const
 
Iterator Erase(Iterator position)
Removes the Address TLV at the specified position.
 
void TlvClear(void)
Removes all address TLVs from this block.
 
void AddressClear(void)
Removes all addresses from this block.
 
AddressBlockIterator AddressBlockBegin()
 
void Deserialize(Buffer::Iterator &start)
Deserializes a block from the specified buffer.
 
static const uint8_t MHAS_HOP_LIMIT
 
bool m_hasHopLimit
Hop limit present.
 
virtual PbbAddressLength GetAddressLength(void) const
Returns address length (IPV4 3 or IPV6 15)
 
Address GetOriginatorAddress(void) const
 
uint8_t PrefixFront(void) const
 
Address AddressBack(void) const
 
void Print(std::ostream &os) const
Pretty-prints the contents of this block.
 
AddressBlockIterator AddressBlockErase(AddressBlockIterator position)
Removes the address block at the specified position.
 
void PrefixClear(void)
Removes all prefixes from this block.
 
Buffer GetValue(void) const
 
void Serialize(uint8_t buf[4]) const
Serialize this address to a 4-byte buffer.
 
void SetIndexStart(uint8_t index)
Sets the index of the first address in the associated address block that this address TLV applies to.
 
uint16_t GetSequenceNumber(void) const
 
void PrefixPushFront(uint8_t prefix)
Prepends a prefix to the front of this block.
 
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
 
bool m_hasIndexStart
Start index present.
 
bool IsMultivalue(void) const
Check the multivalue parameter.
 
void AddressBlockClear(void)
Removes all address blocks from this message.
 
void TlvPushBack(Ptr< PbbTlv > tlv)
Appends a packet TLV to the back of this packet.
 
static const uint8_t MHAS_HOP_COUNT
 
Main PacketBB Packet object.
 
AddressIterator AddressErase(AddressIterator position)
Removes the address at the specified position.
 
void TlvClear(void)
Removes all packet TLVs from this packet.
 
Ptr< PbbAddressBlock > AddressBlockFront(void)
 
static const uint8_t PHAS_SEQ_NUM
 
void SetIndexStop(uint8_t index)
Set an index as stop point.
 
~PbbAddressTlvBlock(void)
 
Ptr< PbbTlv > Back(void) const
 
void AddressPopFront(void)
Removes an address from the front of this block.
 
static const uint8_t AHAS_FULL_TAIL
 
void SetSequenceNumber(uint16_t seqnum)
Sets the sequence number of this message.
 
PbbTlvBlock m_tlvList
PbbTlvBlock.
 
void SetValue(Buffer start)
Sets the value of this message to the specified buffer.
 
bool operator==(const PbbAddressTlvBlock &other) const
Equality operator for PbbAddressTlvBlock.
 
bool HasZeroTail(const uint8_t *tail, uint8_t taillen) const
Check if the tail is empty.
 
bool operator==(const PbbPacket &other) const
Equality operator for PbbPacket.
 
virtual void SerializeOriginatorAddress(Buffer::Iterator &start) const
Serialize the originator address.
 
MessageIterator MessageBegin(void)
 
uint8_t m_type
the type for this message
 
virtual void PrintOriginatorAddress(std::ostream &os) const
Print the originator address.
 
void PrefixPopFront(void)
Removes a prefix from the front of this block.
 
bool operator==(const PbbMessage &other) const
Equality operator for PbbMessage.
 
void MessagePopFront(void)
Removes a message from the front of this packet.
 
Ptr< PbbMessage > MessageBack(void)
 
void TlvPopFront(void)
Removes a message TLV from the front of this message.
 
uint32_t GetSerializedSize(void) const
 
static const uint8_t THAS_EXT_LEN
 
void Deserialize(Buffer::Iterator &start)
Deserializes an address block from the specified buffer.
 
uint8_t m_hopCount
Hop count.
 
A block of packet or message TLVs (PbbTlv).
 
A message within a PbbPacket packet.
 
TlvIterator TlvErase(TlvIterator position)
Removes the message TLV at the specified position.
 
bool m_hasSequenceNumber
Sequence number present.
 
void SetIndexStart(uint8_t index)
Set an index as starting point.
 
bool IsMultivalue(void) const
Tests whether or not this address TLV is "multivalue".
 
virtual uint8_t GetAddressLength(void) const
Returns address length.
 
bool HasSequenceNumber(void) const
Tests whether or not this packet has a sequence number.
 
bool MessageEmpty(void) const
 
virtual Address DeserializeOriginatorAddress(Buffer::Iterator &start) const =0
Deserialize the originator address.
 
std::list< Ptr< PbbTlv > >::const_iterator ConstTlvIterator
PbbTlv const iterator.
 
static Ipv4Address ConvertFrom(const Address &address)
 
void SetOriginatorAddress(Address address)
Sets the address for the node that created this packet.
 
void PushFront(Ptr< PbbAddressTlv > tlv)
Prepends an Address TLV to the front of this block.
 
uint32_t GetSerializedSize(void) const
 
std::list< Ptr< PbbAddressTlv > > m_tlvList
PbbAddressTlv container.
 
std::list< Ptr< PbbTlv > >::iterator Iterator
PbbTlv container iterator.
 
uint16_t GetSequenceNumber(void) const
 
Ptr< PbbAddressTlv > Back(void) const
 
void Print(std::ostream &os) const
Print this address to the given output stream.
 
Ptr< PbbTlv > TlvFront(void)
 
bool operator==(const PbbTlvBlock &other) const
Equality operator for PbbTlvBlock.
 
void Print(std::ostream &os) const
Pretty-prints the contents of this TLV.
 
virtual Address DeserializeOriginatorAddress(Buffer::Iterator &start) const
Deserialize the originator address.
 
virtual uint8_t GetAddressLength(void) const =0
Returns address length.
 
void PopFront(void)
Removes a TLV from the front of this block.
 
bool operator!=(const PbbMessage &other) const
Inequality operator for PbbMessage.
 
AddressIterator AddressEnd(void)
 
void AddressPopBack(void)
Removes an address from the back of this block.
 
static const uint8_t THAS_MULTI_INDEX
 
void Serialize(Buffer::Iterator &start) const
Serializes this block into the specified buffer.
 
virtual void Serialize(Buffer::Iterator start) const
Serializes this packet into the specified buffer.
 
std::list< Address >::iterator AddressIterator
Address iterator.