Provided by: linuxptp_1.8-1ubuntu0.1_amd64 bug

NAME

       ptp4l - PTP Boundary/Ordinary Clock

SYNOPSIS

       ptp4l [ -AEP246HSLmqsv ] [ -f config ] [ -p phc-device ] [ -l print-level ] [ -i interface ] ...

DESCRIPTION

       ptp4l  is  an  implementation  of  the  Precision Time Protocol (PTP) according to IEEE standard 1588 for
       Linux. It implements Boundary Clock (BC) and Ordinary Clock (OC).

OPTIONS

       -A     Select the delay mechanism automatically. Start with E2E and switch  to  P2P  when  a  peer  delay
              request is received.

       -E     Select  the  delay  request-response (E2E) mechanism. This is the default mechanism. All clocks on
              single PTP communication path must use the same mechanism. A warning will be printed when  a  peer
              delay request is received on port using the E2E mechanism.

       -P     Select  the peer delay (P2P) mechanism. A warning will be printed when a delay request is received
              on port using the P2P mechanism.

       -2     Select the IEEE 802.3 network transport.

       -4     Select the UDP IPv4 network transport. This is the default transport.

       -6     Select the UDP IPv6 network transport.

       -H     Select the hardware time stamping. All ports specified by the -i option and in  the  configuration
              file must be attached to the same PTP hardware clock (PHC). This is the default time stamping.

       -S     Select the software time stamping.

       -L     Select the legacy hardware time stamping.

       -f config
              Read configuration from the specified file. No configuration file is read by default.

       -i interface
              Specify  a  PTP  port,  it may be used multiple times. At least one port must be specified by this
              option or in the configuration file.

       -p phc-device
              (This option is deprecated.)  Before Linux kernel v3.5 there was no way to discover the PHC device
              associated  with a network interface.  This option specifies the PHC device (e.g. /dev/ptp0) to be
              used when running on legacy kernels.

       -s     Enable the slaveOnly mode.

       -l print-level
              Set the maximum syslog level of messages which should be printed or sent to the system logger. The
              default is 6 (LOG_INFO).

       -m     Print messages to the standard output.

       -q     Don't send messages to the system logger.

       -v     Prints the software version and exits.

       -h     Display a help message.

CONFIGURATION FILE

       The  configuration  file  is  divided  into sections. Each section starts with a line containing its name
       enclosed in brackets and it follows with settings.  Each  setting  is  placed  on  a  separate  line,  it
       contains  the  name of the option and the value separated by whitespace characters. Empty lines and lines
       starting with # are ignored.

       The global section (indicated as [global]) sets the program  options,  clock  options  and  default  port
       options.  Other sections are port specific sections and they override the default port options.  The name
       of the section is the name of the configured port (e.g.  [eth0]).  Ports specified in  the  configuration
       file  don't  need  to  be  specified  by  the -i option. An empty port section can be used to replace the
       command line option.

PORT OPTIONS

       delayAsymmetry
              The time difference in nanoseconds of the  transmit  and  receive  paths.  This  value  should  be
              positive when the master-to-slave propagation time is longer and negative when the slave-to-master
              time is longer. The default is 0 nanoseconds.

       logAnnounceInterval
              The mean time interval between Announce messages. A shorter interval makes ptp4l react  faster  to
              the  changes  in  the master-slave hierarchy. The interval should be the same in the whole domain.
              It's specified as a power of two in seconds.  The default is 1 (2 seconds).

       logSyncInterval
              The mean time interval between Sync messages. A shorter interval may improve accuracy of the local
              clock. It's specified as a power of two in seconds.  The default is 0 (1 second).

       logMinDelayReqInterval
              The  minimum  permitted  mean  time  interval between Delay_Req messages. A shorter interval makes
              ptp4l react faster to the changes in the path delay. It's specified as a power of two in  seconds.
              The default is 0 (1 second).

       logMinPdelayReqInterval
              The minimum permitted mean time interval between Pdelay_Req messages. It's specified as a power of
              two in seconds.  The default is 0 (1 second).

       announceReceiptTimeout
              The number of missed Announce messages before the last Announce messages expires.  The default  is
              3.

       syncReceiptTimeout
              The  number  of  sync/follow up messages that may go missing before triggering a Best Master Clock
              election. This option is used for running in gPTP mode according  to  the  802.1AS-2011  standard.
              Setting this option to zero will disable the sync message timeout.  The default is 0 or disabled.

       transportSpecific
              The transport specific field. Must be in the range 0 to 255.  The default is 0.

       path_trace_enabled
              Enable  the  mechanism  used  to  trace  the  route  of  the  Announce messages.  The default is 0
              (disabled).

       follow_up_info
              Include the 802.1AS data in the Follow_Up messages if enabled.  The default is 0 (disabled).

       fault_reset_interval
              The time in seconds between the detection of a port's fault and the fault being reset. This  value
              is  expressed as a power of two. Setting this value to -128 or to the special key word "ASAP" will
              let the fault be reset immediately.  The default is 4 (16 seconds).

       fault_badpeernet_interval
              The time in seconds between the detection of a peer network misconfiguration and the  fault  being
              reset.  The  port  is  disabled  for the duration of the interval. The value is in seconds and the
              special key word ASAP will let the fault be reset immediately.  The default is 16 seconds.

       delay_mechanism
              Select the delay mechanism. Possible values are E2E, P2P and Auto.  The default is E2E.

       hybrid_e2e
              Enables the "hybrid" delay mechanism from the draft Enterprise Profile. When enabled, ports in the
              slave  state  send  their  delay  request  messages to the unicast address taken from the master's
              announce message. Ports in the master state will reply to unicast  delay  requests  using  unicast
              delay responses. This option has no effect if the delay_mechanism is set to P2P.  The default is 0
              (disabled).

       ptp_dst_mac
              The MAC address to which PTP messages should be  sent.   Relevant  only  with  L2  transport.  The
              default is 01:1B:19:00:00:00.

       p2p_dst_mac
              The MAC address to which peer delay messages should be sent.  Relevant only with L2 transport. The
              default is 01:80:C2:00:00:0E.

       network_transport
              Select the network transport. Possible values are UDPv4, UDPv6 and L2.  The default is UDPv4.

       neighborPropDelayThresh
              Upper limit for peer delay in nanoseconds. If the estimated peer delay is greater than this  value
              the port is marked as not 802.1AS capable.

       min_neighbor_prop_delay
              Lower  limit for peer delay in nanoseconds. If the estimated peer delay is smaller than this value
              the port is marked as not 802.1AS capable.

       tsproc_mode
              Select the time stamp processing mode used to calculate offset and  delay.   Possible  values  are
              filter,  raw,  filter_weight,  raw_weight.  Raw  modes perform well when the rate of sync messages
              (logSyncInterval)  is  similar  to  the  rate  of  delay   messages   (logMinDelayReqInterval   or
              logMinPdelayReqInterval).  Weighting  is  useful  with  larger network jitters (e.g. software time
              stamping).  The default is filter.

       delay_filter
              Select the algorithm used to filter the  measured  delay  and  peer  delay.  Possible  values  are
              moving_average and moving_median.  The default is moving_median.

       delay_filter_length
              The length of the delay filter in samples.  The default is 10.

       egressLatency
              Specifies  the  difference  in  nanoseconds  between the actual transmission time at the reference
              plane and the reported transmit time stamp. This  value  will  be  added  to  egress  time  stamps
              obtained from the hardware.  The default is 0.

       ingressLatency
              Specifies  the  difference  in  nanoseconds between the reported receive time stamp and the actual
              reception time at reference plane. This value will be subtracted from ingress time stamps obtained
              from the hardware.  The default is 0.

       boundary_clock_jbod
              When  running  as  a boundary clock (that is, when more than one network interface is configured),
              ptp4l performs a sanity check to make sure that all of the ports share  the  same  hardware  clock
              device.  This option allows ptp4l to work as a boundary clock using "just a bunch of devices" that
              are not synchronized to each other. For this mode, the collection of clocks must  be  synchronized
              by an external program, for example phc2sys(8) in "automatic" mode.  The default is 0 (disabled).

       udp_ttl
              Specifies  the  Time  to  live  (TTL) value for IPv4 multicast messages and the hop limit for IPv6
              multicast messages. This option is only relevant with  the  IPv4  and  IPv6  UDP  transports.  The
              default is 1 to restrict the messages sent by ptp4l to the same subnet.

