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 |
bool | operator== (const PbbTlv &other) const |
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... | |
![]() | |
SimpleRefCount () | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
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 void | Cleanup (void) |
A packet or message TLV.
Definition at line 1505 of file packetbb.h.
ns3::PbbTlv::PbbTlv | ( | void | ) |
Definition at line 2647 of file packetbb.cc.
References m_hasIndexStart, m_hasIndexStop, m_hasTypeExt, m_hasValue, m_isMultivalue, and NS_LOG_FUNCTION.
|
virtual |
Definition at line 2657 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 2888 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 2709 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 2732 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 2793 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 2671 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 2686 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 2778 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 2717 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 2740 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 2694 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 2786 of file packetbb.cc.
References m_hasValue, and NS_LOG_FUNCTION.
Referenced by GetSerializedSize(), GetValue(), operator==(), Print(), and Serialize().
|
protected |
Definition at line 2754 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 |
Definition at line 3023 of file packetbb.cc.
bool ns3::PbbTlv::operator== | ( | const PbbTlv & | other | ) | const |
Definition at line 2978 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 2933 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 2940 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 2831 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 2701 of file packetbb.cc.
References m_hasIndexStart, m_indexStart, and NS_LOG_FUNCTION.
Referenced by Deserialize(), and ns3::PbbAddressTlv::SetIndexStart().
|
protected |
Definition at line 2724 of file packetbb.cc.
References m_hasIndexStop, m_indexStop, and NS_LOG_FUNCTION.
Referenced by Deserialize(), and ns3::PbbAddressTlv::SetIndexStop().
|
protected |
Definition at line 2747 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 2664 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 2678 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 2761 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 2769 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 1644 of file packetbb.h.
Referenced by HasIndexStart(), PbbTlv(), and SetIndexStart().
|
private |
Definition at line 1647 of file packetbb.h.
Referenced by HasIndexStop(), PbbTlv(), and SetIndexStop().
|
private |
Definition at line 1641 of file packetbb.h.
Referenced by HasTypeExt(), PbbTlv(), and SetTypeExt().
|
private |
Definition at line 1651 of file packetbb.h.
Referenced by Deserialize(), HasValue(), PbbTlv(), and SetValue().
|
private |
Definition at line 1645 of file packetbb.h.
Referenced by GetIndexStart(), and SetIndexStart().
|
private |
Definition at line 1648 of file packetbb.h.
Referenced by GetIndexStop(), and SetIndexStop().
|
private |
Definition at line 1650 of file packetbb.h.
Referenced by IsMultivalue(), PbbTlv(), and SetMultivalue().
|
private |
Definition at line 1639 of file packetbb.h.
|
private |
Definition at line 1642 of file packetbb.h.
Referenced by GetTypeExt(), and SetTypeExt().
|
private |
Definition at line 1652 of file packetbb.h.
Referenced by Deserialize(), GetValue(), SetValue(), and ~PbbTlv().