On Tue, May 16, 2017 at 06:34:38PM -0400, Willem de Bruijn wrote: > On Tue, May 16, 2017 at 8:44 AM, Miroslav Lichvar <mlich...@redhat.com> wrote: > > If software timestamping is enabled by the SO_TIMESTAMP(NS) option > > when a message without timestamp is already waiting in the queue, the > > __sock_recv_timestamp() function will read the current time to make a > > timestamp in order to always have something for the application. > > > > However, this applies also to outgoing packets looped back to the error > > queue when hardware timestamping is enabled by the SO_TIMESTAMPING > > option. > > This is already the case for sockets that have both software receive > timestamps and hardware tx timestamps enabled, independent from > the new option SOF_TIMESTAMPING_OPT_TX_SWHW, right? If so, > then this behavior must remain.
Even if we consider that it's not actually returning a valid TX timestamp and it didn't behave as documented ("Only one field is non-zero at any time")? On the RX side this timestamp does make some sense as it could be viewed as a very late timestamp, correctly ordered after the HW timestamp, but on the TX side the order is reversed and returning a timestamp later than the actual transmission might break a protocol. If you don't see it as a bug fix, I think this weird interaction between the SO_TIMESTAMPING(NS) and SO_TIMESTAMPING options needs to be documented. -- Miroslav Lichvar