<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>