From: Miroslav Lichvar <mlichvar@redhat.com>
To: Soheil Hassas Yeganeh <soheil@google.com>
Cc: netdev <netdev@vger.kernel.org>,
Richard Cochran <richardcochran@gmail.com>,
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: Wed, 8 Feb 2017 11:14:46 +0100 [thread overview]
Message-ID: <20170208101446.GA23304@localhost> (raw)
In-Reply-To: <CACSApva7DeBcRUFG13Xb7YoegHcLWwwd=ecLVf9wSgNSKFbUDA@mail.gmail.com>
On Tue, Feb 07, 2017 at 10:54:22AM -0800, Soheil Hassas Yeganeh wrote:
> On Tue, Feb 7, 2017 at 6:01 AM, Miroslav Lichvar <mlichvar@redhat.com> wrote:
> > 2) new SO_TIMESTAMPING option to receive from the error queue only
> > user data as was passed to sendmsg() instead of Ethernet frames
> >
> > Parsing Ethernet and IP headers (especially IPv6 options) is not
> > fun and SOF_TIMESTAMPING_OPT_ID is not always practical, e.g. in
> > applications which process messages from the error queue
> > asynchronously and don't bind/connect their sockets.
>
> This is going to be quite useful. However, I'm not sure if sending
> back the original packet would be a proper API. Instead, one option is
> to add a control message, so that applications can set the OPT_ID for
> the timestamp. Perhaps, something like from user's perspective:
>
> cmsg->cmsg_level = SOL_SOCKET;
> cmsg->cmsg_type = SCM_TIMESTAMPING_OPT_ID;
> cmsg->cmsg_len = CMSG_LEN(sizeof(__u32));
> *((__u32 *) CMSG_DATA(cmsg)) = my_id;
That could be very useful. The question is if 32 bits worth of user
data would be good enough for all applications. In the case of the NTP
server, I currently save 128 bits per client in order to support the
interleaved mode. Half of that is the receive timestamp, which is
compared to the receive timestamp from messages received from the
error queue. Matching only lower 32 bits of the timestamp would
probably still work fine. However, if NTP supported follow up messages
like PTP, 32 bits would not be enough to create a valid message for
the client without saving some additional state. Getting the original
message would be very convenient here. NTP packets are normally very
short, so I'm not sure how much benefit there would be in using the
OPT_ID.
--
Miroslav Lichvar
next prev parent reply other threads:[~2017-02-08 10:15 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 [this message]
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
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=20170208101446.GA23304@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=soheil@google.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).