ptpd - 2008)
/usr/lib/inet/ptpd [-?] [-B] [-c] [-C] [-S] [-f FILE] [-R FILE] [-d] [-D] [-P] [-x] [-O NUMBER] [-M NUMBER] [-t] [-T ttl] [-a NUMBER,NUMBER] [-w NUMBER] [-b NAME] [-K] [-u ADDRESS] [-U] [-e] [-h] [-J DIRECTORY] [-l NUMBER,NUMBER] [-o NUMBER] [-i NUMBER] [-n NUMBER] [-y NUMBER] [-m NUMBER] [-V NUMBER] [-g] [-v NUMBER] [-r NUMBER] [-N NUMBER] [-s NUM- BER] [-p NUMBER] [-q NUMBER] [-Q NUMBER] [-W] [-Y NUMBER] [-L] [-j]
System Administration Commands ptpd(8)
NAME
ptpd - Precision Time Protocol daemon (1588-2008)
SYNOPSIS
/usr/lib/inet/ptpd [-?] [-B] [-c] [-C] [-S] [-f FILE] [-R FILE] [-d]
[-D] [-P] [-x] [-O NUMBER] [-M NUMBER] [-t] [-T ttl] [-a NUMBER,NUMBER]
[-w NUMBER] [-b NAME] [-K] [-u ADDRESS] [-U] [-e] [-h] [-J DIRECTORY]
[-l NUMBER,NUMBER] [-o NUMBER] [-i NUMBER] [-n NUMBER] [-y NUMBER] [-m
NUMBER] [-V NUMBER] [-g] [-v NUMBER] [-r NUMBER] [-N NUMBER] [-s NUM-
BER] [-p NUMBER] [-q NUMBER] [-Q NUMBER] [-W] [-Y NUMBER] [-L] [-j]
DESCRIPTION
The ptpd program is a userland daemon that does very precise synchro-
nization of system clocks of LAN connected systems. It implements the
Precision Time Protocol (PTP) Version 2 as defined by the IEEE
1588-2008 standard.
PTPd is a complete implementation of the IEEE 1588 v2 specification for
a standard (ordinary) clock. PTPd has been tested with and is known to
work properly with other IEEE 1588 implementations. The source code for
PTPd is freely available under a BSD-style license. Thanks to contribu-
tions from users, PTPd is becoming an increasingly portable, interoper-
able, and stable IEEE 1588 implementation.
For more information, see http://ptpd.sourceforge.net/
ptpd in Solaris works over any Ethernet based data link. It can also
take advantage of PTP specific hardware found in certain NICs (Network
Interface Card) for improved accuracy.
SERVICE MANAGEMENT
The operation of ptpd is managed as a service by the service management
facility, smf(7), under the service identifier:
svc:/network/ptp:default
Administrative actions on this service, such as enabling, disabling,
or requesting restart, can be performed using svcadm(8). The ser-
vice's status can be queried using the svcs(1) command. There are
several options controlled by services properties which can be set by
the system administrator. The available options can be listed by exe-
cuting the following command:
svccfg -s svc:/network/ptp:default listprop config
Each of these properties can be set using this command:
svccfg -s svc:/network/ptp:default setprop <propname> = <value>
See svcadm(8) and svccfg(8).
Available options and their meaning are as follows:
config/listen_ifname
A string specifying the name of the link to which ptp daemon
should bind to. By default, ptp daemon picks the first usable
link with an IP address configured.
config/node_type
A string specifying the working mode of the ptpd. It can be
either "slave" or "master". Default value is "slave".
config/use_hw
A boolean which when true, instructs ptpd to take advantage of
the PTP hardware assist in the NIC. If set to true and NIC does
not have PTP hardware assist, the ptpd will exit. Default is
false. See EXAMPLES on how to recognize a NIC with PTP hardware
assist.
config/domain
An integer specifying PTP domain as defined in the IEEE specifi-
cation. It can take values from 0 to 127 both inclusive.
Default value is 0.
config/announce_interval
An integer specifying the interval in seconds between successive
PTP ANNOUNCE messages sent by PTP master. Default value is 2.
config/sync_interval
An integer specifying the interval between successive PTP SYNC
messages sent by PTP master. Default value is 1.
config/logfile
A string specifying the location of the file used for log out-
put. The default is /var/log/ptp.log
config/enable_logging
A boolean which when true, instructs ptpd to log synchronization
and other related information in the file specified by con-
fig/logfile. Default value is false.
config/other_options
A string specifying other command line options mentioned below
to be passed to svc:/network/ptp:default at startup.
config/drift_dir
A string to specify a readable and writeable directory were ptpd
can store drift files. Specifying a drift directory automati-
cally enables the use of drift files. Drift files are used to
store the native measured drift of the system clock relative to
the upstream master clocks.
config/startup_delay
A number of seconds to delay before starting the ptpd daemon.
Used if the network interfaces on the system are not done ini-
tializing befoe ptpd starts.
config/delay_only_if_aggr
Only wait the delay seconds from the startup_delay property if
the interface specified in the listen_ifname properter is of
type aggr. An aggr interface can be partially initialized so a
delay may be necessary to allow it to fully initialize before
starting ptpd.
config/debug_level
Set the debug level. The default is zero, no debugging. Maximum
is 3.
config/send_debug_to_stderr
Send debug messages to stderr if true, to the syslog if false.
Default is true.
OPTIONS
-? display a short help text
-B enable debugging if it has been previously compiled in
-c run in command line (non-daemon) mode
-C run in command line mode and display statistics and logs
-S do not log information to syslog, except messages at NOTICE
level or above.
-f FILE
send output to FILE
-R FILE
record a quality FILE
-d display stats
-D display stats in .csv format
-x do not reset the clock if off by more than one second
-M NUMBER
do not accept delay values of more than NUMBER nanoseconds
-O NUMBER
do not reset the clock if offset is more than NUMBER nanoseconds
-P display packets received for debugging purposes
-t do not adjust the system clock
-T set multicast TTL for packets. Defaults to 1.
-a NUMBER,NUMBER
specify clock servo P and I attenuations
-w NUMBER
specify one way delay filter stiffness
-b NAME
bind PTP to network interface NAME
-K use PTP hardware in network interface. Exit if PTP hardware is
not usable or available.
-u ADDRESS
also send uni-cast to ADDRESS
-U enable hybrid mode which uses both unicast and multicast
-e run in ethernet mode (currently unimplemented)
-h run in End to End mode
-J DIRECTORY
specify the directory to use to read and write the driftfile.
There is no default. Specifying the directory enables the use of
driftfiles. The directory must have its permissions set to be
readable and writeable by the ptpd daemon.
-l NUMBER,NUMBER
specify inbound, outbound latency in nsec
-o NUMBER
specify current UTC offset
-i NUMBER
specify PTP domain number
-n NUMBER
specify announce interval in 2^NUMBER sec
-y NUMBER
specify sync interval in 2^NUMBER sec
-m NUMBER
specify max number of foreign master records
-N NUMBER
announce receipt timeout
-V limit displaying statistics by setting the seconds between log
messages
-g run as slave only
-v NUMBER
specify system clock allen variance
-r NUMBER
specify system clock accuracy
-s NUMBER
specify system clock class
-p NUMBER
specify priority1 attribute
-q NUMBER
specify priority2 attribute
-Q NUMBER
Specify an offset above which the clock will be stepped rather
than slewed. The units are nanoseconds. The default is 0.1 sec-
ond. The maximum is one second. All offsets above one second are
always stepped.
-W run as master only
-Y NUMBER
set an initial delay request value
-L enable running multiple ptpd daemons
-j turn off IGMP refresh messages
EXAMPLES
Example 1 Identify the presence of PTP hardware assist. If the ptp
property is equal to 1, PTP hardware assist can be enabled for that NIC
through the config/use_hw property.
#dladm show-linkprop -p ptp
LINK PROPERTY PERM VALUE EFFECTIVE DEFAULT POSSIBLE
net1 ptp r- 0 0 0 0,1
net2 ptp r- 0 0 0 0,1
net0 ptp r- 0 0 0 0,1
net3 ptp r- 0 0 0 0,1
net7 ptp r- 0 0 0 0,1
net8 ptp r- 1 1 0 0,1
In the example above, the link net8 supports ptp in hardware.
Example 2 Starting the ptp service in slave mode.
First bind ptp service to net8 -
#svccfg -s svc:/network/ptp:default \
setprop config/listen_ifname=net8
Then set the mode to "slave" -
#svccfg -s svc:/network/ptp:default \
setprop config/node_type=slave
Enable the service -
#svcadm enable svc:/network/ptp:default
Starting the service in slave mode will allow the ptp service to set
system time to an external clock (PTP master) on the network connected
to interface net8.
Example 3 Force ptp service to use PTP hardware in the NIC.
First configure the service to use the PTP hardware -
#svccfg -s svc:/network/ptp:default \
setprop config/use_hw=true
Then refresh the service, assuming it is enabled and online already -
#svcadm refresh svc:/network/ptp:default
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+---------------+---------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+---------------------+
|Availability | service/network/ptp |
+---------------+---------------------+
|Stability | Uncommitted |
+---------------+---------------------+
NOTES
Be careful when logging is enabled. In default setting it can generate
upto 40 MB of data in a window of 24 hours and many times more if
enabled with -P option.
Solaris does not allow ptpd to run inside a zones(7).
SEE ALSO
svcs(1), svcadm(8), attributes(7), smf(7)
IEEE Standard 1588-2008, Precision Clock Synchronization Protocol for
Networked Measurement and Control Systems, 2008
AUTHORS
Gael Mace <gael_mace@users.sourceforge.net> & Alexandre Van Kempen.
Steven Kreuzer <skreuzer@freebsd.org>
George Neville-Neil <gnn@freebsd.org>
This manual page was written by Gael Mace for any Linux environment
project.
This software was built from source available at
https://github.com/oracle/solaris-userland. The original community
source was downloaded from http://downloads.source-
forge.net/project/ptpd/ptpd/2.2.0/ptpd-2.2.0.tar.gz
Further information about this software can be found on the open source
community website at http://ptpd.sourceforge.net/.
version 2.2.0 October, 2015 ptpd(8)