Statime is a work in progress Rust implementation of PTP version 2.1 (IEEE 1588-2019). It currently implements support for acting as a master and an ordinary or a boundary clock. Note that we are planning a refactor of the codebase, and that the public interface is likely to change.
The statime-linux crate also provides a binary for linux implementing an ordinary clock. It will need sufficient permissions to change the system clock to use. The easiest way to start it is through sudo: sudo ./target/debug/statime-linux -i <network_interface>
.
The library has been built in a way to try and be platform-agnostic. To do that, the network and clock have been abstracted. The statime-linux
library provides implementations of these abstractions for linux-based platforms. For other platforms, this needs to be provided by the user. For more details, see the documentation
Statime requires a nigthly version of cargo/rust. The easiest way to obtain these is through rustup
Because of the use of ports 319 and 320 in the PTP protocol, the code here needs to be run as root. It is best to build the code as a non-root user with
cargo +nightly build
and then run it as root with
sudo ./target/debug/statime-linux -i <ETHERNET INTERFACE NAME>
PTPd can be used as a ptp master clock for testing. Because of the port usage required by the PTP standard, this master clock must be on a different machine than that used to run the code in this repository. On Ubuntu, it can be installed with
apt install ptpd
You probably wont want to run this continuously as a service, so disable it with
service ptpd disable
Then, to start ptpd, as root run
ptpd -V -n -M -i <INTERFACE>
where <INTERFACE>
is the network interface you want ptpd to use. Here -n
disables clock adjustment by ptpd, and -M
ensures that it runs in master mode only.
- Q2 2023: PTP master, boundary clock
- Q3 2023: NTP/PTP clock device + development of PTP for Linux
- Q4 2023: Completion of PTP for Linux + R&D fieldtest TimeNL
The development of Statime is kindly supported by the NGI Assure Fund of the NLnet Foundation.
SIDN Fonds is supporting us with a grant to develop clock devices running Statime and ntpd-rs, in collaboration with SIDN Labs' TimeNL.
In August of 2023, Sovereign Tech Fund invested in Pendulum (Statime and ntpd-rs). Read more on their website.
We continuously seek the involvement of interested parties and funding for future work. See Project Pendulum or reach out to pendulum@tweedegolf.com.