<html>
<head>
<base href="https://bugzilla.netfilter.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED FIXED - nfq_get_timestamp() not setting timeval struc"
href="https://bugzilla.netfilter.org/show_bug.cgi?id=1066#c2">Comment # 2</a>
on <a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED FIXED - nfq_get_timestamp() not setting timeval struc"
href="https://bugzilla.netfilter.org/show_bug.cgi?id=1066">bug 1066</a>
from <span class="vcard"><a class="email" href="mailto:emacsuser123@gmail.com" title="emacsuser123@gmail.com">emacsuser123@gmail.com</a>
</span></b>
<pre>(In reply to Florian Westphal from <a href="show_bug.cgi?id=1066#c1">comment #1</a>)
<span class="quote">> (In reply to emacsuser123 from <a href="show_bug.cgi?id=1066#c0">comment #0</a>)
> > Hi.
> >
> > I'm developing an application that makes use of NFQUEUE functionality.
> >
> > When using Ubuntu with recent kernels (4.4 and onwards), I'm having trouble
> > trying to get the packet timestamp by means of nfq_get_timestamp.
> > It seems that it does nothing with the timeval struct passed as an input
> > parameter. So, I always get 0 on both tv_sec and tv_usec fields.
> >
> > If I use older kernels (3.3, for instance), I have no problem at all. The
> > timeval struct is filled in successfully and I get the proper timestamp from
> > the kernel.
> >
> > I have also tried to set the queue socket options to SO_TIMESTAMP
> > explicitly, just in case. The call to setsockopt goes smoothly, but it seems
> > that nfq_get_timestamp is not taking that into account.
> >
> > I'm not sure what else could be done here, to be honest.
> >
> > Any ideas?
> >
> > Thanks a lot.
> > -Bob
>
> Kernel bug, this should fix it:
>
> diff --git a/net/netfilter/nfnetlink_queue.c
> b/net/netfilter/nfnetlink_queue.c
> --- a/net/netfilter/nfnetlink_queue.c
> +++ b/net/netfilter/nfnetlink_queue.c
> @@ -557,7 +557,7 @@ nfqnl_build_packet_message(struct net *net, struct
> nfqnl_instance *queue,
>
> if (entskb->tstamp.tv64) {
> struct nfqnl_msg_packet_timestamp ts;
> - struct timespec64 kts = ktime_to_timespec64(skb->tstamp);
> + struct timespec64 kts = ktime_to_timespec64(entskb->tstamp);
>
> ts.sec = cpu_to_be64(kts.tv_sec);
> ts.usec = cpu_to_be64(kts.tv_nsec / NSEC_PER_USEC);</span >
Hi.
Do you happen to know which official kernel stable release 4.x will include
this fix?
I've downloaded the latest one, v.4.4.20, and the fix is not there.
Thanks.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are watching all bug changes.</li>
</ul>
</body>
</html>