Travelling to the land of the rising sun with Statime
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.
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.
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
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.
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
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.
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).