diff --git a/src/common/packet-metadata.cc b/src/common/packet-metadata.cc index 54b2a7997..103061d81 100644 --- a/src/common/packet-metadata.cc +++ b/src/common/packet-metadata.cc @@ -36,7 +36,6 @@ bool PacketMetadata::m_metadataSkipped = false; uint32_t PacketMetadata::m_maxSize = 0; uint16_t PacketMetadata::m_chunkUid = 0; PacketMetadata::DataFreeList PacketMetadata::m_freeList; -bool g_optOne = false; PacketMetadata::DataFreeList::~DataFreeList () { @@ -60,12 +59,6 @@ PacketMetadata::Enable (void) m_enable = true; } -void -PacketMetadata::SetOptOne (bool optOne) -{ - g_optOne = optOne; -} - void PacketMetadata::ReserveCopy (uint32_t size) { @@ -186,27 +179,6 @@ PacketMetadata::Append16 (uint16_t value, uint8_t *buffer) buffer[1] = value; } bool -PacketMetadata::TryToAppendFast (uint32_t value, uint8_t **pBuffer, uint8_t *end) -{ - uint8_t *start = *pBuffer; - if (value < 0x80 && start < end) - { - start[0] = value; - *pBuffer = start + 1; - return true; - } - if (value < 0x4000 && start + 1 < end) - { - uint8_t byte = value & (~0x80); - start[0] = 0x80 | byte; - value >>= 7; - start[1] = value; - *pBuffer = start + 2; - return true; - } - return false; -} -bool PacketMetadata::TryToAppend16 (uint16_t value, uint8_t **pBuffer, uint8_t *end) { uint8_t *start = *pBuffer; @@ -423,65 +395,32 @@ PacketMetadata::AddSmall (const struct PacketMetadata::SmallItem *item) { NS_ASSERT (m_data != 0); NS_ASSERT (m_used != item->prev && m_used != item->next); - if (g_optOne) - { - uint32_t typeUidSize = GetUleb128Size (item->typeUid); - uint32_t sizeSize = GetUleb128Size (item->size); - uint32_t n = typeUidSize + sizeSize + 2 + 2 + 2; - restart: - if (m_used + n <= m_data->m_size && - (m_head == 0xffff || - m_data->m_count == 1 || - m_used == m_data->m_dirtyEnd)) - { - uint8_t *buffer = &m_data->m_data[m_used]; - Append16 (item->next, buffer); - buffer += 2; - Append16 (item->prev, buffer); - buffer += 2; - AppendValue (item->typeUid, buffer); - buffer += typeUidSize; - AppendValue (item->size, buffer); - buffer += sizeSize; - Append16 (item->chunkUid, buffer); - } - else - { - ReserveCopy (n); - goto restart; - } - return n; - } - append: - uint8_t *start = &m_data->m_data[m_used]; - uint8_t *end = &m_data->m_data[m_data->m_size]; - if (end - start >= 8 && + uint32_t typeUidSize = GetUleb128Size (item->typeUid); + uint32_t sizeSize = GetUleb128Size (item->size); + uint32_t n = typeUidSize + sizeSize + 2 + 2 + 2; + restart: + if (m_used + n <= m_data->m_size && (m_head == 0xffff || m_data->m_count == 1 || m_used == m_data->m_dirtyEnd)) { - uint8_t *buffer = start; - + uint8_t *buffer = &m_data->m_data[m_used]; Append16 (item->next, buffer); buffer += 2; Append16 (item->prev, buffer); buffer += 2; - if (TryToAppendFast (item->typeUid, &buffer, end) && - TryToAppendFast (item->size, &buffer, end) && - TryToAppend16 (item->chunkUid, &buffer, end)) - { - uintptr_t written = buffer - start; - NS_ASSERT (written <= 0xffff); - NS_ASSERT (written >= 8); - return written; - } + AppendValue (item->typeUid, buffer); + buffer += typeUidSize; + AppendValue (item->size, buffer); + buffer += sizeSize; + Append16 (item->chunkUid, buffer); } - uint32_t n = GetUleb128Size (item->typeUid); - n += GetUleb128Size (item->size); - n += 2; - n += 2 + 2; - Reserve (n); - goto append; + else + { + ReserveCopy (n); + goto restart; + } + return n; } uint16_t diff --git a/src/common/packet-metadata.h b/src/common/packet-metadata.h index 80a5402f4..348970513 100644 --- a/src/common/packet-metadata.h +++ b/src/common/packet-metadata.h @@ -124,7 +124,6 @@ public: }; static void Enable (void); - static void SetOptOne (bool optOne); inline PacketMetadata (uint32_t uid, uint32_t size); inline PacketMetadata (PacketMetadata const &o); @@ -254,7 +253,6 @@ private: uint32_t ReadUleb128 (const uint8_t **pBuffer) const; inline void Append16 (uint16_t value, uint8_t *buffer); inline bool TryToAppend (uint32_t value, uint8_t **pBuffer, uint8_t *end); - inline bool TryToAppendFast (uint32_t value, uint8_t **pBuffer, uint8_t *end); inline bool TryToAppend32 (uint32_t value, uint8_t **pBuffer, uint8_t *end); inline bool TryToAppend16 (uint16_t value, uint8_t **pBuffer, uint8_t *end); void AppendValue (uint32_t value, uint8_t *buffer); diff --git a/utils/bench-packets.cc b/utils/bench-packets.cc index 348454829..b2da90dd6 100644 --- a/utils/bench-packets.cc +++ b/utils/bench-packets.cc @@ -224,14 +224,9 @@ int main (int argc, char *argv[]) runBench (&benchPtrC, n, "c"); //runBench (&benchPrint, n, "print"); - PacketMetadata::SetOptOne (false); runBench (&benchPtrA, n, "meta-a"); runBench (&benchPtrB, n, "meta-b"); runBench (&benchPtrC, n, "meta-c"); - PacketMetadata::SetOptOne (true); - runBench (&benchPtrA, n, "meta-a-opt"); - runBench (&benchPtrB, n, "meta-b-opt"); - runBench (&benchPtrC, n, "meta-c-opt"); return 0;