[ndnSIM] How to get the current data packet size of a certain interface per second?

ZHANG, Lu lu.zhang at fuji.waseda.jp
Tue Jun 13 00:55:36 PDT 2017

Dear Junxiao and all,

Thanks for your answer. In fact there may be something wrong with my
expression. What I really want to know is the traffic payload at a certain
second( in kilobyte or something).

As you know, function "data-> GetWire() -> GetSize()" can give the result
of payload at a moment, as I get this info from "ndn-l3-rate-tracer.cc":

*L3RateTracer::OutData  (Ptr<const Data> data,*
*                        bool fromCache, Ptr<const Face> face)*
*  m_stats[face].get<0> ().m_outData ++;*
*  if (data->GetWire ())*
*    {*
*      m_stats[face].get<1> ().m_outData += data->GetWire ()->GetSize (); *
*    }*

Sorry for any misunderstanding about my previous question.

1 more question is, I cannot use time(NULL) function in file
"ndn-forwarding-strategy.cc" as I always get the error

*"error: expected primary-expression before ‘(’ token"*
*                      ^*
I did something like this:

in "ndn-forwarding strategy.h" I put below* in public field.*

  int  lastTime;
  int  now;

When I was invoking lastTime by using "*lastTime =time(NULL)*", I got the
problem above.

It should be a simple problem but I just cannot find the reason. Would you
please help?

Thanks in advance and best wishes,

Lu Zhang

2017年6月12日星期一,Junxiao Shi <shijunxiao at email.arizona.edu> 写道:

> Hi Lu
> I want to get the packet size as I want to calculate if there is any
>> congestion. I would like to get the value and invoke this value by other
>> functions in ForwardingStretegy.
> You may get Interest and Data size as follows:
> size_t pktSize = interest.wireEncode().size();
> size_t pktSize = data.wireEncode().size();
> These reflect the number of octets in the network-layer packet. Forwarding
> does not have access to the link-layer packet, so there's no way to get
> LpPacket size or Nack size. If you really need LpPacket size, you'll have
> to add a tag in LinkService.
> Most importantly, I want the value to be get once per second.
> Forwarding is event-driven and triggerred every time a packet arrives. It
> does not make sense to get the packet size of a given second if no packet
> arrives within that second.
> For the periods in which there are packet arrivals, you may use the code
> above to collect the size of each packet, and do an average.
> Collected information should be placed in the measurements table. Strategy
> instance itself must be stateless.
> Yours, Junxiao
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20170613/d5f67270/attachment.html>

More information about the ndnSIM mailing list