[time-nuts] Precision Time Protocol – Windows 10 implementation

shouldbe q931 shouldbeq931 at gmail.com
Fri Aug 9 10:24:29 UTC 2019


On Thu, Aug 8, 2019 at 4:07 PM Adam Kumiszcza <akumiszcza at gmail.com> wrote:

> Hi everybody! My first post here, I hope the subject is adequate for this
> mailing list.
>
> I'm using a tiny layer 1 NTP server consisting of Raspberry Pi 3B+ with
> Ublox MAX-M8Q expansion board providing GNSS (currently GPS, Galileo and
> Glonass, sometimes I switch to Beidou, too) reference with PPS + a simple
> patch antenna hanging near the window. Offset, jitter and rms are most
> often smaller than 1 µs. The server is included in NTP pool.
>
> I'm using several Windows 10 machines on the same LAN, all using NTP client
> software from Meinberg. The typical offset and jitter in those are about
> 100-500 µs. I would like to make it lower. I've heard that one of the
> latest versions of Windows 10 provides support for PTP protocol (IEEE
> 1588v2). Hence my questions:
>
> 1. Did anybody try using it on Windows 10 already? From what I can tell
> right now, there's only a demonstration web site showing it works when
> using Ubuntu Linux as a virtual machine [1]. Or should I wait a bit for
> more robust implementation?
> 2. Do I guess correctly that current implementation of PTP works only on
> Ethernet? Some of the computers are on wlan.
> 3. Is there any other way of making the clients' time offset lower?
>

Although there is one method using WSL, there is also the "native" method
https://techcommunity.microsoft.com/t5/Networking-Blog/Top-10-Networking-Features-in-Windows-Server-2019-10-Accurate/ba-p/339739
"Precision Time Protocol - Try it out!"

PTP can be used across any IP network, but if there is non deterministic
latency (jitter), there is a fairly obvious effect.

The offset should reduce over time, but jitter will affect this.

I've already tried setting PTP on the Raspberry Pi 3B+. It needed a kernel
> recompilation with a patch I found here: [2], but I'm not sure it works
> correctly.
>

I have run PTP on a rPi 3B without any kernel modifications as a
grandmaster (with a ublox GPS to provide time and PPS), and experimented
with different NICs (intel, broadcom and solarflare, all with HW
timestamping) as clients in x64 hosts.

There are two issues with using a rPi as a PTP grandmaster, the crystal is
"not very stable", and the NIC is connected over USB, both of these add
jitter which is noticeable on PTP. The jjitter is obvious when compared to
a meinberg m600 with the HQ OXCO option.connected to a Solarflare NIC in a
Linux host.

To remove the jitter issues, you might care to try the ublox connected (via
a suitable level converter for NMEA and PPS) to a hardware serial port on a
Linux X64 host.

I have not tried the native Windows PTP client, there are also 3rd party
clients from greyware and fsmlabs.


> As you can see on the screenshot below, PTP appears here as a server, but
> I'm not sure if it's used at all.
> [image: status16.PNG]
>
> Ptp4l status shows this:
>
> pi at zegar:~ $ systemctl status ptp4l
> ● ptp4l.service - Precision Time Protocol (PTP) service
>    Loaded: loaded (/lib/systemd/system/ptp4l.service; enabled; vendor
> preset: enabled)
>    Active: active (running) since Wed 2019-08-07 12:32:28 CEST; 24h ago
>      Docs: man:ptp4l
>  Main PID: 323 (ptp4l)
>     Tasks: 1 (limit: 4915)
>    CGroup: /system.slice/ptp4l.service
>            └─323 /usr/sbin/ptp4l -f /etc/linuxptp/ptp4l.conf -i eth0
>
> Aug 07 12:32:31 zegar ptp4l[323]: ptp4l[6.631]: port 1: link up
> Aug 07 12:32:31 zegar ptp4l[323]: ptp4l[6.631]: port 1: FAULTY to LISTENING
> on FAULT_CLEARED
> Aug 07 12:32:31 zegar ptp4l[323]: [6.631] port 1: link up
> Aug 07 12:32:31 zegar ptp4l[323]: [6.631] port 1: FAULTY to LISTENING on
> FAULT_CLEARED
> Aug 07 12:32:38 zegar ptp4l[323]: ptp4l[13.526]: port 1: LISTENING to
> MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
> Aug 07 12:32:38 zegar ptp4l[323]: ptp4l[13.526]: selected best master clock
> b827eb.fffe.006e65
> Aug 07 12:32:38 zegar ptp4l[323]: ptp4l[13.526]: assuming the grand master
> role
> Aug 07 12:32:38 zegar ptp4l[323]: [13.526] port 1: LISTENING to MASTER on
> ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
> Aug 07 12:32:38 zegar ptp4l[323]: [13.526] selected best master clock
> b827eb.fffe.006e65
> Aug 07 12:32:38 zegar ptp4l[323]: [13.526] assuming the grand master role
>
> Thanks in advance for any suggestions!
>
> Adam Kumiszcza
>
> [1]
>
> https://techcommunity.microsoft.com/t5/Networking-Blog/Windows-Subsystem-for-Linux-for-testing-Windows-10-PTP-Client/ba-p/389181
> [2] https://github.com/twteamware/raspberrypi-ptp/issues/2
> _______________________________________________
> time-nuts mailing list -- time-nuts at lists.febo.com
> To unsubscribe, go to
> http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com
> and follow the instructions there.
>



More information about the Time-nuts_lists.febo.com mailing list