From: Miroslav Lichvar <mlichvar@redhat.com>
To: Richard Cochran <richardcochran@gmail.com>
Cc: netdev@vger.kernel.org, Jiri Benc <jbenc@redhat.com>,
"Keller, Jacob E" <jacob.e.keller@intel.com>,
Denny Page <dennypage@me.com>,
Willem de Bruijn <willemb@google.com>
Subject: Re: Extending socket timestamping API for NTP
Date: Thu, 23 Mar 2017 17:21:45 +0100 [thread overview]
Message-ID: <20170323162145.GB8192@localhost> (raw)
In-Reply-To: <20170209110941.GA1449@localhost>
On Thu, Feb 09, 2017 at 12:09:41PM +0100, Miroslav Lichvar wrote:
> On Thu, Feb 09, 2017 at 09:02:42AM +0100, Richard Cochran wrote:
> > On Tue, Feb 07, 2017 at 03:01:44PM +0100, Miroslav Lichvar wrote:
> > > 5) new SO_TIMESTAMPING options to get transposed RX timestamps
> > >
> > > PTP uses preamble RX timestamps, but NTP works with trailer RX
> > > timestamps. This means NTP implementations currently need to
> > > transpose HW RX timestamps. The calculation requires the link speed
> > > and the length of the packet at layer 2. It seems this can be
> > > reliably done only using raw sockets. It would be very nice if the
> > > kernel could tranpose the timestamps automatically.
> >
> > Impossible, because the link speed may change between the time when
> > the MAC receives the data the kernel gets around to calculating the
> > time stamp.
>
> I think that would be an acceptable limitation. The application
> certainly couldn't do a better job than the kernel and it won't have
> to use raw sockets.
After becoming a bit more familiar with the code I don't think this is
a good idea anymore :). I suspect there would be a noticeable
performance impact if each timestamped packet could trigger reading of
the current link speed. If the value had to be cached it would make
more sense to do it in the application.
With no option to get transposed timestamps the point 6 can be
scratched too.
A better approach might be a control message that would provide the
original interface index together with the length of the packet, so
the application could transpose the HW timestamp and map the HW
interface to the PHC.
The two values could be saved in the skb_shared_info structure. Now
my question is if they could be useful also for other things than
timestamping and if it should be a new socket option which would work
on any socket independently from timestamping, or if it should rather
be a new flag for the SO_TIMESTAMPING option. If the latter, would it
make sense to put them in the skb_shared_hwtstamps structure and
modify all drivers to set the values when a HW timestamp is captured
instead of adding more code to __netif_receive_skb_core() or similar?
What do you think?
> > > 6) new SO_TIMESTAMPING option to get PHC index with HW timestamps
> > >
> > > With bridges, bonding and other things it's difficult to determine
> > > which PHC timestamped the packet. It would be very useful if the
> > > PHC index was provided with each HW timestamp.
--
Miroslav Lichvar
next prev parent reply other threads:[~2017-03-23 16:21 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-07 14:01 Extending socket timestamping API for NTP Miroslav Lichvar
2017-02-07 17:45 ` Keller, Jacob E
2017-02-07 22:32 ` Willem de Bruijn
2017-02-08 14:18 ` Soheil Hassas Yeganeh
2017-02-27 15:23 ` Miroslav Lichvar
2017-02-28 0:01 ` Willem de Bruijn
2017-02-28 8:26 ` Miroslav Lichvar
2017-02-28 21:05 ` Willem de Bruijn
2017-02-08 1:52 ` Denny Page
2017-02-08 5:27 ` Richard Cochran
2017-02-08 5:48 ` Denny Page
2017-02-08 17:27 ` Denny Page
2017-02-07 18:54 ` Soheil Hassas Yeganeh
2017-02-08 10:14 ` Miroslav Lichvar
2017-02-07 20:37 ` sdncurious
2017-02-08 10:26 ` Miroslav Lichvar
2017-02-08 23:27 ` sdncurious
2017-02-08 23:34 ` sdncurious
2017-02-08 1:18 ` Denny Page
[not found] ` <CAHoNx58u=Fze4e5V2Wb_LiBhka1Mzny3zOVNfvuzjnmQ4wBO=Q@mail.gmail.com>
2017-02-08 3:06 ` Denny Page
2017-02-09 0:45 ` Denny Page
2017-02-09 11:15 ` Miroslav Lichvar
2017-02-09 20:25 ` Denny Page
2017-02-09 8:02 ` Richard Cochran
2017-02-09 11:09 ` Miroslav Lichvar
2017-02-09 19:42 ` sdncurious
2017-02-09 20:37 ` Denny Page
2017-02-10 0:33 ` Denny Page
2017-02-10 18:55 ` Denny Page
2017-03-23 16:21 ` Miroslav Lichvar [this message]
2017-03-23 18:54 ` Denny Page
2017-03-23 19:07 ` Richard Cochran
2017-03-24 7:25 ` Miroslav Lichvar
[not found] ` <6121D504-288F-4C9B-9AB3-D1C8292965D5@me.com>
2017-03-24 9:45 ` Miroslav Lichvar
2017-03-24 17:17 ` Denny Page
2017-03-24 18:52 ` Keller, Jacob E
2017-03-27 10:13 ` Miroslav Lichvar
2017-03-27 14:29 ` Richard Cochran
2017-03-27 16:25 ` Denny Page
2017-03-27 18:28 ` Richard Cochran
2017-03-27 19:18 ` Denny Page
2017-03-27 20:58 ` Richard Cochran
2017-03-27 21:20 ` Denny Page
2017-03-27 19:21 ` Denny Page
2017-03-27 19:21 ` Denny Page
[not found] ` <5FD283AB-39DE-4A9D-902A-BA5F0F0B62A3@me.com>
2017-03-27 21:00 ` Richard Cochran
2017-03-24 9:55 ` Jiri Benc
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170323162145.GB8192@localhost \
--to=mlichvar@redhat.com \
--cc=dennypage@me.com \
--cc=jacob.e.keller@intel.com \
--cc=jbenc@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=richardcochran@gmail.com \
--cc=willemb@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).