This project is concerned with writing a portable PTP daemon, to be used
in White Rabbit and possibly other projects. The code base should be
able to build a standard PTP and an extended one, running either under
an operating system or as a freestanding application on bare metal.
The original proposal for a portable code is called
and has been developed within the White Rabbit project.
From ptp-proposal, the state machine is inherited "as is" and the same
can be said for the whole source organization: at compile time, you can
decide the target architecture and the "standard protocol"/"white rabbit
We released version 2014.07 of PPSi, that includes all the work up and
included July 2014. This includes
a much better servo for non-wr slave operation and the new arch-sim, a
PTP simulator (actually, the one that
helped making a better servo).
Code for arch-wrs (Seven Solution switch) is completed. The single link
has been tested and more durability tests and memory leak checks are
ongoing. Still to be tested the bmc algorithm. SPEC version of ppsi is
stable and has been heavily tested once again.
PPSi code running on SPEC has been successfully tested as the slave of a
Hirschmann ptp switch. The next ppsi release will be capable of
synchronizing as a generic (non-wr) ptp slave too.
Current status of PPSi with white rabbit extension, on spec
architecture, is quite stable; an official release, widely tested on a
spec-to-spec link, will be communicated in the next days. You can, if
you want, get the latest git commit (e69d3cde) and use it (please read
README and HOWTO.EASY in the repository, for more information). Note:
there is a known bug when ppsi master interacts with ptp-noposix slave,
so please use ppsi-to-ppsi in this case.
Since "pptp" is already "point to point tunneling protocol", we renamed
pptp to ppsi, which is unused at this
time in the software world. Files have been renamed, but the code base
is the same.
Though the journal has not been updated for a long time, the project
indeed evolved in the meantime. The current source code has been tested
on GNU linux environment and thoroughly implements ptp protocol, both on
UDP and on RAW socket transport. The current status will be presented in
the Sixth White Rabbit Workshop, Darmstadt (Germany), 22-23 March 2012.
Implementation of ptpd-2.1.0 clone for arch-gnu-linux completed.
Actually it must be debugged. It can handle transport both on UDP and on
IEEE 802.3 (raw sockets): this is an enhancement with respect to
Servo functions implemented and used everywhere
Begin implementation of timestamp low-level functions and fixed handling
of received packet timestamps
Message sending functions now implemented and used.
Some more code review issues pushed on master branch. Comments, enhanced
readability, authors & license, etc...
Code review by Alessandro Rubini, previously in rubi-120103 branch, now
accepted and committed in master. Many code-style fixes (white spaces,
renaming of functions, etc...), and compile fixes for arch-spec and
Up to now, I focused on ptp algorithm and protocol itself. I started
from the state machine of ptpd-2.1.0 and reworked it following the
ptp-proposal. In ptp-proposal, each state has its function for handling
it, whereas in ptpd the state machine was spread over the various
function handling the incoming messages. I also tried to rewrite in a
more readable way the whole src, using, when possible, the standard
"c_style_notation" instead of CamelCase. Actually, the IEEE-1588-2008
specification defines many data structures using the CamelCase notation:
for those ones, no changes have been made; for the remaining source, the
C style notation is used.
Complete standard protocol handling
Address all architecture-specific issues
Implement white rabbit extension (from ptp-noposix project)