Calculate Packet Received time in ns3

General Tech Bugs & Fixes 2 years ago

0 1 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Bugs & Fixes related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (1)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 years ago

 

I have the following code in c++ in ns3 used when a packet is received to print its content and its arrival time using

    Simulator::Now ().GetSeconds() 

but it turns zeros every time. Can anyone tell me why? and how can I get the real time?

Ptr<const Packet> p = packet;
LrWpanMacHeader h;
p->PeekHeader(h); //remove the header in order to print packet 
    content, so that's why the size differ between packet and p
    BasicPacketData bpd (p);
std::cout<<"Packet Size:"<<p->GetSize()<<std::endl;
uint8_t *buffer = new uint8_t[p->GetSize()];
p->CopyData (buffer, p->GetSize());
std::string receivedData(buffer, buffer+p->GetSize ());
std::cout<<"Received:"<<receivedData.c_str()<<std::endl;


if(!h.IsAcknowledgment()) //Returns true if the header is an ack
{

    NS_LOG_UNCOND ("----------Packet received----------\n"
            << "Packet of size " << bpd.size << " bytes received\n"
            << "on device with address "<< dev3->GetMac()->GetShortAddress()<<"\n"
            << "was sent from address " << dev->GetMac()->GetShortAddress() << "\n"
                           // << "on device with address "<< bpd.dst<<"\n"
            //<< "was sent from address " << bpd.src << "\n"
            << "sequence number is " << (int) bpd.seq_nr << "\n"
            << "PAN ID is " << bpd.pan_id << "\n"
                            <<"with time "<< " on time: " << Simulator::Now ().GetSeconds() <<    "s"
            << "----------Packet received------------\n\n"

    );

No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.