ptpd2.conf(5) | PTPd config file | ptpd2.conf(5) |
NAME¶
ptpd2.conf - Precision Time Protocol daemon config file
CONFIGURATION FILE FORMAT¶
Settings in the PTPd configuration file are grouped into sections and take the form of section:key="value" variables. The configuration file can either be formatted that way (preferred) or in .ini file style where a series of key="value" variables is grouped into sections using [section] headers. Every setting listed here can also be specified as a command line parameter (--section:key=value). Quotation marks are optional. NOTE: the configuration file must end with a newline.
RELOADING CONFIGURATION¶
Only a small number of configuration file settings (SNMP, lock file configuration) requires a restart of the PTPd process to take effect. All other settings can be changed while ptpd is running - configuration file is reloaded and checked for changes when PTPd receives the SIGHUP signal. When reloading configuration, PTPd will always attempt to test settings before applying them and once running, will never exit as a result of configuration errors. If it does exit during config refresh, this is most likely a bug.
PRIORITY¶
Any setting passed as a command line parameter will always take priority over the configuration file, so once ptpd is running, those settings cannot be changed - a warning will be logged on every attempt to change those settings using the configuration file.
CONFIGURATION SECTIONS¶
CONFIGURATION VARIABLES¶
- none
- Defaults, no clock class restrictions
- slaveonly
- Slave only (clock class 255 only)
- masteronly
- Master, passive when not best master (clock class 0..127)
- masterslave
- Full IEEE 1588 implementation: Master, slave when not best master (clock class 128..254)
- multicast
- uses multicast for all messages
- hybrid
- uses multicast for sync and announce, and unicast for delay request and response
- unicast
- uses unicast for all transmission. When unicast mode is selected, destination IP(s) (ptpengine:unicast_destinations) must be configured depending on unicast negotiation setting (ptpengine:unicast_negotiation) and master or slave role (see: ptpengine:unicast_destinations)
- default
- multicast
- usage
- Duration (seconds) for which the transmission of unicast messages is granted by a master, or requested by a slave when unicast negotiation is used (ptpengine:unicast_negotiation). When using PTPd with other PTP implementations, PTPd will never refuse to grant a message based on the requested duration: it will grant for 30 seconds if requested for any less than 30 seconds, and will grant for 7 days (604800) if requested for any longer.
- default
- 300
- usage
- Use libpcap for sending and receiving traffic (automatically enabled in Ethernet mode). Requires building with libpcap - builds made with --disable-pcap cannot use this feature, and as of 2.3.1, Solaris systems will not attempt to use libpcap unless compiled with --enable-experimental-options
- default
- N
- usage
- Usability extension: if enabled, a slave-only clock will accept masters from any domain, while preferring the configured domain, and preferring lower domain number. This option should be used for slave-only clocks and should not be used with unicast negotiation. NOTE: this behaviour is not part of the standard.
- default
- N
- usage
- Apply an arbitrary shift (nanoseconds) to offset from master when in slave state. Value can be positive or negative - useful for correcting for of antenna latencies, delay assymetry and IP stack latencies. This will not be visible in the offset from master value - only in the resulting clock correction.
- default
- 0
- usage
- PTP announce receipt timeout grace period in slave state: when announce
receipt timeout occurs, disqualify current best GM,
then wait n times announce receipt timeout before resetting. Allows for a seamless GM failover when standby GMs are slow
to react. When set to 0, this option is not used. - default
- 0
- usage
- Minimum delay request interval announced when in master state, in slave
state overrides the master interval.
(expressed as log 2 i.e. -1=0.5s, 0=1s, 1=2s etc.). When using unicast negotiation (ptpengine:unicast_negotiation), for slaves this is the initial (minimum) interval requested and for masters this is the minimum interval granted. - default
- 0
- usage
- Minimum peer delay request message interval in peer to peer delay mode (expressed as log 2 i.e. -1=0.5s, 0=1s, 1=2s etc.). When using unicast negotiation (ptpengine:unicast_negotiation), this is the initial (minimum) interval requested by a node from its peer and this is the minimum interval granted for a peer.
- default
- 1
- usage
- Clock class - announced in master state. Always 255 for slave-only. Minimum, maximum and default values are controlled by presets. If set to 13 (application specific time source), announced time scale is always set to ARB. This setting controls the states a PTP port can be in. If below 128, port will only be in MASTER or PASSIVE states (master only). If above 127, port will be in MASTER or SLAVE states.
- default
- 255
- usage
- An IPv4 address or list of IPv4 addresses to be used as unicast destinations. When unicast negotiation (ptpengine:unicast_negotiation) is enabled, setting this is mandatory for slaves as they must be aware of which GMs to request messages from. When unicast negotiation is disabled, setting this is mandatory for GMs, as they must deliver messages to a pre-configured group of slaves.
- default
- [none]
- usage
- Specify PTP domain number for each configured unicast destination (ptpengine:unicast_destinations). This is only used by slave-only clocks using unicast destinations to allow for each master to be in a separate domain, such as with Telecom Profile. The number of entries should match the number of unicast destinations, otherwise unconfigured domains or domains set to 0 are set to domain configured in ptpengine:domain. The format is a comma, tab or space-separated list of 8-bit unsigned integers (0 .. 255).
- default
- [none]
- usage
- Specify a local preference for each configured unicast destination (ptpengine:unicast_destinations). This is only used by slave-only clocks using unicast destinations to allow for each master's BMC selection to be influenced locally by the slave, such as with Telecom Profile. The number of entries should match the number of unicast destinations, otherwise unconfigured preference is set to 0 (highest). The format is a comma, tab or space-separated list of 8-bit unsigned integers (0 .. 255).
- default
- [none]
- options
- none mean min max absmin absmax median
- usage
- Type of filter used for Sync message filtering:
- none
- no filtering - pass-through
- mean
- mean (average) - smooth results but influenced by outliers
- min
- minimal value - useful for high packet delay variation ("lucky packets")
- max
- maximal value - useful for testing worst case scenarios
- absmin
- absolute minimum - value closest to zero. Also useful for test purposes.
- absmax
- absolute maximun value farthest away from zero
- median
- median (middle value) - more robust than mean, not influenced by outliers
- default
- min
- options
- none mean min max absmin absmax median
- usage
- Type of filter used for Delay message filtering:
- none
- no filtering - pass-through
- mean
- mean (average) - smooth results but influenced by outliers
- min
- minimal value - useful for high packet delay variation ("lucky packets")
- max
- maximal value - useful for testing worst case scenarios
- absmin
- absolute minimum - value closest to zero. Also useful for test purposes.
- absmax
- absolute maximun value farthest away from zero
- median
- median (middle value) - more robust than mean, not influenced by outliers
- default
- min
- default
- sliding
- usage
- When enabled, Sync messages will only be accepted if sequence ID is increasing. note: This can cause the slave to temporarily lock up if GM restarts before announce timeout, so this is limited to 50 consecutive sequence errors. Alternatively, ptpengine:clock_update_timeout can be used to reset the slave beforehand.
- default
- N
- usage
- Permit access control list for timing and signaling messages. Format is a series of network prefixes and/or IP addresses separated by commas, spaces, tabs or semicolons. Accepted format is CIDR notation (a.b.c.d/mm), single IP address (a.b.c.d), or full network/mask (a.b.c.d/m.m.m.m). Shortcuts can be used: 172.16/12 is expanded to 172.16.0.0/12; 192.168/255.255 is expanded to 192.168.0.0/255.255.0.0, etc. The match is performed on the source IP address of the incoming messages. IP access lists are only supported when using the IP transport.
- default
- [none]
- usage
- Deny access control list for timing and signaling messages. Format is a series of network prefixes and/or IP addresses separated by commas, spaces, tabs or semicolons. Accepted format is CIDR notation (a.b.c.d/mm), single IP address (a.b.c.d), or full network/mask (a.b.c.d/m.m.m.m). Shortcuts can be used: 172.16/12 is expanded to 172.16.0.0/12; 192.168/255.255 is expanded to 192.168.0.0/255.255.0.0, etc. The match is performed on the source IP address of the incoming messages. IP access lists are only supported when using the IP transport.
- default
- [none]
- usage
- Permit access control list for management messages. Format is a series of network prefixes and/or IP addresses separated by commas, spaces, tabs or semicolons. Accepted format is CIDR notation (a.b.c.d/mm), single IP address (a.b.c.d), or full network/mask (a.b.c.d/m.m.m.m). Shortcuts can be used: 172.16/12 is expanded to 172.16.0.0/12; 192.168/255.255 is expanded to 192.168.0.0/255.255.0.0, etc. The match is performed on the source IP address of the incoming messages. IP access lists are only supported when using the IP transport.
- default
- [none]
- usage
- Deny access control list for management messages. Format is a series of network prefixes and/or IP addresses separated by commas, spaces, tabs or semicolons. Accepted format is CIDR notation (a.b.c.d/mm), single IP address (a.b.c.d), or full network/mask (a.b.c.d/m.m.m.m). Shortcuts can be used: 172.16/12 is expanded to 172.16.0.0/12; 192.168/255.255 is expanded to 192.168.0.0/255.255.0.0, etc. The match is performed on the source IP address of the incoming messages. IP access lists are only supported when using the IP transport.
- default
- [none]
- options
- permit-deny deny-permit
- usage
- Order in which permit and deny access lists are evaluated for timing and signaling messages, the evaluation process is the same as for Apache httpd. See: http://httpd.apache.org/docs/current/mod/mod_access_compat.html#order
- default
- deny-permit
- options
- permit-deny deny-permit
- usage
- Order in which permit and deny access lists are evaluated for management messages, the evaluation process is the same as for Apache httpd. See: http://httpd.apache.org/docs/current/mod/mod_access_compat.html#order
- default
- deny-permit
- usage
- Attempt setting the RTC when stepping clock (Linux only - FreeBSD does this for us. WARNING: this will always set the RTC to OS clock time, regardless of time zones, so this assumes that RTC runs in UTC or otherwise in the same timescale as PTP. True at least on most single-boot x86 Linux systems.
- default
- N
- default
- preserve
- usage
- Specify leap second file location (up to date version can be downloaded from: http://www.ietf.org/timezones/data/leap-seconds.list). When configured, PTP master will use data from this file to announce leap flags and UTC offset, overriding OS information, and PTP slave will use data from this file as well as information supplied by the GM. If configured, this file is always reloaded on configuration reload (SIGHUP), reloaded on clock step and reloaded after a leap second event to ensure the information is up to date. As of ptpd 2.3.1, the file is bundled with ptpd and is installed into (prefix)/share/ptpd/leap-seconds.list.ddMMMyyyy where ddMMMyyyy is the leap seconds file expiry date.
- default
- [none]
- usage
- Time (seconds) before and after midnight that clock updates should be suspended for during a leap second event. The total duration of the pause is twice the configured duration. Clock updates are suspended when there is a leap second event pending and time to midnight is less than or equal to this value and resumed no earlier than this value after midnight. Clock updates are resumed in a controlled manner - after a control message, such as PTP announce. This ensures that the updated UTC offset is received before any further clock updates.
- default
- 5
- accept
- Inform OS kernel about the leap second and let the kernel insert or delete the leap second
- ignore
- Do not inform the kernel - this ends with a +/-1-second offset which is then slewed back down
- step
- Do not inform the kernel and step the clock immediately after the leap second event
- smear
- Gradually introduce an extra offset over a period of time before the leap second event, which accumulates to +/-1 second (see clock:leap_second_smear_period). Once the clock stabilises, this results in a clock frequency shift which is taken off after the event. Once the leap second event is over, the extra offset is also removed and time is back in line with master time.
- default
- accept
- usage
- When clock:leap_second_handling is set to smear, this setting defines the period (in seconds) before the leap second event, over which the leap second offset is gradually added. Example: when set to 24 hours (86400), an extra +/-11.5 microseconds is added every second (11.5 ppm clock frequency offset).
- default
- 86400
- usage
- Maximum absolute frequency shift which can be applied to the clock servo when slewing the clock. Expressed in parts per million (1 ppm = shift of 1 us per second. Values above 512 will use the tick duration correction to allow even faster slewing. Default maximum is 512 without using tick.
- default
- 500
- default
- constant
BUGS¶
Configuration file support has only been introduced in version 2.3. There may still be some inconsistencies in the way some settings are parsed and while order should not make any difference, for some complex behaviours it may still be the case.
Please report any bugs using the bug tracker on the SourceForge page: http://sourceforge.net/projects/ptpd/
SEE ALSO¶
AUTHORS¶
Steven Kreuzer <skreuzer@freebsd.org>
Gael Mace <gael_mace@users.sourceforge.net>
George Neville-Neil <gnn@freebsd.org>
Wojciech Owczarek <wojciech@owczarek.co.uk>
Alexandre Van Kempen
ptpd2.conf(5) man page first written by Wojciech Owczarek for ptpd 2.3.0 in November 2013
June, 2015 | version 2.3.1 |