net-timestamp: COMPLETION timestamp on packet tx completion
authorPauli Virtanen <pav@iki.fi>
Tue, 18 Mar 2025 19:06:42 +0000 (21:06 +0200)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Tue, 25 Mar 2025 16:48:05 +0000 (12:48 -0400)
commit983e0e4e87bdf465e8424b1902e41bfe51ba128a
tree599b5d17f526ff34ac471ddaf393e19489bc3e2d
parentb257e02ecc46f8561d8bd88943164a10c9e90a80
net-timestamp: COMPLETION timestamp on packet tx completion

Add SOF_TIMESTAMPING_TX_COMPLETION, for requesting a software timestamp
when hardware reports a packet completed.

Completion tstamp is useful for Bluetooth, as hardware timestamps do not
exist in the HCI specification except for ISO packets, and the hardware
has a queue where packets may wait.  In this case the software SND
timestamp only reflects the kernel-side part of the total latency
(usually small) and queue length (usually 0 unless HW buffers
congested), whereas the completion report time is more informative of
the true latency.

It may also be useful in other cases where HW TX timestamps cannot be
obtained and user wants to estimate an upper bound to when the TX
probably happened.

Signed-off-by: Pauli Virtanen <pav@iki.fi>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Documentation/networking/timestamping.rst
include/linux/skbuff.h
include/uapi/linux/errqueue.h
include/uapi/linux/net_tstamp.h
net/core/skbuff.c
net/ethtool/common.c
net/socket.c