Re: skb->tstamp == 0.00000 ?
From: Oliver Hartkopp <socketcan@hartkopp.net>
Date: 2011-11-20 17:15:35
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