diff mbox

[net-next] net-timestamp: document deprecated syststamp

Message ID 1405374930-4763-1-git-send-email-willemb@google.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Willem de Bruijn July 14, 2014, 9:55 p.m. UTC
The SO_TIMESTAMPING API defines option SOF_TIMESTAMPING_SYS_HW.
This feature is deprecated. It should not be implemented by new
device drivers. Existing drivers do not implement it, either --
with one exception.

Driver developers are encouraged to expose the NIC hw clock as a
PTP HW clock source, instead, and synchronize system time to the
HW source.

The control flag cannot be removed due to being part of the ABI, nor
can the structure scm_timestamping that is returned. Due to the one
legacy driver, the internal datapath and structure are not removed.

This patch only clearly marks the interface as deprecated. Device
drivers should always return a syststamp value of zero.

Signed-off-by: Willem de Bruijn <willemb@google.com>

----

We can consider adding a WARN_ON_ONCE in__sock_recv_timestamp
if non-zero syststamp is encountered
---
 Documentation/networking/timestamping.txt | 10 ++++++++--
 include/linux/skbuff.h                    |  6 ++++--
 2 files changed, 12 insertions(+), 4 deletions(-)

Comments

Richard Cochran July 15, 2014, 6:31 a.m. UTC | #1
On Mon, Jul 14, 2014 at 05:55:30PM -0400, Willem de Bruijn wrote:
> The SO_TIMESTAMPING API defines option SOF_TIMESTAMPING_SYS_HW.
> This feature is deprecated. It should not be implemented by new
> device drivers. Existing drivers do not implement it, either --
> with one exception.
> 
> Driver developers are encouraged to expose the NIC hw clock as a
> PTP HW clock source, instead, and synchronize system time to the
> HW source.
> 
> The control flag cannot be removed due to being part of the ABI, nor
> can the structure scm_timestamping that is returned. Due to the one
> legacy driver, the internal datapath and structure are not removed.
> 
> This patch only clearly marks the interface as deprecated. Device
> drivers should always return a syststamp value of zero.
> 
> Signed-off-by: Willem de Bruijn <willemb@google.com>

Thanks a bunch for this!

Acked-by: Richard Cochran <richardcochran@gmail.com>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller July 15, 2014, 11:33 p.m. UTC | #2
From: Willem de Bruijn <willemb@google.com>
Date: Mon, 14 Jul 2014 17:55:30 -0400

> The SO_TIMESTAMPING API defines option SOF_TIMESTAMPING_SYS_HW.
> This feature is deprecated. It should not be implemented by new
> device drivers. Existing drivers do not implement it, either --
> with one exception.
> 
> Driver developers are encouraged to expose the NIC hw clock as a
> PTP HW clock source, instead, and synchronize system time to the
> HW source.
> 
> The control flag cannot be removed due to being part of the ABI, nor
> can the structure scm_timestamping that is returned. Due to the one
> legacy driver, the internal datapath and structure are not removed.
> 
> This patch only clearly marks the interface as deprecated. Device
> drivers should always return a syststamp value of zero.
> 
> Signed-off-by: Willem de Bruijn <willemb@google.com>

Applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/Documentation/networking/timestamping.txt b/Documentation/networking/timestamping.txt
index bc35541..8b4ad80 100644
--- a/Documentation/networking/timestamping.txt
+++ b/Documentation/networking/timestamping.txt
@@ -40,7 +40,7 @@  the set bits correspond to data that is available, then the control
 message will not be generated:
 
 SOF_TIMESTAMPING_SOFTWARE:     report systime if available
-SOF_TIMESTAMPING_SYS_HARDWARE: report hwtimetrans if available
+SOF_TIMESTAMPING_SYS_HARDWARE: report hwtimetrans if available (deprecated)
 SOF_TIMESTAMPING_RAW_HARDWARE: report hwtimeraw if available
 
 It is worth noting that timestamps may be collected for reasons other
@@ -94,7 +94,13 @@  not perfect; as a consequence, sorting packets received via different
 NICs by their hwtimetrans may differ from the order in which they were
 received. hwtimetrans may be non-monotonic even for the same NIC.
 Filled in if SOF_TIMESTAMPING_SYS_HARDWARE is set. Requires support
-by the network device and will be empty without that support.
+by the network device and will be empty without that support. This
+field is DEPRECATED. Only one driver computes this value. New device
+drivers must leave this zero. Instead, they can expose the hardware
+clock device on the NIC directly as a HW PTP clock source, to allow
+time conversion in userspace and optionally synchronize system time
+with a userspace PTP stack such as linuxptp. For the PTP clock API,
+see Documentation/ptp/ptp.txt.
 
 
 SIOCSHWTSTAMP, SIOCGHWTSTAMP:
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 890fb33..3694303 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -211,7 +211,7 @@  static inline void skb_frag_size_sub(skb_frag_t *frag, int delta)
  * struct skb_shared_hwtstamps - hardware time stamps
  * @hwtstamp:	hardware time stamp transformed into duration
  *		since arbitrary point in time
- * @syststamp:	hwtstamp transformed to system time base
+ * @syststamp:	hwtstamp transformed to system time base (deprecated)
  *
  * Software time stamps generated by ktime_get_real() are stored in
  * skb->tstamp. The relation between the different kinds of time
@@ -222,7 +222,9 @@  static inline void skb_frag_size_sub(skb_frag_t *frag, int delta)
  * syststamp/tstamp/"syststamp from other device" comparison is
  * limited by the accuracy of the transformation into system time
  * base. This depends on the device driver and its underlying
- * hardware.
+ * hardware. The syststamp implementation is deprecated in favor
+ * of hwtstamps and hw PTP clock sources exposed directly to
+ * userspace.
  *
  * hwtstamps can only be compared against other hwtstamps from
  * the same device.