Commit 407ada45 authored by Alessandro Rubini's avatar Alessandro Rubini

doc: reviewed; minor updates

Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
parent 96293c21
...@@ -56,12 +56,12 @@ ...@@ -56,12 +56,12 @@
@node Top @node Top
@top Introduction @top Introduction
PPSi (PTP Ported to Silicon) is an application which, in PPSi (@sc{ptp} Ported to Silicon) is an application which, in
its basic operation, implements @sc{ieee} 1588 specification in a way its basic operation, implements @sc{ieee} 1588 specification in a way
that is portable to several architectures, including OS-less ones. that is portable to several architectures, including OS-less ones.
This manual is mainly aimed at developers: people who are working with This manual is mainly aimed at developers: people who are working with
PTP and/or White Rabbit and need to use the protocol in their own @sc{ptp} and/or White Rabbit and need to use the protocol in their own
hardware or software environments. Users who simply run PPSi on the host hardware or software environments. Users who simply run PPSi on the host
may want to read @ref{Command Line} and little else. may want to read @ref{Command Line} and little else.
...@@ -75,14 +75,14 @@ shortened to @i{WR} in this manual. ...@@ -75,14 +75,14 @@ shortened to @i{WR} in this manual.
WR is a multi-lab research project that aims at synchronizing WR is a multi-lab research project that aims at synchronizing
thousands of I/O devices distributed in a network several kilometers thousands of I/O devices distributed in a network several kilometers
wide; its software protocol is an extension of PTP. A WR network is wide; its software protocol is an extension of @sc{ptp}. A WR network is
made up of two devices: the @i{WR Switch} and the @i{WR Node}. White made up of two devices: the @i{WR Switch} and the @i{WR Node}. White
Rabbit is developed at ohwr.org: Rabbit is developed at ohwr.org:
@t{http://www.ohwr.org/projects/white-rabbit}. @t{http://www.ohwr.org/projects/white-rabbit}.
The WR switch is an 18-ports Gigabit Ethernet switch that runs The WR switch is an 18-ports Gigabit Ethernet switch that runs
@sc{wr-ptp} as a Linux process, synchronizing each Ethernet link as @sc{wr-ptp} as a Linux process, synchronizing each Ethernet link as
either a PTP master or a PTP slave (it is a @i{boundary clock}). The either a @sc{ptp} master or a @sc{ptp} slave (it is a @i{boundary clock}). The
WR node is an I/O device that includes a soft core that runs @sc{wr-ptp} WR node is an I/O device that includes a soft core that runs @sc{wr-ptp}
in @i{freestanding} mode (i.e., without an operating system). in @i{freestanding} mode (i.e., without an operating system).
...@@ -193,9 +193,9 @@ The package currently supports the following architectures: ...@@ -193,9 +193,9 @@ The package currently supports the following architectures:
@end table @end table
We plan, over time, to support microcontrollers (Danilo Sabato is We plan, over time, to support microcontrollers (a beta version for
working on ARM7 and Cortex-M) and @i{bare-arm} (to be tested on the WR ARM7 is working, and we are considering Cortex-M) and @i{bare-arm} (to
switch). be tested on the WR switch).
@c ========================================================================== @c ==========================================================================
@node Protocols @node Protocols
...@@ -212,7 +212,7 @@ Source files in that directory may override the implementation for the ...@@ -212,7 +212,7 @@ Source files in that directory may override the implementation for the
standard protocol (which lives in @t{proto-standard}) to provide their standard protocol (which lives in @t{proto-standard}) to provide their
own functionalities. To simplify writing extensions, the @i{proto-standard} own functionalities. To simplify writing extensions, the @i{proto-standard}
functions already provide @i{hooks} so the extension itself can provide functions already provide @i{hooks} so the extension itself can provide
callbacks while still using the basic PTP engine. callbacks while still using the basic @sc{ptp} engine.
The set of callbacks is currently based on the needs of The set of callbacks is currently based on the needs of
WR, but we are willing to accept patches to provide more hooks as WR, but we are willing to accept patches to provide more hooks as
needed. needed.
...@@ -266,9 +266,9 @@ unfair to hide them. ...@@ -266,9 +266,9 @@ unfair to hide them.
@table @r @table @r
@item Support standard PTP and extensions. @item Support standard @sc{ptp} and extensions.
Each protocol extension should fall back to standard PTP when Each protocol extension should fall back to standard @sc{ptp} when
it detects that its peers are not able to speak the extended it detects that its peers are not able to speak the extended
protocol. We don't plan to support more than one extensions in protocol. We don't plan to support more than one extensions in
a single build: it would be just an academic exercise until a single build: it would be just an academic exercise until
...@@ -344,10 +344,13 @@ As of 2013-05 the project suffers from these known bugs: ...@@ -344,10 +344,13 @@ As of 2013-05 the project suffers from these known bugs:
@itemize @itemize
@item All frames must be sent according to a pseudo-random distribution; @item All frames must be sent according to a pseudo-random distribution;
this is mostly in place but mut be audited project-wide. this is mostly in place but mut be audited project-wide.
@item We removed @i{peer-delay} support. Maybe this is a feature, we @item We removed @i{peer-delay} support. We plan to add it back, and
are still shaping our mind about that, but for the time being we actually move White Rabbit to use @i{peer-delay} @sc{ptp} instead of
don't plan to support peer-delay because it would be academic and @i{end-to-end} @sc{ptp}.
untested in our environments. @item The servo for standard-@sc{ptp} must be audited. Pietro Fezzardi
is working on @i{arch-sim} to simulate network transactions and
make serious work on the servo algorithm and parameters.
@item @sc{udp} over @sc{IPV6} is not yet supported.
@end itemize @end itemize
@c ########################################################################## @c ##########################################################################
...@@ -373,7 +376,7 @@ two example configuration files in its own @t{etc/} subdirectory. ...@@ -373,7 +376,7 @@ two example configuration files in its own @t{etc/} subdirectory.
Configuration is made of of global options and port-specific options. Configuration is made of of global options and port-specific options.
To configure a port, use @t{port <name>} followed by its options. To configure a port, use @t{port <name>} followed by its options.
The parser allocates a new PTP state machine for each new port, but The parser allocates a new @sc{ptp} state machine for each new port, but
allows changing configuration of an existing port. For instance, to allows changing configuration of an existing port. For instance, to
enable frame diagnostics for a specific port, you can use: enable frame diagnostics for a specific port, you can use:
...@@ -572,8 +575,8 @@ separately with ``@t{make -C tools}''. ...@@ -572,8 +575,8 @@ separately with ``@t{make -C tools}''.
@node ptpdump @node ptpdump
@section ptpdump @section ptpdump
This is a sniffer for PTP frames. It reports all Ethernet frames and This is a sniffer for @sc{ptp} frames. It reports all Ethernet frames and
UDP datagrams that talk PTP, from a specific network interface. The UDP datagrams that talk @sc{ptp}, from a specific network interface. The
output format is line-oriented to help running @i{grep} over log output format is line-oriented to help running @i{grep} over log
files. The number of blank lines between frames depends on how much files. The number of blank lines between frames depends on how much
time elapsed between them; this should help identifying sync/follow-up time elapsed between them; this should help identifying sync/follow-up
...@@ -660,7 +663,7 @@ synchronization of two or more computers, but please note that the ...@@ -660,7 +663,7 @@ synchronization of two or more computers, but please note that the
user-space software-only approach shows some jitter; on my systems the user-space software-only approach shows some jitter; on my systems the
delay is usually a few microseconds, up to around a dozen (in general, delay is usually a few microseconds, up to around a dozen (in general,
use of the parallel port has less delay and less jitter). In any case use of the parallel port has less delay and less jitter). In any case
this offers a second source to check what NTP or PTP daemons report. this offers a second source to check what NTP or @sc{ptp} daemons report.
@c ========================================================================== @c ==========================================================================
@node jmptime @node jmptime
...@@ -914,7 +917,7 @@ the suggested "CamelCase" form. Similarly, the typedefs are left, even ...@@ -914,7 +917,7 @@ the suggested "CamelCase" form. Similarly, the typedefs are left, even
if they are really a pain to deal with. Most of this stuff is in if they are really a pain to deal with. Most of this stuff is in
include/ppsi/ieee1588_types.h file. include/ppsi/ieee1588_types.h file.
The mostly used prefix is @t{pp_}, the short prefix for 'Portable PTP', The mostly used prefix is @t{pp_}, the short prefix for 'Portable @sc{ptp}',
which is used for every function related to the algorithm itself (but which is used for every function related to the algorithm itself (but
not in the architecture-specific code). not in the architecture-specific code).
...@@ -969,16 +972,29 @@ a list of the other ones please see the help message. ...@@ -969,16 +972,29 @@ a list of the other ones please see the help message.
@table @t @table @t
@item -f <file>
Read configuration file. The program can read several
configuration files. If no @t{-f} is passed, it tries to
read a configuration file from the standard places:
@t{/wr/etc/ppsi.conf} if White Rabbit, and @t{/etc/ppsi.conf}.
@item -C <config-item>
Pass a single configuration item, or several of them using
the semicolon as separator. See @ref{Configuration} for details.
@item -d @item -d
Diagnostics. This options receives the string of diagnostic Diagnostics. This options receives the string of diagnostic
levels for fsm, time, frames, servo, bmc, extension (in that order). levels for fsm, time, frames, servo, bmc, extension (in that order).
See @ref{Diagnostic Macros} for detail. See @ref{Diagnostic Macros} for details.
@item -b <ifname> @item -b <ifname>
Specify which interface to use, for Ethernet mode (default: Specify which interface to use, for Ethernet mode (default:
architecture-dependent, but @t{eth0} for Linux builds). architecture-dependent, but @t{eth0} for Linux builds). This
option can only be used in single-port operation.
@item -e @item -e
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment