handle packet metadata about packet headers and trailers More...
#include <packet-metadata.h>
Classes | |
struct | Data |
class | DataFreeList |
struct | ExtraItem |
struct | Item |
class | ItemIterator |
struct | SmallItem |
Public Member Functions | |
PacketMetadata (uint64_t uid, uint32_t size) | |
PacketMetadata (PacketMetadata const &o) | |
~PacketMetadata () | |
void | AddAtEnd (PacketMetadata const &o) |
void | AddHeader (Header const &header, uint32_t size) |
void | AddPaddingAtEnd (uint32_t end) |
void | AddTrailer (Trailer const &trailer, uint32_t size) |
ItemIterator | BeginItem (Buffer buffer) const |
PacketMetadata | CreateFragment (uint32_t start, uint32_t end) const |
uint32_t | Deserialize (const uint8_t *buffer, uint32_t size) |
uint32_t | GetSerializedSize (void) const |
uint64_t | GetUid (void) const |
PacketMetadata & | operator= (PacketMetadata const &o) |
void | RemoveAtEnd (uint32_t end) |
void | RemoveAtStart (uint32_t start) |
void | RemoveHeader (Header const &header, uint32_t size) |
void | RemoveTrailer (Trailer const &trailer, uint32_t size) |
uint32_t | Serialize (uint8_t *buffer, uint32_t maxSize) const |
Static Public Member Functions | |
static void | Enable (void) |
static void | EnableChecking (void) |
Private Member Functions | |
PacketMetadata () | |
friend | DataFreeList::~DataFreeList () |
uint16_t | AddBig (uint32_t head, uint32_t tail, const PacketMetadata::SmallItem *item, const PacketMetadata::ExtraItem *extraItem) |
uint16_t | AddSmall (const PacketMetadata::SmallItem *item) |
void | Append16 (uint16_t value, uint8_t *buffer) |
void | Append32 (uint32_t value, uint8_t *buffer) |
void | AppendValue (uint32_t value, uint8_t *buffer) |
void | AppendValueExtra (uint32_t value, uint8_t *buffer) |
void | DoAddHeader (uint32_t uid, uint32_t size) |
uint32_t | GetTotalSize (void) const |
uint32_t | GetUleb128Size (uint32_t value) const |
bool | IsPointerOk (uint16_t pointer) const |
bool | IsSharedPointerOk (uint16_t pointer) const |
bool | IsStateOk (void) const |
uint32_t | ReadItems (uint16_t current, struct PacketMetadata::SmallItem *item, struct PacketMetadata::ExtraItem *extraItem) const |
uint32_t | ReadUleb128 (const uint8_t **pBuffer) const |
void | ReplaceTail (PacketMetadata::SmallItem *item, PacketMetadata::ExtraItem *extraItem, uint32_t available) |
void | Reserve (uint32_t n) |
void | ReserveCopy (uint32_t n) |
void | UpdateHead (uint16_t written) |
void | UpdateTail (uint16_t written) |
Static Private Member Functions | |
static uint8_t * | AddToRaw (const uint8_t *data, uint32_t dataSize, uint8_t *start, uint8_t *current, uint32_t maxSize) |
static uint8_t * | AddToRawU16 (const uint16_t &data, uint8_t *start, uint8_t *current, uint32_t maxSize) |
static uint8_t * | AddToRawU32 (const uint32_t &data, uint8_t *start, uint8_t *current, uint32_t maxSize) |
static uint8_t * | AddToRawU64 (const uint64_t &data, uint8_t *start, uint8_t *current, uint32_t maxSize) |
static uint8_t * | AddToRawU8 (const uint8_t &data, uint8_t *start, uint8_t *current, uint32_t maxSize) |
static struct PacketMetadata::Data * | Allocate (uint32_t n) |
static struct PacketMetadata::Data * | Create (uint32_t size) |
static void | Deallocate (struct PacketMetadata::Data *data) |
static uint8_t * | ReadFromRawU16 (uint16_t &data, const uint8_t *start, const uint8_t *current, uint32_t maxSize) |
static uint8_t * | ReadFromRawU32 (uint32_t &data, const uint8_t *start, const uint8_t *current, uint32_t maxSize) |
static uint8_t * | ReadFromRawU64 (uint64_t &data, const uint8_t *start, const uint8_t *current, uint32_t maxSize) |
static uint8_t * | ReadFromRawU8 (uint8_t &data, const uint8_t *start, const uint8_t *current, uint32_t maxSize) |
static void | Recycle (struct PacketMetadata::Data *data) |
Private Attributes | |
struct Data * | m_data |
uint16_t | m_head |
head -(next)-> tail ^ | ---(prev)—| More... | |
uint64_t | m_packetUid |
uint16_t | m_tail |
uint16_t | m_used |
Static Private Attributes | |
static uint16_t | m_chunkUid = 0 |
static bool | m_enable = false |
static bool | m_enableChecking = false |
static DataFreeList | m_freeList |
static uint32_t | m_maxSize = 0 |
static bool | m_metadataSkipped = false |
Friends | |
class | ItemIterator |
handle packet metadata about packet headers and trailers
This class is used by the Packet class to record every operation performed on the packet's buffer. This class also provides an implementation of the Packet::Print methods which uses the metadata to analyse the content of the packet's buffer.
To achieve this, this class maintains a linked list of so-called "items", each of which represents a header or a trailer, or payload, or a fragment of any of these. Each item contains a "next" and a "prev" field which point to the next and previous entries in the linked list. The PacketMetadata class maintains a pair of pointers to the head and the tail of the linked list.
Each entry in the list also maintains:
This linked list is flattened in a byte buffer stored in struct PacketMetadata::Data. Each entry of the linked list is identified by an offset which identifies the first byte of the entry from the start of the data buffer. The size of this data buffer is 2^16-1 bytes maximum which somewhat limits the number of entries which can be stored in this linked list but it is quite unlikely to hit this limit in practice.
Each item of the linked list is a variable-sized byte buffer made of a number of fields. Some of these fields are stored as fixed-size 32 bit integers, others as fixed-size 16 bit integers, and some others as variable-size 32-bit integers. The variable-size 32 bit integers are stored using the uleb128 encoding.
Definition at line 79 of file packet-metadata.h.
|
inline |
Definition at line 366 of file packet-metadata.h.
References DoAddHeader(), ns3::PacketMetadata::Data::m_data, and m_data.
|
inline |
Definition at line 379 of file packet-metadata.h.
References ns3::PacketMetadata::Data::m_count, m_data, and NS_ASSERT.
|
inline |
Definition at line 412 of file packet-metadata.h.
References ns3::PacketMetadata::Data::m_count, m_data, NS_ASSERT, and Recycle().
|
private |
|
private |
void ns3::PacketMetadata::AddAtEnd | ( | PacketMetadata const & | o | ) |
Definition at line 813 of file packet-metadata.cc.
References AddBig(), ns3::PacketMetadata::SmallItem::chunkUid, current, IsStateOk(), m_enable, m_head, m_metadataSkipped, m_tail, ns3::PacketMetadata::SmallItem::next, NS_ASSERT, NS_LOG_FUNCTION, ReadItems(), ReplaceTail(), ns3::PacketMetadata::SmallItem::size, ns3::PacketMetadata::SmallItem::typeUid, and UpdateTail().
Referenced by ns3::Packet::AddAtEnd().
|
private |
Definition at line 404 of file packet-metadata.cc.
References Append16(), Append32(), AppendValue(), ns3::PacketMetadata::SmallItem::chunkUid, ns3::PacketMetadata::ExtraItem::fragmentEnd, ns3::PacketMetadata::ExtraItem::fragmentStart, GetUleb128Size(), ns3::PacketMetadata::Data::m_count, ns3::PacketMetadata::Data::m_data, m_data, ns3::PacketMetadata::Data::m_dirtyEnd, m_head, ns3::PacketMetadata::Data::m_size, m_used, ns3::PacketMetadata::SmallItem::next, NS_ASSERT, NS_LOG_FUNCTION, ns3::PacketMetadata::ExtraItem::packetUid, ns3::PacketMetadata::SmallItem::prev, ReserveCopy(), ns3::PacketMetadata::SmallItem::size, and ns3::PacketMetadata::SmallItem::typeUid.
Referenced by AddAtEnd(), Deserialize(), RemoveAtEnd(), RemoveAtStart(), and ReplaceTail().
void ns3::PacketMetadata::AddHeader | ( | Header const & | header, |
uint32_t | size | ||
) |
Definition at line 666 of file packet-metadata.cc.
References DoAddHeader(), ns3::ObjectBase::GetInstanceTypeId(), ns3::TypeId::GetUid(), IsStateOk(), NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by ns3::Packet::AddHeader().
void ns3::PacketMetadata::AddPaddingAtEnd | ( | uint32_t | end | ) |
Definition at line 891 of file packet-metadata.cc.
References m_enable, m_metadataSkipped, and NS_LOG_FUNCTION.
Referenced by ns3::Packet::AddPaddingAtEnd().
|
inlineprivate |
Definition at line 375 of file packet-metadata.cc.
References Append16(), AppendValue(), ns3::PacketMetadata::SmallItem::chunkUid, GetUleb128Size(), ns3::PacketMetadata::Data::m_count, ns3::PacketMetadata::Data::m_data, m_data, ns3::PacketMetadata::Data::m_dirtyEnd, m_head, ns3::PacketMetadata::Data::m_size, m_used, ns3::PacketMetadata::SmallItem::next, NS_ASSERT, NS_LOG_FUNCTION, ns3::PacketMetadata::SmallItem::prev, ReserveCopy(), ns3::PacketMetadata::SmallItem::size, and ns3::PacketMetadata::SmallItem::typeUid.
Referenced by AddTrailer(), and DoAddHeader().
|
staticprivate |
Definition at line 1420 of file packet-metadata.cc.
References NS_LOG_FUNCTION.
Referenced by Serialize().
|
staticprivate |
Definition at line 1372 of file packet-metadata.cc.
References NS_LOG_FUNCTION.
Referenced by Serialize().
|
staticprivate |
Definition at line 1388 of file packet-metadata.cc.
References NS_LOG_FUNCTION.
Referenced by Serialize().
|
staticprivate |
Definition at line 1404 of file packet-metadata.cc.
References NS_LOG_FUNCTION.
Referenced by Serialize().
|
staticprivate |
Definition at line 1356 of file packet-metadata.cc.
References NS_LOG_FUNCTION.
Referenced by Serialize().
void ns3::PacketMetadata::AddTrailer | ( | Trailer const & | trailer, |
uint32_t | size | ||
) |
Definition at line 743 of file packet-metadata.cc.
References AddSmall(), ns3::PacketMetadata::SmallItem::chunkUid, ns3::ObjectBase::GetInstanceTypeId(), ns3::TypeId::GetUid(), IsStateOk(), m_chunkUid, m_enable, m_metadataSkipped, m_tail, ns3::PacketMetadata::SmallItem::next, NS_ASSERT, NS_LOG_FUNCTION, ns3::PacketMetadata::SmallItem::prev, ns3::PacketMetadata::SmallItem::size, ns3::PacketMetadata::SmallItem::typeUid, and UpdateTail().
Referenced by ns3::Packet::AddTrailer().
|
staticprivate |
Definition at line 630 of file packet-metadata.cc.
References data, ns3::PacketMetadata::Data::m_count, ns3::PacketMetadata::Data::m_dirtyEnd, ns3::PacketMetadata::Data::m_size, NS_LOG_FUNCTION, and PACKET_METADATA_DATA_M_DATA_SIZE.
Referenced by Create().
|
inlineprivate |
Definition at line 237 of file packet-metadata.cc.
References NS_LOG_FUNCTION.
Referenced by AddBig(), AddSmall(), ReplaceTail(), ReserveCopy(), UpdateHead(), and UpdateTail().
|
inlineprivate |
Definition at line 245 of file packet-metadata.cc.
References NS_LOG_FUNCTION.
Referenced by AddBig(), and ReplaceTail().
|
inlineprivate |
Definition at line 302 of file packet-metadata.cc.
References AppendValueExtra(), and NS_LOG_FUNCTION.
Referenced by AddBig(), AddSmall(), and ReplaceTail().
|
private |
Definition at line 255 of file packet-metadata.cc.
References NS_LOG_FUNCTION.
Referenced by AppendValue().
PacketMetadata::ItemIterator ns3::PacketMetadata::BeginItem | ( | Buffer | buffer | ) | const |
Definition at line 1058 of file packet-metadata.cc.
References ItemIterator, and NS_LOG_FUNCTION.
Referenced by ns3::Packet::BeginItem(), and ns3::Packet::Print().
|
staticprivate |
Definition at line 582 of file packet-metadata.cc.
References Allocate(), data, Deallocate(), ns3::PacketMetadata::Data::m_count, m_freeList, m_maxSize, ns3::PacketMetadata::Data::m_size, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
Referenced by ReserveCopy().
PacketMetadata ns3::PacketMetadata::CreateFragment | ( | uint32_t | start, |
uint32_t | end | ||
) | const |
start | the amount of stuff to remove from the start |
end | the amount of stuff to remove from the end |
Calling this method is equivalent to calling RemoveAtStart (start) and then, RemoveAtEnd (end).
Definition at line 656 of file packet-metadata.cc.
References NS_LOG_FUNCTION, RemoveAtEnd(), and RemoveAtStart().
Referenced by ns3::Packet::CreateFragment().
|
staticprivate |
Definition at line 647 of file packet-metadata.cc.
References NS_LOG_FUNCTION.
Referenced by Create(), Recycle(), and ns3::PacketMetadata::DataFreeList::~DataFreeList().
uint32_t ns3::PacketMetadata::Deserialize | ( | const uint8_t * | buffer, |
uint32_t | size | ||
) |
Definition at line 1295 of file packet-metadata.cc.
References AddBig(), ns3::PacketMetadata::SmallItem::chunkUid, ns3::PacketMetadata::ExtraItem::fragmentEnd, ns3::PacketMetadata::ExtraItem::fragmentStart, ns3::TypeId::GetUid(), ns3::TypeId::LookupByName(), m_packetUid, m_tail, NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::PacketMetadata::ExtraItem::packetUid, ReadFromRawU16(), ReadFromRawU32(), ReadFromRawU64(), ReadFromRawU8(), ns3::PacketMetadata::SmallItem::size, visualizer.core::start(), ns3::PacketMetadata::SmallItem::typeUid, and UpdateTail().
Referenced by ns3::Packet::Deserialize().
|
private |
Definition at line 675 of file packet-metadata.cc.
References AddSmall(), ns3::PacketMetadata::SmallItem::chunkUid, m_chunkUid, m_enable, m_head, m_metadataSkipped, ns3::PacketMetadata::SmallItem::next, NS_LOG_FUNCTION, ns3::PacketMetadata::SmallItem::prev, ns3::PacketMetadata::SmallItem::size, ns3::PacketMetadata::SmallItem::typeUid, and UpdateHead().
Referenced by AddHeader(), and PacketMetadata().
|
static |
Definition at line 52 of file packet-metadata.cc.
References m_enable, m_metadataSkipped, NS_ASSERT_MSG, and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::EpcTftClassifierTestCase::DoRun(), EnableChecking(), and ns3::Packet::EnablePrinting().
|
static |
Definition at line 66 of file packet-metadata.cc.
References Enable(), m_enableChecking, and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Packet::EnableChecking().
uint32_t ns3::PacketMetadata::GetSerializedSize | ( | void | ) | const |
Definition at line 1149 of file packet-metadata.cc.
References current, ns3::TypeId::GetName(), m_enable, m_head, m_tail, ns3::PacketMetadata::SmallItem::next, NS_ASSERT, NS_LOG_FUNCTION, ReadItems(), ns3::TypeId::SetUid(), and ns3::PacketMetadata::SmallItem::typeUid.
Referenced by ns3::Packet::GetSerializedSize(), and ns3::Packet::Serialize().
|
private |
Definition at line 1029 of file packet-metadata.cc.
References current, m_head, m_tail, ns3::PacketMetadata::SmallItem::next, NS_ASSERT, NS_LOG_FUNCTION, and ReadItems().
uint64_t ns3::PacketMetadata::GetUid | ( | void | ) | const |
Definition at line 1052 of file packet-metadata.cc.
References m_packetUid, and NS_LOG_FUNCTION.
Referenced by ns3::Packet::GetUid().
|
inlineprivate |
Definition at line 165 of file packet-metadata.cc.
References NS_LOG_FUNCTION.
Referenced by AddBig(), AddSmall(), and ReplaceTail().
|
private |
Definition at line 125 of file packet-metadata.cc.
References m_used, and NS_LOG_FUNCTION.
Referenced by IsStateOk().
|
private |
Definition at line 118 of file packet-metadata.cc.
References m_data, ns3::PacketMetadata::Data::m_size, and NS_LOG_FUNCTION.
Referenced by IsStateOk().
|
private |
Definition at line 133 of file packet-metadata.cc.
References current, IsPointerOk(), IsSharedPointerOk(), m_data, m_head, ns3::PacketMetadata::Data::m_size, m_tail, m_used, ns3::PacketMetadata::SmallItem::next, NS_LOG_FUNCTION, ns3::PacketMetadata::SmallItem::prev, and ReadItems().
Referenced by AddAtEnd(), AddHeader(), AddTrailer(), RemoveAtEnd(), RemoveAtStart(), RemoveHeader(), and RemoveTrailer().
|
inline |
Definition at line 391 of file packet-metadata.h.
References ns3::PacketMetadata::Data::m_count, m_data, m_head, m_packetUid, m_tail, m_used, NS_ASSERT, and Recycle().
|
staticprivate |
Definition at line 1453 of file packet-metadata.cc.
References current, and NS_LOG_FUNCTION.
Referenced by Deserialize().
|
staticprivate |
Definition at line 1469 of file packet-metadata.cc.
References current, and NS_LOG_FUNCTION.
Referenced by Deserialize().
|
staticprivate |
Definition at line 1485 of file packet-metadata.cc.
References current, and NS_LOG_FUNCTION.
Referenced by Deserialize().
|
staticprivate |
Definition at line 1437 of file packet-metadata.cc.
References current, and NS_LOG_FUNCTION.
Referenced by Deserialize().
|
private |
current | the offset we should start reading the data from |
item | pointer to where we should store the data to return to the caller |
extraItem | pointer to where we should store the data to return to the caller |
Definition at line 540 of file packet-metadata.cc.
References ns3::PacketMetadata::SmallItem::chunkUid, current, ns3::PacketMetadata::ExtraItem::fragmentEnd, ns3::PacketMetadata::ExtraItem::fragmentStart, ns3::PacketMetadata::Data::m_data, m_data, m_packetUid, ns3::PacketMetadata::Data::m_size, ns3::PacketMetadata::SmallItem::next, NS_ASSERT, NS_LOG_FUNCTION, ns3::PacketMetadata::ExtraItem::packetUid, ns3::PacketMetadata::SmallItem::prev, ReadUleb128(), ns3::PacketMetadata::SmallItem::size, and ns3::PacketMetadata::SmallItem::typeUid.
Referenced by AddAtEnd(), GetSerializedSize(), GetTotalSize(), IsStateOk(), RemoveAtEnd(), RemoveAtStart(), RemoveHeader(), RemoveTrailer(), ReplaceTail(), and Serialize().
|
private |
Definition at line 187 of file packet-metadata.cc.
References NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by ReadItems().
|
staticprivate |
Definition at line 608 of file packet-metadata.cc.
References Deallocate(), ns3::PacketMetadata::Data::m_count, m_enable, m_freeList, m_maxSize, ns3::PacketMetadata::Data::m_size, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
Referenced by operator=(), ReserveCopy(), and ~PacketMetadata().
void ns3::PacketMetadata::RemoveAtEnd | ( | uint32_t | end | ) |
Definition at line 964 of file packet-metadata.cc.
References AddBig(), current, IsStateOk(), m_data, m_enable, m_head, m_metadataSkipped, m_packetUid, m_tail, NS_ASSERT, NS_LOG_FUNCTION, ns3::PacketMetadata::SmallItem::prev, ReadItems(), ns3::PacketMetadata::SmallItem::size, and UpdateHead().
Referenced by CreateFragment(), and ns3::Packet::RemoveAtEnd().
void ns3::PacketMetadata::RemoveAtStart | ( | uint32_t | start | ) |
Definition at line 901 of file packet-metadata.cc.
References AddBig(), current, IsStateOk(), m_data, m_enable, m_head, m_metadataSkipped, m_packetUid, m_tail, ns3::PacketMetadata::SmallItem::next, NS_ASSERT, NS_LOG_FUNCTION, ReadItems(), ns3::PacketMetadata::SmallItem::size, visualizer.core::start(), and UpdateTail().
Referenced by CreateFragment(), and ns3::Packet::RemoveAtStart().
void ns3::PacketMetadata::RemoveHeader | ( | Header const & | header, |
uint32_t | size | ||
) |
Definition at line 695 of file packet-metadata.cc.
References ns3::PacketMetadata::ExtraItem::fragmentEnd, ns3::PacketMetadata::ExtraItem::fragmentStart, ns3::ObjectBase::GetInstanceTypeId(), ns3::TypeId::GetUid(), IsStateOk(), m_enable, m_enableChecking, m_head, m_metadataSkipped, m_tail, m_used, ns3::PacketMetadata::SmallItem::next, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, ReadItems(), ns3::PacketMetadata::SmallItem::size, and ns3::PacketMetadata::SmallItem::typeUid.
Referenced by ns3::Packet::RemoveHeader().
void ns3::PacketMetadata::RemoveTrailer | ( | Trailer const & | trailer, |
uint32_t | size | ||
) |
Definition at line 765 of file packet-metadata.cc.
References ns3::PacketMetadata::ExtraItem::fragmentEnd, ns3::PacketMetadata::ExtraItem::fragmentStart, ns3::ObjectBase::GetInstanceTypeId(), ns3::TypeId::GetUid(), IsStateOk(), m_enable, m_enableChecking, m_head, m_metadataSkipped, m_tail, m_used, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::PacketMetadata::SmallItem::prev, ReadItems(), ns3::PacketMetadata::SmallItem::size, and ns3::PacketMetadata::SmallItem::typeUid.
Referenced by ns3::Packet::RemoveTrailer().
|
private |
item | the item data to write |
extraItem | the extra item data to write |
available | the number of bytes which can be written without having to rewrite the buffer entirely. |
Definition at line 457 of file packet-metadata.cc.
References AddBig(), Append16(), Append32(), AppendValue(), ns3::PacketMetadata::SmallItem::chunkUid, current, ns3::PacketMetadata::ExtraItem::fragmentEnd, ns3::PacketMetadata::ExtraItem::fragmentStart, GetUleb128Size(), ns3::PacketMetadata::Data::m_count, ns3::PacketMetadata::Data::m_data, m_data, ns3::PacketMetadata::Data::m_dirtyEnd, m_head, m_packetUid, ns3::PacketMetadata::Data::m_size, m_tail, m_used, ns3::PacketMetadata::SmallItem::next, NS_ASSERT, NS_LOG_FUNCTION, ns3::PacketMetadata::ExtraItem::packetUid, ns3::PacketMetadata::SmallItem::prev, ReadItems(), ns3::PacketMetadata::SmallItem::size, ns3::PacketMetadata::SmallItem::typeUid, and UpdateTail().
Referenced by AddAtEnd().
|
inlineprivate |
Definition at line 99 of file packet-metadata.cc.
References ns3::PacketMetadata::Data::m_count, m_data, ns3::PacketMetadata::Data::m_dirtyEnd, m_head, ns3::PacketMetadata::Data::m_size, m_used, NS_ASSERT, NS_LOG_FUNCTION, and ReserveCopy().
|
private |
Definition at line 74 of file packet-metadata.cc.
References Append16(), Create(), ns3::PacketMetadata::Data::m_count, ns3::PacketMetadata::Data::m_data, m_data, ns3::PacketMetadata::Data::m_dirtyEnd, m_head, m_tail, m_used, NS_ASSERT, NS_LOG_FUNCTION, Recycle(), and visualizer.core::start().
Referenced by AddBig(), AddSmall(), and Reserve().
uint32_t ns3::PacketMetadata::Serialize | ( | uint8_t * | buffer, |
uint32_t | maxSize | ||
) | const |
Definition at line 1194 of file packet-metadata.cc.
References AddToRaw(), AddToRawU16(), AddToRawU32(), AddToRawU64(), AddToRawU8(), ns3::PacketMetadata::SmallItem::chunkUid, current, ns3::PacketMetadata::ExtraItem::fragmentEnd, ns3::PacketMetadata::ExtraItem::fragmentStart, ns3::TypeId::GetName(), m_head, m_packetUid, m_tail, ns3::PacketMetadata::SmallItem::next, NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::PacketMetadata::ExtraItem::packetUid, ReadItems(), ns3::TypeId::SetUid(), ns3::PacketMetadata::SmallItem::size, visualizer.core::start(), and ns3::PacketMetadata::SmallItem::typeUid.
Referenced by ns3::Packet::Serialize().
|
inlineprivate |
Definition at line 349 of file packet-metadata.cc.
References Append16(), ns3::PacketMetadata::Data::m_data, m_data, ns3::PacketMetadata::Data::m_dirtyEnd, m_head, m_tail, m_used, NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by DoAddHeader(), and RemoveAtEnd().
|
inlineprivate |
Definition at line 322 of file packet-metadata.cc.
References Append16(), ns3::PacketMetadata::Data::m_data, m_data, ns3::PacketMetadata::Data::m_dirtyEnd, m_head, m_tail, m_used, NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by AddAtEnd(), AddTrailer(), Deserialize(), RemoveAtStart(), and ReplaceTail().
|
friend |
Definition at line 302 of file packet-metadata.h.
Referenced by BeginItem().
|
staticprivate |
Definition at line 348 of file packet-metadata.h.
Referenced by AddTrailer(), and DoAddHeader().
|
private |
Definition at line 350 of file packet-metadata.h.
Referenced by AddBig(), AddSmall(), IsSharedPointerOk(), IsStateOk(), operator=(), PacketMetadata(), ReadItems(), RemoveAtEnd(), RemoveAtStart(), ReplaceTail(), Reserve(), ReserveCopy(), UpdateHead(), UpdateTail(), and ~PacketMetadata().
|
staticprivate |
Definition at line 339 of file packet-metadata.h.
Referenced by AddAtEnd(), AddPaddingAtEnd(), AddTrailer(), DoAddHeader(), Enable(), GetSerializedSize(), Recycle(), RemoveAtEnd(), RemoveAtStart(), RemoveHeader(), RemoveTrailer(), and ns3::PacketMetadata::DataFreeList::~DataFreeList().
|
staticprivate |
Definition at line 340 of file packet-metadata.h.
Referenced by EnableChecking(), RemoveHeader(), and RemoveTrailer().
|
staticprivate |
Definition at line 338 of file packet-metadata.h.
|
private |
head -(next)-> tail ^ | ---(prev)—|
Definition at line 356 of file packet-metadata.h.
Referenced by AddAtEnd(), AddBig(), AddSmall(), DoAddHeader(), GetSerializedSize(), GetTotalSize(), IsStateOk(), operator=(), RemoveAtEnd(), RemoveAtStart(), RemoveHeader(), RemoveTrailer(), ReplaceTail(), Reserve(), ReserveCopy(), Serialize(), UpdateHead(), and UpdateTail().
|
staticprivate |
Definition at line 347 of file packet-metadata.h.
|
staticprivate |
Definition at line 345 of file packet-metadata.h.
Referenced by AddAtEnd(), AddPaddingAtEnd(), AddTrailer(), DoAddHeader(), Enable(), RemoveAtEnd(), RemoveAtStart(), RemoveHeader(), and RemoveTrailer().
|
private |
Definition at line 359 of file packet-metadata.h.
Referenced by Deserialize(), GetUid(), operator=(), ReadItems(), RemoveAtEnd(), RemoveAtStart(), ReplaceTail(), and Serialize().
|
private |
Definition at line 357 of file packet-metadata.h.
Referenced by AddAtEnd(), AddTrailer(), Deserialize(), GetSerializedSize(), GetTotalSize(), IsStateOk(), operator=(), RemoveAtEnd(), RemoveAtStart(), RemoveHeader(), RemoveTrailer(), ReplaceTail(), ReserveCopy(), Serialize(), UpdateHead(), and UpdateTail().
|
private |
Definition at line 358 of file packet-metadata.h.
Referenced by AddBig(), AddSmall(), IsPointerOk(), IsStateOk(), operator=(), RemoveHeader(), RemoveTrailer(), ReplaceTail(), Reserve(), ReserveCopy(), UpdateHead(), and UpdateTail().