Travelling to the land of the rising sun with Statime

Travelling to the land of the rising sun with Statime
At the beginning of October, David and I went to ISPCS in Tokyo. The ISPCS (IEEE Symposium on Precision Clock Synchronization) is all about the PTP protocol and related technologies, and we attended because of Statime, our Rust implementation of the Precision Time Protocol.

Main image by ISPCS, Ruben and David during Plugfest

Development of Statime started in 2022 and, thanks to funding from the NLnet Foundation and the Sovereign Tech Fund, the implementation is maturing. For example, performance is on par with PTP4linux. (Check the Statime repo if you're interested.) High time to put our implementation through the wringer, so off to Tokyo we went.

Plugfest

Personally, this was the furthest I'd ever been from home, so this was an exciting adventure! The conference started with two days of Plugfest. The Plugfest brings all kinds of companies and teams together to allow them to test their hardware and software against other implementations of the PTP protocol. With our Statime implementation now having most of the basic functionality, this was the first time we could test it against such a large number of other implementations.

ISPCS-location-bay Image by Ruben, view of the bay

ISPCS 2024 was hosted at NetOne Valley. To set the scene: At the top floor, with views of the Tokyo monorail, Tokyo bay and Tokyo City Keiba horse racetrack, we gathered our badges on the first day of the Plugfest. As we entered the room we immediately saw the many groups of people setting up their hardware. Although we too brought our own hardware, we were the only ones with the product being just the software, as far as I could determine; all the other groups were there to test their fully integrated hardware and software solution.

ISPCS-organizations Image by ISPCS, list of participants in Plugfest

The room was divided into four specific sections: one for experimental features and high precision; one for broadcast related profiles; one for telecom related profiles; and a final Layer 2 PTP table. We opted to join the experimental and broadcast tables, but we quickly found out that the experimental table was mostly focussed on White Rabbit, which is something we don't do as a software-only implementation.

Testing

ISPCS-plugfest Image by ISPCS, Plugfest setup

During the next two days we did manage to test quite some scenarios. Most were focussed on testing synchronization performance of the different implementations and mostly involved different groups making their implementation the master clock on the network. Even though we have somewhat limited hardware, we did see excellent performance during the different tests, with our implementation mostly managing to get fully synchronized within a minute.

With our testing being so successful, I decided to port our authentication prototype over to the latest codebase and added some configuration to allow us to test it with another authentication implementation that was available. After that, we again managed to get this working relatively quickly. The feature is still experimental, as we've previously identified that the authentication part of PTP is mostly broken. We tested test a few other small features, again without much of a problem.

One limitation we ran into was that our implementation only supported a few basic profiles of PTP, so we were unable to join with more varied tests, as we were mostly limited to the broadcast profiles. This is one improvement we would like to make on our implementation in the future.

ISPCS-timestick Image by ISPCS, Time Stick

Another fun little thing we did was attempting to test Statime with the Time Stick that was available for every participant. The Time Stick is a thumb-sized little network card with hardware timestamping support and with a pulse-per-second output. Unfortunately it turned out that a few driver bugs prevented us from testing it right away. After some back and forth, we found these bugs and managed to get synchronization working at least once, but there were still some bugs in the driver that prevented it from working all the time.

Symposium

ISPCS-talks Image by ISCPS, Symposium in progress

After the very satisfying and successful Plugfest, we attended two days of talks, presented in a big open room. David, having had his paper accepted, was one of the speakers on the first day of talks. He talked about our clock synchronization, specifically how our Kalman filter based algorithm works. Other talks were about anything from specific embedded time synchronization implementations (outside of PTP) to high-precision White Rabbit time synchonization.

ISPCS-davids-talk Image by Ruben, David presenting

There were definitely some interesting ideas.

After four days at NetOne Valley we took the monorail one last time to the conference dinner. After this fun evening with a great atmosphere the conference ended and it was time to head back to the Netherlands!

Support a safer internet

If you’d like to support or discover more of the work we’re doing on secure time synchronization for a safe internet, please visit the Time synchronization initiative page on the Trifecta Tech Foundation website. The Trifecta Tech Foundation is the non-profit that is the long-term home of our time synchronization work, including ntpd-rs (Network Time Protocol) and Statime (Precision Time Protocol).

Stay up-to-date

Stay up-to-date with our work and blog posts?

Related articles

Our Statime project now provides strong synchronization performance and accurate synchronization error estimates without manual tuning for any specific hardware, because it automatically determines the main uncertainty parameters for a Kalman-based clock servo. This process is described in a scientific paper, soon to be published by the IEEE.
I was invited by OCP-TAP to join them in their 87th Project Call to talk about Pendulum, our Rust implementations of NTP and PTP. The recording of this call on 8 Nov 2023 is now available.
About one year ago, Tweede Golf announced "Statime", a Rust implementation of the Precision Time Protocol (PTP). The result of that first phase was a working proof of concept. Quite a bit has changed since then.