Thread (21 messages) flat view 21 messages, 3 authors, 2021-10-14

Re: [PATCH net-next] ptp: add vclock timestamp conversion IOCTL

From: Sebastien Laveze <hidden>
Date: 2021-09-29 15:01:09
Also in: lkml

On Tue, 2021-09-28 at 06:31 -0700, Richard Cochran wrote:
On Tue, Sep 28, 2021 at 01:50:23PM +0200, Sebastien Laveze wrote:
quoted
Yes that would do it. Only drawback is that ALL rx and tx timestamps
are converted to the N domains instead of a few as needed.
No, the kernel would provide only those that are selected by the
program via the socket option API.
But _all_ timestamps (rx and tx) are converted when a domain is
selected.

If we consider gPTP,
-using the ioctl, you only need to convert the sync receive timestamps.
PDelay (rx, tx, fup), sync (tx and fup) and signalling don't need to be
converted. So that's for a default sync period of 125 ms, 8 ioctl /
second / domain.
-doing the conversion in the kernel will necessarly be done for every
timestamp handled by the socket. In addition, the vclock device lookup
is not free as well and done for _each_ conversion.

In the end, if the new ioctl is not accepted, I think opening multiple
sockets with bpf filtering and vclock bind is the most appropriate
solution for us. (more details below)
quoted
Okay, so I briefly reviewed IEEE Std 802.1AS-2020 Clause 11.2.17.

I think what it boils down to is this:  (please correct me if I'm wrong)

When running PTP over multiple domains on one port, the P2P delay
needs only to be measured in one domain.  It would be wasteful to
measure the peer delay in multiple parallel domains.
From a high-level view, I understand that you would have N
instance/process of linuxptp to support N domains ? CMLDS performed by
one of them and then some signalling to the other instances ?

For our own stack (we work on a multi-OS 802.1AS-2020 implementation)
we took the approach of handling everything in a single process with a
single socket per port (our implementation also supported Bridge mode
with multiple ports).

What we miss currently in the kernel for a better multi-domain usage
and would like to find a solution:
-allow PHC adjustment with virtual clocks. Otherwise scheduled traffic
cannot be used... (I've read your comments on this topic, we are
experimenting things on MCUs and we need to assess on measurements)
-timer support for virtual clocks (nanosleep likely, as yous suggested
IIRC).

Thanks,
Seb
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help