Re: [PATCH net-next v1 2/6] ptp: Request cycles for TX timestamp
From: Richard Cochran <richardcochran@gmail.com>
Date: 2022-03-24 13:49:44
On Tue, Mar 22, 2022 at 10:07:18PM +0100, Gerhard Engleder wrote:
quoted hunk ↗ jump to hunk
The free running time of physical clocks called cycles shall be used for hardware timestamps to enable synchronisation. Introduce new flag SKBTX_HW_TSTAMP_USE_CYCLES, which signals driver to provide a TX timestamp based on cycles if cycles are supported. Signed-off-by: Gerhard Engleder <redacted> --- include/linux/skbuff.h | 3 +++ net/core/skbuff.c | 2 ++ net/socket.c | 10 +++++++++- 3 files changed, 14 insertions(+), 1 deletion(-)diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 26538ceb4b01..f494ddbfc826 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h@@ -578,6 +578,9 @@ enum { /* device driver is going to provide hardware time stamp */ SKBTX_IN_PROGRESS = 1 << 2, + /* generate hardware time stamp based on cycles if supported */ + SKBTX_HW_TSTAMP_USE_CYCLES = 1 << 3,
Bit 4 used, but 3 was unused... interesting!
quoted hunk ↗ jump to hunk
/* generate wifi status information (where possible) */ SKBTX_WIFI_STATUS = 1 << 4,diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 10bde7c6db44..c0f8f1341c3f 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c@@ -4847,6 +4847,8 @@ void __skb_tstamp_tx(struct sk_buff *orig_skb, skb_shinfo(skb)->tx_flags |= skb_shinfo(orig_skb)->tx_flags & SKBTX_ANY_TSTAMP; skb_shinfo(skb)->tskey = skb_shinfo(orig_skb)->tskey; + } else { + skb_shinfo(skb)->tx_flags &= ~SKBTX_HW_TSTAMP_USE_CYCLES; } if (hwtstamps)diff --git a/net/socket.c b/net/socket.c index 982eecad464c..1acebcb19e8f 100644 --- a/net/socket.c +++ b/net/socket.c@@ -683,9 +683,17 @@ void __sock_tx_timestamp(__u16 tsflags, __u8 *tx_flags) { u8 flags = *tx_flags; - if (tsflags & SOF_TIMESTAMPING_TX_HARDWARE) + if (tsflags & SOF_TIMESTAMPING_TX_HARDWARE) { flags |= SKBTX_HW_TSTAMP; + /* PTP hardware clocks can provide a free running time called + * cycles as base for virtual clocks.
"PTP hardware clocks can provide a free running cycle counter as a time base for virtual clocks." Thanks, Richard