PROGRAM AND CLOCK OPTIONS

       twoStepFlag
              Enable  two-step  mode  for  sync  messages.  One-step  mode  can  be used only with hardware time
              stamping.  The default is 1 (enabled).

       slaveOnly
              The local clock is a slave-only clock if enabled.  This option is only for use  with  1588  clocks
              and should not be enabled for 802.1AS clocks.  The default is 0 (disabled).

       gmCapable
              If  this option is enabled, then the local clock is able to become grand master.  This is only for
              use with 802.1AS clocks and has no effect on 1588 clocks.  The default is 1 (enabled).

       priority1
              The priority1 attribute of the local clock. It is used in the  best  master  selection  algorithm,
              lower values take precedence. Must be in the range 0 to 255.  The default is 128.

       priority2
              The  priority2  attribute  of  the local clock. It is used in the best master selection algorithm,
              lower values take precedence. Must be in the range 0 to 255.  The default is 128.

       clockClass
              The clockClass attribute of the local clock. It denotes the traceability of the  time  distributed
              by the grandmaster clock.  The default is 248.

       clockAccuracy
              The clockAccuracy attribute of the local clock. It is used in the best master selection algorithm.
              The default is 0xFE.

       offsetScaledLogVariance
              The offsetScaledLogVariance attribute of the local clock. It characterizes the  stability  of  the
              clock.  The default is 0xFFFF.

       domainNumber
              The domain attribute of the local clock.  The default is 0.

       free_running
              Don't adjust the local clock if enabled.  The default is 0 (disabled).

       freq_est_interval
              The time interval over which is estimated the ratio of the local and peer clock frequencies. It is
              specified as a power of two in seconds.  The default is 1 (2 seconds).

       assume_two_step
              Treat one-step responses as two-step if enabled. It is used to work around buggy 802.1AS switches.
              The default is 0 (disabled).

       tx_timestamp_timeout
              The  number  of  milliseconds to poll waiting for the tx time stamp from the kernel when a message
              has recently been sent.  The default is 1.

       check_fup_sync
              Because of packet reordering that can occur in the network, in the hardware, or in the  networking
              stack,  a  follow  up  message  can  appear  to arrive in the application before the matching sync
              message. As this is a normal occurrence, and the sequenceID message field ensures proper matching,
              the  ptp4l  program  accepts  out of order packets. This option adds an additional check using the
              software time stamps from the networking stack to verify that the sync message did  arrive  first.
              This  option  is  only  useful  if you do not trust the sequence IDs generated by the master.  The
              default is 0 (disabled).

       clock_servo
              The servo which is used to synchronize the local clock. Valid values are "pi" for a PI controller,
              "linreg"  for  an  adaptive controller using linear regression, "ntpshm" for the NTP SHM reference
              clock to allow another process to synchronize the local clock (the SHM segment number  is  set  to
              the  domain  number),  and "nullf" for a servo that always dials frequency offset zero (for use in
              SyncE nodes).  The default is "pi."

       pi_proportional_const
              The proportional constant of the PI controller. When set to 0.0, the proportional constant will be
              set by the following formula from the current sync interval.  The default is 0.0.

              kp = min(kp_scale * sync^kp_exponent, kp_norm_max / sync)

       pi_integral_const
              The  integral constant of the PI controller. When set to 0.0, the integral constant will be set by
              the following formula from the current sync interval.  The default is 0.0.

              ki = min(ki_scale * sync^ki_exponent, ki_norm_max / sync)

       pi_proportional_scale
              The kp_scale constant in the formula used to set the proportional constant of  the  PI  controller
              from  the  sync  interval.  When  set  to 0.0, the value will be selected from 0.7 and 0.1 for the
              hardware and software time stamping respectively.  The default is 0.0.

       pi_proportional_exponent
              The kp_exponent constant in the formula used to set the proportional constant of the PI controller
              from the sync interval.  The default is -0.3.

       pi_proportional_norm_max
              The kp_norm_max constant in the formula used to set the proportional constant of the PI controller
              from the sync interval.  The default is 0.7

       pi_integral_scale
              The ki_scale constant in the formula used to set the integral constant of the PI  controller  from
              the sync interval. When set to 0.0, the value will be selected from 0.3 and 0.001 for the hardware
              and software time stamping respectively.  The default is 0.0.

       pi_integral_exponent
              The ki_exponent constant in the formula used to set the integral constant  of  the  PI  controller
              from the sync interval.  The default is 0.4.

       pi_integral_norm_max
              The  ki_norm_max  constant  in  the formula used to set the integral constant of the PI controller
              from the sync interval.  The default is 0.3.

       step_threshold
              The maximum offset the servo will correct by changing the clock frequency instead of stepping  the
              clock.  When  set  to  0.0, the servo will never step the clock except on start. It's specified in
              seconds.  The default is 0.0.  This option used to be called pi_offset_const.

       first_step_threshold
              The maximum offset the servo will correct by changing the clock frequency instead of stepping  the
              clock.  This  is only applied on the first update. It's specified in seconds. When set to 0.0, the
              servo won't step the clock on start.  The default is 0.00002 (20 microseconds).  This option  used
              to be called pi_f_offset_const.

       max_frequency
              The  maximum  allowed  frequency  adjustment  of  the clock in parts per billion (ppb). This is an
              additional limit to the maximum allowed by the hardware. When set to 0, the hardware limit will be
              used.  The default is 900000000 (90%).  This option used to be called pi_max_frequency.

       sanity_freq_limit
              The  maximum  allowed frequency offset between uncorrected clock and the system monotonic clock in
              parts per billion (ppb). This is used as a sanity check of the synchronized clock. When  a  larger
              offset  is measured, a warning message will be printed and the servo will be reset. When set to 0,
              the sanity check is disabled. The default is 200000000 (20%).

       ntpshm_segment
              The number of the SHM segment used by ntpshm servo.  The default is 0.

       udp6_scope
              Specifies the desired scope for the IPv6 multicast messages.  This will be used as the second byte
              of  the  primary  address.   This option is only relevant with IPv6 transport.  See RFC 4291.  The
              default is 0x0E for the global scope.

       uds_address
              Specifies the address of the UNIX domain socket  for  receiving  local  management  messages.  The
              default is /var/run/ptp4l.

       dscp_event
              Defines  the Differentiated Services Codepoint (DSCP) to be used for PTP event messages. Must be a
              value between 0 and 63. There are  several  media  streaming  standards  out  there  that  require
              specific values for this option.  For example 46 (EF PHB) in AES67 or 48 (CS6 PHB) in RAVENNA. The
              default is 0.

       dscp_general
              Defines the Differentiated Services Codepoint (DSCP) to be used for PTP general messages. Must  be
              a  value  between  0  and 63. There are several media streaming standards out there that recommend
              specific values for this option.  For example 34 (AF41 PHB) in AES67 or 46 (EF  PHB)  in  RAVENNA.
              The default is 0.

       logging_level
              The maximum logging level of messages which should be printed.  The default is 6 (LOG_INFO).

       verbose
              Print messages to the standard output if enabled.  The default is 0 (disabled).

       use_syslog
              Print messages to the system log if enabled.  The default is 1 (enabled).

       summary_interval
              The time interval in which are printed summary statistics of the clock. It is specified as a power
              of two in seconds. The statistics include offset root mean square (RMS), maximum absolute  offset,
              frequency  offset  mean  and  standard  deviation, and path delay mean and standard deviation. The
              units are nanoseconds and parts per billion (ppb). If there  is  only  one  clock  update  in  the
              interval,  the  sample  will be printed instead of the statistics. The messages are printed at the
              LOG_INFO level.  The default is 0 (1 second).

       time_stamping
              The time stamping method. The allowed values are hardware, software and legacy.   The  default  is
              hardware.

       productDescription
              The     product     description    string.    Allowed    values    must    be    of    the    form
              manufacturerName;modelNumber;instanceIdentifier and contain at most 64 utf8 symbols.  The  default
              is ";;".

       revisionData
              The  revision  description  string  which  contains the revisions for node hardware (HW), firmware
              (FW), and software (SW). Allowed values are of the form HW;FW;SW  and  contain  at  most  32  utf8
              symbols. The default is an ";;".

       userDescription
              The  user description string. Allowed values are of the form name;location and contain at most 128
              utf8 symbols. The default is an empty string.

       manufacturerIdentity
              The manufacturer id which should be an OUI owned by the manufacturer.  The default is 00:00:00.

       kernel_leap
              When a leap second is announced, let the  kernel  apply  it  by  stepping  the  clock  instead  of
              correcting  the  one-second offset with servo, which would correct the one-second offset slowly by
              changing the clock frequency (unless the step_threshold option is set to correct  such  offset  by
              stepping).  Relevant only with software time stamping. The default is 1 (enabled).

       timeSource
              The  time  source  is a single byte code that gives an idea of the kind of local clock in use. The
              value is purely informational, having no effect on the outcome of the Best Master Clock algorithm,
              and is advertised when the clock becomes grand master.

TIME SCALE USAGE

       ptp4l  as  domain  master either uses PTP or UTC time scale depending on time stamping mode.  In software
       and legacy time stamping modes it announces Arbitrary time scale mode, which is effectively UTC here,  in
       hardware time stamping mode it announces use of PTP time scale.

       When ptp4l is the domain master using hardware time stamping, it is up to phc2sys to maintain the correct
       offset between UTC and PTP times. See phc2sys(8) manual page for more details.

SEE ALSO

       pmc(8), phc2sys(8)