A packet or message TLV. More...
#include <packetbb.h>
Public Member Functions | |
PbbTlv (void) | |
virtual | ~PbbTlv (void) |
void | Deserialize (Buffer::Iterator &start) |
Deserializes a TLV from the specified buffer. More... | |
uint32_t | GetSerializedSize (void) const |
uint8_t | GetType (void) const |
uint8_t | GetTypeExt (void) const |
Buffer | GetValue (void) const |
bool | HasTypeExt (void) const |
Tests whether or not this TLV has a type extension. More... | |
bool | HasValue (void) const |
Tests whether or not this TLV has a value. More... | |
bool | operator!= (const PbbTlv &other) const |
Inequality operator for PbbTlv. More... | |
bool | operator== (const PbbTlv &other) const |
Equality operator for PbbTlv. More... | |
void | Print (std::ostream &os) const |
Pretty-prints the contents of this TLV. More... | |
void | Print (std::ostream &os, int level) const |
Pretty-prints the contents of this TLV, with specified indentation. More... | |
void | Serialize (Buffer::Iterator &start) const |
Serializes this TLV into the specified buffer. More... | |
void | SetType (uint8_t type) |
Sets the type of this TLV. More... | |
void | SetTypeExt (uint8_t type) |
Sets the type extension of this TLV. More... | |
void | SetValue (Buffer start) |
Sets the value of this message to the specified buffer. More... | |
void | SetValue (const uint8_t *buffer, uint32_t size) |
Sets the value of this message to a buffer with the specified data. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< PbbTlv > | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
Protected Member Functions | |
uint8_t | GetIndexStart (void) const |
uint8_t | GetIndexStop (void) const |
bool | HasIndexStart (void) const |
bool | HasIndexStop (void) const |
bool | IsMultivalue (void) const |
void | SetIndexStart (uint8_t index) |
void | SetIndexStop (uint8_t index) |
void | SetMultivalue (bool isMultivalue) |
Private Attributes | |
bool | m_hasIndexStart |
bool | m_hasIndexStop |
bool | m_hasTypeExt |
bool | m_hasValue |
uint8_t | m_indexStart |
uint8_t | m_indexStop |
bool | m_isMultivalue |
uint8_t | m_type |
uint8_t | m_typeExt |
Buffer | m_value |
Additional Inherited Members | |
Static Public Member Functions inherited from ns3::SimpleRefCount< PbbTlv > | |
static void | Cleanup (void) |
Noop. More... | |
A packet or message TLV.
Definition at line 1587 of file packetbb.h.
ns3::PbbTlv::PbbTlv | ( | void | ) |
Definition at line 2648 of file packetbb.cc.
References m_hasIndexStart, m_hasIndexStop, m_hasTypeExt, m_hasValue, m_isMultivalue, and NS_LOG_FUNCTION.
|
virtual |
Definition at line 2658 of file packetbb.cc.
References ns3::Buffer::GetSize(), m_value, NS_LOG_FUNCTION, and ns3::Buffer::RemoveAtEnd().
void ns3::PbbTlv::Deserialize | ( | Buffer::Iterator & | start | ) |
Deserializes a TLV from the specified buffer.
start | a reference to the point in a buffer to begin deserializing. |
Users should not need to call this. TLVs will be deserialized by their containing blocks.
Definition at line 2889 of file packetbb.cc.
References ns3::Buffer::AddAtStart(), ns3::Buffer::Begin(), m_hasValue, m_value, ns3::Buffer::Iterator::Next(), NS_LOG_FUNCTION, ns3::Buffer::Iterator::ReadNtohU16(), ns3::Buffer::Iterator::ReadU8(), SetIndexStart(), SetIndexStop(), SetType(), SetTypeExt(), visualizer.core::start(), THAS_EXT_LEN, THAS_MULTI_INDEX, THAS_SINGLE_INDEX, THAS_TYPE_EXT, THAS_VALUE, and ns3::Buffer::Iterator::Write().
|
protected |
Definition at line 2710 of file packetbb.cc.
References HasIndexStart(), m_indexStart, NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by ns3::PbbAddressTlv::GetIndexStart(), Print(), and Serialize().
|
protected |
Definition at line 2733 of file packetbb.cc.
References HasIndexStop(), m_indexStop, NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by ns3::PbbAddressTlv::GetIndexStop(), Print(), and Serialize().
uint32_t ns3::PbbTlv::GetSerializedSize | ( | void | ) | const |
Definition at line 2794 of file packetbb.cc.
References ns3::Buffer::GetSize(), GetValue(), HasIndexStart(), HasIndexStop(), HasTypeExt(), HasValue(), and NS_LOG_FUNCTION.
uint8_t ns3::PbbTlv::GetType | ( | void | ) | const |
Definition at line 2672 of file packetbb.cc.
References m_type, and NS_LOG_FUNCTION.
Referenced by operator==(), Print(), and Serialize().
uint8_t ns3::PbbTlv::GetTypeExt | ( | void | ) | const |
Calling this while HasTypeExt is False is undefined. Make sure you check it first. This will be checked by an assert in debug builds.
Definition at line 2687 of file packetbb.cc.
References HasTypeExt(), m_typeExt, NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by operator==(), Print(), and Serialize().
Buffer ns3::PbbTlv::GetValue | ( | void | ) | const |
Calling this while HasValue is False is undefined. Make sure you check it first. This will be checked by an assert in debug builds.
Definition at line 2779 of file packetbb.cc.
References HasValue(), m_value, NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by GetSerializedSize(), operator==(), Print(), and Serialize().
|
protected |
Definition at line 2718 of file packetbb.cc.
References m_hasIndexStart, and NS_LOG_FUNCTION.
Referenced by GetIndexStart(), GetSerializedSize(), ns3::PbbAddressTlv::HasIndexStart(), Print(), and Serialize().
|
protected |
Definition at line 2741 of file packetbb.cc.
References m_hasIndexStop, and NS_LOG_FUNCTION.
Referenced by GetIndexStop(), GetSerializedSize(), ns3::PbbAddressTlv::HasIndexStop(), Print(), and Serialize().
bool ns3::PbbTlv::HasTypeExt | ( | void | ) | const |
Tests whether or not this TLV has a type extension.
This should be called before calling GetTypeExt to make sure there actually is one.
Definition at line 2695 of file packetbb.cc.
References m_hasTypeExt, and NS_LOG_FUNCTION.
Referenced by GetSerializedSize(), GetTypeExt(), operator==(), Print(), and Serialize().
bool ns3::PbbTlv::HasValue | ( | void | ) | const |
Tests whether or not this TLV has a value.
This should be called before calling GetTypeExt to make sure there actually is one.
Definition at line 2787 of file packetbb.cc.
References m_hasValue, and NS_LOG_FUNCTION.
Referenced by GetSerializedSize(), GetValue(), operator==(), Print(), and Serialize().
|
protected |
Definition at line 2755 of file packetbb.cc.
References m_isMultivalue, and NS_LOG_FUNCTION.
Referenced by ns3::PbbAddressTlv::IsMultivalue(), Print(), and Serialize().
bool ns3::PbbTlv::operator!= | ( | const PbbTlv & | other | ) | const |
Inequality operator for PbbTlv.
other | PbbTlv to compare to this one |
Definition at line 3024 of file packetbb.cc.
bool ns3::PbbTlv::operator== | ( | const PbbTlv & | other | ) | const |
Equality operator for PbbTlv.
other | PbbTlv to compare to this one |
Definition at line 2979 of file packetbb.cc.
References ns3::Buffer::GetSize(), GetType(), GetTypeExt(), GetValue(), HasTypeExt(), HasValue(), and ns3::Buffer::PeekData().
void ns3::PbbTlv::Print | ( | std::ostream & | os | ) | const |
Pretty-prints the contents of this TLV.
os | a stream object to print to. |
Definition at line 2934 of file packetbb.cc.
References NS_LOG_FUNCTION.
void ns3::PbbTlv::Print | ( | std::ostream & | os, |
int | level | ||
) | const |
Pretty-prints the contents of this TLV, with specified indentation.
os | a stream object to print to. |
level | level of indentation. |
This probably never needs to be called by users. This is used when recursively printing sub-objects.
Definition at line 2941 of file packetbb.cc.
References GetIndexStart(), GetIndexStop(), ns3::Buffer::GetSize(), GetType(), GetTypeExt(), GetValue(), HasIndexStart(), HasIndexStop(), HasTypeExt(), HasValue(), IsMultivalue(), and NS_LOG_FUNCTION.
void ns3::PbbTlv::Serialize | ( | Buffer::Iterator & | start | ) | const |
Serializes this TLV into the specified buffer.
start | a reference to the point in a buffer to begin serializing. |
Users should not need to call this. TLVs will be serialized by their containing blocks.
Definition at line 2832 of file packetbb.cc.
References GetIndexStart(), GetIndexStop(), ns3::Buffer::GetSize(), GetType(), GetTypeExt(), GetValue(), HasIndexStart(), HasIndexStop(), HasTypeExt(), HasValue(), IsMultivalue(), ns3::Buffer::Iterator::Next(), NS_LOG_FUNCTION, visualizer.core::start(), THAS_EXT_LEN, THAS_MULTI_INDEX, THAS_SINGLE_INDEX, THAS_TYPE_EXT, THAS_VALUE, TIS_MULTIVALUE, ns3::Buffer::Iterator::Write(), ns3::Buffer::Iterator::WriteHtonU16(), and ns3::Buffer::Iterator::WriteU8().
|
protected |
Definition at line 2702 of file packetbb.cc.
References m_hasIndexStart, m_indexStart, and NS_LOG_FUNCTION.
Referenced by Deserialize(), and ns3::PbbAddressTlv::SetIndexStart().
|
protected |
Definition at line 2725 of file packetbb.cc.
References m_hasIndexStop, m_indexStop, and NS_LOG_FUNCTION.
Referenced by Deserialize(), and ns3::PbbAddressTlv::SetIndexStop().
|
protected |
Definition at line 2748 of file packetbb.cc.
References m_isMultivalue, and NS_LOG_FUNCTION.
Referenced by ns3::PbbAddressTlv::SetMultivalue().
void ns3::PbbTlv::SetType | ( | uint8_t | type | ) |
Sets the type of this TLV.
type | the type value to set. |
Definition at line 2665 of file packetbb.cc.
References m_type, and NS_LOG_FUNCTION.
Referenced by Deserialize(), and PbbTestSuite::PbbTestSuite().
void ns3::PbbTlv::SetTypeExt | ( | uint8_t | type | ) |
Sets the type extension of this TLV.
type | the type extension value to set. |
The type extension is like a sub-type used to further distinguish between TLVs of the same type.
Definition at line 2679 of file packetbb.cc.
References m_hasTypeExt, m_typeExt, and NS_LOG_FUNCTION.
Referenced by Deserialize(), and PbbTestSuite::PbbTestSuite().
void ns3::PbbTlv::SetValue | ( | Buffer | start | ) |
Sets the value of this message to the specified buffer.
start | a buffer instance. |
The buffer is not copied until this TLV is serialized. You should not change the contents of the buffer you pass in to this function.
Definition at line 2762 of file packetbb.cc.
References m_hasValue, m_value, NS_LOG_FUNCTION, and visualizer.core::start().
Referenced by PbbTestSuite::PbbTestSuite().
void ns3::PbbTlv::SetValue | ( | const uint8_t * | buffer, |
uint32_t | size | ||
) |
Sets the value of this message to a buffer with the specified data.
buffer | a pointer to data to put in the TLVs buffer. |
size | the size of the buffer. |
The buffer is copied into a new buffer instance. You can free the data in the buffer provided anytime you wish.
Definition at line 2770 of file packetbb.cc.
References ns3::Buffer::AddAtStart(), ns3::Buffer::Begin(), m_hasValue, m_value, NS_LOG_FUNCTION, and ns3::Buffer::Iterator::Write().
|
private |
Definition at line 1737 of file packetbb.h.
Referenced by HasIndexStart(), PbbTlv(), and SetIndexStart().
|
private |
Definition at line 1740 of file packetbb.h.
Referenced by HasIndexStop(), PbbTlv(), and SetIndexStop().
|
private |
Definition at line 1734 of file packetbb.h.
Referenced by HasTypeExt(), PbbTlv(), and SetTypeExt().
|
private |
Definition at line 1744 of file packetbb.h.
Referenced by Deserialize(), HasValue(), PbbTlv(), and SetValue().
|
private |
Definition at line 1738 of file packetbb.h.
Referenced by GetIndexStart(), and SetIndexStart().
|
private |
Definition at line 1741 of file packetbb.h.
Referenced by GetIndexStop(), and SetIndexStop().
|
private |
Definition at line 1743 of file packetbb.h.
Referenced by IsMultivalue(), PbbTlv(), and SetMultivalue().
|
private |
Definition at line 1732 of file packetbb.h.
|
private |
Definition at line 1735 of file packetbb.h.
Referenced by GetTypeExt(), and SetTypeExt().
|
private |
Definition at line 1745 of file packetbb.h.
Referenced by Deserialize(), GetValue(), SetValue(), and ~PbbTlv().