Provided by: linuxptp_1.9.2-1_amd64 bug

NAME

       ptp4l - PTP Boundary/Ordinary Clock

SYNOPSIS

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

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.

LONG OPTIONS

       Each  and  every  configuration  file option (see below) may also appear as a "long" style
       command line argument.  For example, the slaveOnly option may be set using either of these
       two forms.

              --slaveOnly 1   --slaveOnly=1

       Option  values  given  on  the  command  line override values in the global section of the
       configuration file.

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.

       ignore_transport_specific
              By default, incoming messages are dropped if their transportSpecific field does not
              match the configured value.  However, many of  transports  specified  in  the  1588
              standard mandate ignoring this field.  Moreover, some equipment is known to set the
              reserved bits.  Configuring this option as  1  causes  this  field  to  be  ignored
              completely on receive.  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).

       net_sync_monitor
              Enables the NetSync Monitor (NSM) protocol. The NSM protocol allows  a  station  to
              measure  how  well  another node is synchronized. The monitor sends a unicast delay
              request to the node, which replies unconditionally  with  unicast  delay  response,
              sync,  and follow up messages. If the monitor is synchronized to the GM, it can use
              the time stamps in the message to estimate the node's offset.  This option requires
              that the 'hybrid_e2e' option be enabled as well.  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.

       utc_offset
              The current offset between TAI and UTC.  The default is 37.

       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%).

       initial_delay
              The initial path delay of the clock in nanoseconds used for synchronization of  the
              clock  before the delay is measured using the E2E or P2P delay mechanism. If set to
              0, the clock will not be updated until the delay is measured.  The default is 0.

       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).

       message_tag
              The tag which is added to all messages printed to the  standard  output  or  system
              log.  The default is an empty string (which cannot be set in the configuration file
              as the option requires an argument).

       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)