20.2. Using PTP
PTP, the kernel network driver for the intended interface has to support either software or hardware time stamping capabilities.
20.2.1. Checking for Driver and Hardware Support
~]#Where eth3 is the interface you want to check.
ethtool -T eth3Time stamping parameters for eth3: Capabilities: hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE) software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE) hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE) software-receive (SOF_TIMESTAMPING_RX_SOFTWARE) software-system-clock (SOF_TIMESTAMPING_SOFTWARE) hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE) PTP Hardware Clock: 0 Hardware Transmit Timestamp Modes: off (HWTSTAMP_TX_OFF) on (HWTSTAMP_TX_ON) Hardware Receive Filter Modes: none (HWTSTAMP_FILTER_NONE) all (HWTSTAMP_FILTER_ALL)
20.2.2. Installing PTP
PTP. User space support is provided by the tools in the linuxptp package. To install linuxptp, issue the following command as
~]#This will install ptp4l and phc2sys.
yum install linuxptp
NTP, see Section 20.8, “Serving PTP Time with NTP”.
20.2.3. Starting ptp4l
/etc/sysconfig/ptp4lfile. Options required for use both by the service and on the command line should be specified in the
/etc/sysconfig/ptp4lfile includes the
-f /etc/ptp4l.confcommand line option, which causes the
ptp4lprogram to read the
/etc/ptp4l.conffile and process the options it contains. The use of the
/etc/ptp4l.confis explained in Section 20.4, “Specifying a Configuration File”. More information on the different ptp4l options and the configuration file settings can be found in the
Starting ptp4l as a Service
~]#For more information on managing system services in Red Hat Enterprise Linux 7, see Chapter 10, Managing Services with systemd.
systemctl start ptp4l
Using ptp4l From The Command Line
-ioption. Enter the following command as
~]#Where eth3 is the interface you want to configure. Below is example output from ptp4l when the
ptp4l -i eth3 -m
PTPclock on the NIC is synchronized to a master:
~]#The master offset value is the measured offset from the master in nanoseconds. The
ptp4l -i eth3 -mselected eth3 as PTP clock port 1: INITIALIZING to LISTENING on INITIALIZE port 0: INITIALIZING to LISTENING on INITIALIZE port 1: new foreign master 00a069.fffe.0b552d-1 selected best master clock 00a069.fffe.0b552d port 1: LISTENING to UNCALIBRATED on RS_SLAVE master offset -23947 s0 freq +0 path delay 11350 master offset -28867 s0 freq +0 path delay 11236 master offset -32801 s0 freq +0 path delay 10841 master offset -37203 s1 freq +0 path delay 10583 master offset -7275 s2 freq -30575 path delay 10583 port 1: UNCALIBRATED to SLAVE on MASTER_CLOCK_SELECTED master offset -4552 s2 freq -30035 path delay 10385
s2strings indicate the different clock servo states:
s1is clock step and
s2is locked. Once the servo is in the locked state (
s2), the clock will not be stepped (only slowly adjusted) unless the
pi_offset_constoption is set to a positive value in the configuration file (described in the
ptp4l(8)man page). The
adjvalue is the frequency adjustment of the clock in parts per billion (ppb). The path delay value is the estimated delay of the synchronization messages sent from the master in nanoseconds. Port 0 is a Unix domain socket used for local
PTPmanagement. Port 1 is the
eth3interface (based on the example above.) INITIALIZING, LISTENING, UNCALIBRATED and SLAVE are some of possible port states which change on the INITIALIZE, RS_SLAVE, MASTER_CLOCK_SELECTED events. In the last state change message, the port state changed from UNCALIBRATED to SLAVE indicating successful synchronization with a
Logging Messages From ptp4l
/var/log/messages. However, specifying the
-moption enables logging to standard output which can be useful for debugging purposes.
-Soption needs to be used as follows:
ptp4l -i eth3 -m -S
220.127.116.11. Selecting a Delay Measurement Mechanism
ptp4lcommand as follows:
-Pselects the peer-to-peer (P2P) delay measurement mechanism.The P2P mechanism is preferred as it reacts to changes in the network topology faster, and may be more accurate in measuring the delay, than other mechanisms. The P2P mechanism can only be used in topologies where each port exchanges PTP messages with at most one other P2P port. It must be supported and used by all hardware, including transparent clocks, on the communication path.
-Eselects the end-to-end (E2E) delay measurement mechanism. This is the default.The E2E mechanism is also referred to as the delay “request-response” mechanism.
-Aenables automatic selection of the delay measurement mechanism.The automatic option starts ptp4l in E2E mode. It will change to P2P mode if a peer delay request is received.
PTPcommunication path must use the same mechanism to measure the delay. Warnings will be printed in the following circumstances:
- When a peer delay request is received on a port using the E2E mechanism.
- When a E2E delay request is received on a port using the P2P mechanism.