22 #include "ns3/lte-rlc-am-header.h"
23 #include "ns3/packet.h"
51 uint32_t psize = pkt->
GetSize();
52 uint8_t buffer[psize];
53 std::ostringstream oss(std::ostringstream::out);
55 for (uint32_t i = 0; i < psize; i++)
57 oss << std::setfill(
'0') << std::setw(2) << std::hex << (uint32_t)buffer[i];
69 uint32_t psize = pkt->
GetSize();
70 uint8_t buffer[psize];
71 std::ostringstream oss(std::ostringstream::out);
73 for (uint32_t i = 0; i < psize; i++)
75 oss << (std::bitset<8>(buffer[i]));
77 return std::string(oss.str() +
"\n");
86 NS_LOG_DEBUG(
"---- SERIALIZED PACKET CONTENTS (HEX): -------");
99 NS_LOG_DEBUG(
"--------- " << s.data() <<
" INFO: -------");
100 std::ostringstream oss(std::ostringstream::out);
122 std::list<SequenceNumber10> nackSnList,
126 void DoRun()
override;
134 std::list<SequenceNumber10> nackSnList,
138 m_nackSnList(nackSnList),
164 "serialized packet content " << hex <<
" differs from test vector "
178 "deserialized NACK SN differs from test vector");
202 std::list<SequenceNumber10> nackSnList;
203 std::string hex(
"0020");
209 std::list<SequenceNumber10> nackSnList;
210 std::string hex(
"0da4");
216 const std::list<SequenceNumber10> nackSnList{
219 std::string hex(
"000bb480");
225 const std::list<SequenceNumber10> nackSnList{
229 std::string hex(
"000bfed790");
235 const std::list<SequenceNumber10> nackSnList{
240 std::string hex(
"000bfed795d980");
246 const std::list<SequenceNumber10> nackSnList{
252 std::string hex(
"000bfed795d9cad8");
uint32_t RemoveHeader(Header &header)
Deserialize and remove the header from the internal buffer.
void AddHeader(const Header &header)
Add header to this packet.
uint32_t GetSize() const
Returns the the size in bytes of the packet (including the zero-filled initial payload).
uint32_t CopyData(uint8_t *buffer, uint32_t size) const
Copy the packet contents to a byte buffer.
Rlc Am Status Pdu Test Case.
std::string m_hex
hex string
std::list< SequenceNumber10 > m_nackSnList
list of nack sequence numbers
void DoRun() override
Implementation to actually run this TestCase.
RlcAmStatusPduTestCase(SequenceNumber10 ackSn, std::list< SequenceNumber10 > nackSnList, std::string hex)
Constructor.
SequenceNumber10 m_ackSn
ack sequence number
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
static std::string sprintPacketContentsBin(Ptr< Packet > pkt)
Function to convert packet contents in binary format.
static std::string sprintPacketContentsHex(Ptr< Packet > pkt)
Function to convert packet contents in hex format.
static void LogPacketInfo(T source, std::string s)
Log packet info function.
static void LogPacketContents(Ptr< Packet > pkt)
Function to log packet contents.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
ns3::LteRlcHeaderTestSuite staticLteRlcHeaderTestSuiteInstance
the test suite
#define NS_TEST_ASSERT_MSG_LT(actual, limit, msg)
Test that an actual value is less than a limit and report and abort if not.
#define NS_TEST_ASSERT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report and abort if not.
#define NS_TEST_ASSERT_MSG_GT(actual, limit, msg)
Test that an actual value is greater than a limit and report and abort if not.
Every class exported by the ns3 library is enclosed in the ns3 namespace.