netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* skb->tstamp == 0.00000 ?
@ 2011-11-19 21:18 Felipe Dias
  2011-11-20 17:15 ` Oliver Hartkopp
  0 siblings, 1 reply; 2+ messages in thread
From: Felipe Dias @ 2011-11-19 21:18 UTC (permalink / raw)
  To: netdev

Hi..

Please let me know if this isnt right list to this kind of question.

I'm registering a new protocol handler with dev_add_pack. I would like
to know only the difference between timestamp on skb->tstamp and the
time of reception by my module.

So I do:
----
struct timeval time_skb, time_module;
do_gettimeofday(&time_module):
skb_get_timestamp(skb, &time_skb);
---

And time_skb.tv_sec and time_skb.tv_usec are equal to 0;

I'm doing some wrong ?

Best regards,
Felipe

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: skb->tstamp == 0.00000 ?
  2011-11-19 21:18 skb->tstamp == 0.00000 ? Felipe Dias
@ 2011-11-20 17:15 ` Oliver Hartkopp
  0 siblings, 0 replies; 2+ messages in thread
From: Oliver Hartkopp @ 2011-11-20 17:15 UTC (permalink / raw)
  To: Felipe Dias; +Cc: netdev

On 19.11.2011 22:18, Felipe Dias wrote:

> Hi..
> 
> Please let me know if this isnt right list to this kind of question.
> 
> I'm registering a new protocol handler with dev_add_pack. I would like
> to know only the difference between timestamp on skb->tstamp and the
> time of reception by my module.


Hello Felipe,

tstamp is a ktime_t type, which is a timestamp in nanosecs

http://lxr.linux.no/#linux+v3.1.1/include/linux/ktime.h#L28

The value in the skbuff

http://lxr.linux.no/#linux+v3.1.1/include/linux/skbuff.h#L347

is usually set at PDU reception time -> see netif_rx().

http://lxr.linux.no/#linux+v3.1.1/net/core/dev.c#L2879

where net_timestamp_check(skb) is executed which usually sets the timestamp
when timestamping is activated.

So when your netdevice creates a proper skbuff (e.g. using skb_alloc) the
timestamp is set to zero and therefore set to the receive time in
net_timestamp_check().


> 
> So I do:
> ----
> struct timeval time_skb, time_module;
> do_gettimeofday(&time_module):
> skb_get_timestamp(skb, &time_skb);
> ---
> 
> And time_skb.tv_sec and time_skb.tv_usec are equal to 0;
> 
> I'm doing some wrong ?


Hm, i don't see, why you convert ktime_t to timeval.

You better work on skb->tstamp with the ktime functions directly, e.g. with
skb_get_ktime().

I hope this gives you a bit more insight in skb->tstamp - even if i don't know
your problem in detail %-)

Regards,
Oliver

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-11-20 17:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-19 21:18 skb->tstamp == 0.00000 ? Felipe Dias
2011-11-20 17:15 ` Oliver Hartkopp

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).