I made 2 VMs on VMWorkstation and isstalled CentOS 7 on both.
Then i installed PTPd2.3 on both and run following commands :-
ptpd2 -C -M -i eno16777736 -u 192.168.249.145 -S -L (On master - .145 being my slave machine)
ptpd2 -C -s -i eno16777736 -u 192.168.249.142 -S -L (On slave - .142 being my slave machine)
Master displays following messages :-
[root@localhost src]# ptpd2 -C -M -i eno16777736 -u 192.168.249.145 -S -L
2015-04-22 04:57:52.169901 ptpd2[13636].startup (info) () Configuration OK
2015-04-22 04:57:52.172203 ptpd2[13636].startup (info) () Successfully acquired lock on /var/run/ptpd2.lock
2015-04-22 04:57:52.172310 ptpd2[13636].startup (notice) (___) PTPDv2 started successfully on eno16777736 using "masteronly" preset (PID 13636)
2015-04-22 04:57:52.208329 ptpd2[13636].eno16777736 (notice) (lstn_init) Now in state: PTP_LISTENING
2015-04-22 04:57:53.585482 ptpd2[13636].eno16777736 (notice) (mst) Now in state: PTP_MASTER, Best master: 000c29fffe4575a2(unknown)/01 (self)
Slave is able to detect my .145 machine as master clock and displays following :-
[root@localhost Desktop]# ptpd2 -C -s -i eno16777736 -u 192.168.249.142 -S -h -L -a
Warning: It is recommended to set the delay request interval (ptpengine:log_delayreq_interval) in unicast mode
2015-04-22 05:36:11.169388 ptpd2[5779].startup (info) () Configuration OK
2015-04-22 05:36:11.172710 ptpd2[5779].startup (notice) () PTPDv2 started successfully on eno16777736 using "slaveonly" preset (PID 5779)
2015-04-22 05:36:11.188558 ptpd2[5779].eno16777736 (info) (init) Observed_drift loaded from kernel: -18411
2015-04-22 05:36:11.188598 ptpd2[5779].eno16777736 (notice) (lstn_init) Now in state: PTP_LISTENING
2015-04-22 05:36:11.748632 ptpd2[5779].eno16777736 (info) (lstn_init) New best master selected: 000c29fffe4575a2(unknown)/01
2015-04-22 05:36:11.748815 ptpd2[5779].eno16777736 (notice) (slv) Now in state: PTP_SLAVE, Best master: 000c29fffe4575a2(unknown)/01
2015-04-22 05:36:12.747693 ptpd2[5779].eno16777736 (notice) (slv) Received first Sync from Master
2015-04-22 05:36:12.747811 ptpd2[5779].eno16777736 (notice) (slv) Servo: Going to slew the clock with the maximum frequency adjustment
This is the entry on ptpd.log file of slave machine:-
2015-04-22 04:12:34.542680 ptpd2[1938].startup (info) () Info: Now running as a daemon
2015-04-22 04:12:34.561277 ptpd2[1938].startup (info) () Successfully acquired lock on /var/run/ptpd2.lock
2015-04-22 04:12:34.561307 ptpd2[1938].startup (notice) (___) PTPDv2 started successfully on eno16777736 using "slaveonly" preset (PID 1938)
2015-04-22 04:12:34.565580 ptpd2[1938].eno16777736 (info) (init) Observed_drift loaded from kernel: -18411
2015-04-22 04:12:34.649248 ptpd2[1938].eno16777736 (notice) (lstn_init) Now in state: PTP_LISTENING
2015-04-22 04:13:34.567002 ptpd2[1938].eno16777736 (warning) (lstn_init) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-22 04:13:34.659894 ptpd2[1938].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-22 04:14:34.715744 ptpd2[1938].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-22 04:14:34.795028 ptpd2[1938].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-22 04:15:34.909602 ptpd2[1938].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-22 04:15:34.979416 ptpd2[1938].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
Is it the right way? What should I be looking at?
How to determine whether slave machine is synching to master?
Last edit: Ravish 2015-04-22
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I used the 2.3 package used the following commands to build it :-
./configure --enable-statistics --enable-ntpdc
make install
Following was the configuration in client-e2e-socket.conf file :
; ========================================
; PTPDv2 version 2.3.0-svn default configuration
; ========================================
; NOTE: the following settings are affected by ptpengine:preset selection:
; ptpengine:slave_only
; clock:no_adjust
; ptpengine:clock_class - allowed range and default value
; To see all preset settings, run ptpd2 -H (--long-help)
; Network interface to use (required)
ptpengine:interface = eno16777736
; PTP engine preset:
; 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)
;
; Options: none slaveonly masteronly masterslave
ptpengine:preset = slaveonly
; IP transmission mode (requires IP transport) - hybrid mode uses
; multicast for sync and announce, and unicast for delay request /
; response
; Options: multicast unicast hybrid
ptpengine:ip_mode = unicast
; Transport type for PTP packets
; Options: ipv4 ethernet
ptpengine:transport = ipv4
; Use libpcap for sending and receiving traffic (automatically enabled
; in Ethernet mode)
ptpengine:use_libpcap = N
; Delay detection mode used - use DELAY_DISABLED for syntonisation
; only (no synchronisation)
; Options: E2E P2P DELAY_DISABLED
ptpengine:delay_mechanism = E2E
; PTP domain number
ptpengine:domain = 0
; Slave only mode (if set, overrides preset setting and sets clock class to 255)
ptpengine:slave_only = Y
; Specify latency correction for incoming packets
ptpengine:inbound_latency = 0
; Specify latency correction for outgoing packets
ptpengine:outbound_latency = 0
; Compatibility option: In slave state, always respect UTC offset
; announced by best master, even if the the
; currrentUtcOffsetValid flag is announced FALSE
ptpengine:always_respect_utc_offset = N
; PTP announce message interval in master state (expressed as log 2
; i.e. -1=0.5s, 0=1s, 1=2s etc.)
ptpengine:log_announce_interval = 1
; PTP announce receipt timeout announced in master state
ptpengine:announce_timeout = 6
; 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.
ptpengine:announce_timeout_grace_period = 0
; PTP sync message interval in master state (expressed as log 2
; i.e. -1=0.5s, 0=1s, 1=2s etc.)
ptpengine:log_sync_interval = 0
; Initial delay request message interval for slave mode, before first
; delay response is received (expressed as log 2 i.e. -1=0.5s, 0=1s,
; 1=2s etc.)
ptpengine:log_delayreq_interval_initial = 0
; Minimum delay request message interval in master state, in slave
; mode overrides the master interval, required in hybrid mode
; (expressed as log 2 i.e. -1=0.5s, 0=1s, 1=2s etc.)
ptpengine:log_delayreq_interval = 0
; Minimum peer delay request message interval in master state.
; (expressed as log 2 i.e. -1=0.5s, 0=1s, 1=2s etc.)
ptpengine:log_peer_delayreq_interval = 1
; Maximum number of foreign masters (foreign master record size
; allocated at startup)
ptpengine:foreignrecord_capacity = 5
; Specify Allan variance announced in master state
ptpengine:ptp_allan_variance = 28768
; Clock accuracy range announced in master state
; Options: ACC_25NS ACC_100NS ACC_250NS ACC_1US ACC_2.5US ACC_10US
; ACC_25US ACC_100US ACC_250US ACC_1MS ACC_2.5MS ACC_10MS ACC_25MS
; ACC_100MS ACC_250MS ACC_1S ACC_10S ACC_10SPLUS ACC_UNKNOWN
ptpengine:ptp_clock_accuracy = ACC_UNKNOWN
; underlying time source UTC offset announced in master state
ptpengine:utc_offset = 0
; underlying time source UTC offset validity announced in master state
ptpengine:utc_offset_valid = N
; underlying time source time traceability announced in master state
ptpengine:time_traceable = N
; underlying time source frequency traceability announced in master state
ptpengine:frequency_traceable = N
; Time scale announced in master state (with ARB timescale, UTC
; properties are ignored by slaves), when clock class 13 (application
; specific), this value is ignored and ARB is used.
; Options: PTP ARB
ptpengine:ptp_timescale = ARB
; Time source announced in master state
; Options: ATOMIC_CLOCK GPS TERRESTRIAL_RADIO PTP NTP HAND_SET OTHER
; INTERNAL_OSCILLATOR
ptpengine:ptp_timesource = INTERNAL_OSCILLATOR
; Clock class - announced in master state. Always 255 for slave-only mode.
; 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.
ptpengine:clock_class = 255
; Priority 1 value announced in master state and used for Best Master
; Clock selection
ptpengine:priority1 = 128
; Priority 2 value announced in master state and used for Best Master
; Clock selection
ptpengine:priority2 = 128
; Specify unicast destination for unicast master mode (in unicast
; slave mode overrides delay request destination)
ptpengine:unicast_address =
; Send explicit IGMP joins between servo resets
ptpengine:igmp_refresh = Y
; Multicast time to live for multicast PTP packets (ignored and set to
; 1 for peer to peer messages)
ptpengine:multicast_ttl = 64
; DiffServ CodepPoint for packet prioritisation (decimal). When set to
; zero, this option is not used.
; 46 = Expedited Forwarding (0x2e)
ptpengine:ip_dscp = 0
; Enable outlier filter for the Delay Response component in slave state
ptpengine:delay_outlier_filter_enable = N
; Delay Response outlier filter action. If set to 'filter', outliers
; are replaced with moving average
; Options: discard filter
ptpengine:delay_outlier_filter_action = filter
; Number of samples in the Delay Response outlier filter buffer
ptpengine:delay_outlier_filter_capacity = 20
; Delay Response outlier filter threshold: multiplier for the Peirce's
; maximum standard deviation. When set below 1.0, filter is tighter,
; when set above 1.0, filter is looser than standard Peirce's test.
ptpengine:delay_outlier_filter_threshold = 1.000000
; Delay Response outlier weight: if an outlier is detected, this value
; determines the amount of its deviation from mean that is used to
; build the standard deviation statistics and influence further
; outlier detection.
; When set to 1.0, the outlier is used as is.
;
ptpengine:delay_outlier_weight = 1.000000
; Enable outlier filter for the Sync component in slave state
ptpengine:sync_outlier_filter_enable = N
; Sync outlier filter action. If set to 'filter', outliers are
; replaced with moving average
; Options: discard filter
ptpengine:sync_outlier_filter_action = filter
; Number of samples in the Sync outlier filter buffer
ptpengine:sync_outlier_filter_capacity = 20
; Sync outlier filter threshold: multiplier for the Peirce's maximum
; standard deviation. When set below 1.0, filter is tighter, when set
; above 1.0, filter is looser than standard Peirce's test.
ptpengine:sync_outlier_filter_threshold = 1.000000
; Sync outlier weight: if an outlier is detected, this value
; determines the amount of its deviation from mean that is used to
; build the standard deviation statistics and influence further
; outlier detection. When set to 1.0, the outlier is used as is.
ptpengine:sync_outlier_weight = 1.000000
; Delay between moving to slave state and enabling clock updates
; expressed as number of statistics update periods (see
; global:statistics_update_interval). This allows one-way delay to
; stabilise before starting clock updates. Activated when going into
; slave state and during GM failover in slave state.
; 0 - not used.
ptpengine:calibration_delay = 0
; Enable panic mode: when offset from master is above 1 second, stop
; updating the clock for a period of time and then step the clock if
; offset remains above 1 second.
ptpengine:panic_mode = N
; Duration of the panic mode period (no clock updates) when offset
; above 1 second detected
ptpengine:panic_mode_duration = 2
; Use JobID (PID) for UUID
ptpengine:pid_as_clock_idendity = N
; Fail over to NTP when PTP time sync not available - requires
; ntpengine:enabled but does not require the rest of NTP configuration
; - will warn instead of failing over if cannot control ntpd.
ptpengine:ntp_failover = N
; NTP failover timeout in seconds: time between PTP slave going into
; LISTENING state, and failing over to NTP. 0 = fail over immediately.
ptpengine:ntp_failover_timeout = 60
; Prefer NTP time synchronisation when not controlling the clock (all
; states, including slave when clock:no_adjust set)
ptpengine:prefer_ntp = N
; When entering panic mode, fail over to NTP (after the NTP failover
; timeout period) - requires ntpengine:enabled but does not require
; the rest of NTP configuration - will warn instead of failing over if
; it cannot control ntpd.
ptpengine:panic_mode_ntp = N
; Do not adjust the clock
clock:no_adjust = N
; Do not reset the clock - only slew
clock:no_reset = N
; Observed drift handling method between servo restarts:
; reset: set to zero (not recommended)
; preserve: use kernel value,
; file: load and save to drift file on startup/shutdown, use kernel
; value inbetween.
; To specify drift file, use the clock:drift_file setting.
; Options: reset preserve file
clock:drift_handling = preserve
; 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.
clock:max_offset_ppm = 500
; Clock servo PI controller proportional component gain (kP)
servo:kp = 0.1
; Clock servo PI controller integral component gain (kI)
servo:ki = 0.001
; Maximum accepted delayMS value in nanoseconds (Sync).
; 0 = not checked.
servo:max_delay = 0
; Enable clock synchronisation servo stability detection
; (based on standard deviation of the observed drift value)
; - drift will be saved to drift file / cached when considered stable,
; also clock stability status will be logged
;
servo:stability_detection = N
; Specify the observed drift standard deviation threshold in parts per billion
; (ppb) - if stanard deviation is within the threshold, servo is considered
; stable.
servo:stability_threshold = 5.000000
; Specify for how many statistics update intervals the observed drift standard
; deviation has to stay within threshold to be considered stable
;
servo:stability_period = 3
; Specify after how many minutes without stabilisation servo is considered
; unstable. Assists with logging servo stability information and
; allows to preserve observed drift if servo cannot stabilise.
;
servo:stability_timeout = 10
; Do not update one-way delay if slave to master delay (from Delay Response)
; is greater than this value (nanoseconds). 0 = not used.
servo:max_delay = 0
; Do not reset the clock if offset from master is greater
; than this value (nanoseconds). 0 = not used.
servo:max_offset = 0
; Send log messages to syslog. Disabling this
; sends all messages to stdout (or speficied log file)
global:use_syslog = N
; Lock file location
global:lock_file =
; Use mode specific and interface specific lock files (overrides
; global:lock_file)
global:auto_lockfile = N
; Lock file directory: used with automatic mode-specific lock files,
; also used when no lock file is specified. When lock file
; is specified, it's expected to be an absolute path.
global:lock_directory = /var/run
; Skip lock file checking and locking
global:ignore_lock = N
; File used to record data about sync packets. Setting this enables recording.
global:quality_file =
; Maximum sync packet record file size (in kB) - file will be
; truncated if size exceeds the limit.
; 0 - no limit.
global:quality_file_max_size = 0
; Enable log rotation of the sync packet record file up to n files.
; 0 - do not rotate.
global:quality_file_max_files = 0
; Truncate the sync packet record file every time it is (re) opened -
; on startup and SIGHUP
global:quality_file_truncate = N
; File used to log ptpd2 status information
global:status_file = /var/run/ptpd2.status.log
; Enable / disable writing status information to file
global:log_status = Y
; Status file update interval in seconds
;
global:status_update_interval = 1
; Specify log file path (event log). Setting this enables logging to file.
global:log_file = /var/run/ptpd2.event.log
; Maximum log file size (in kB) - log file will be truncated if size
; exceeds the limit.
; 0 - no limit.
global:log_file_max_size = 0
; Enable log rotation of the sync packet record file up to n files.
; 0 - do not rotate
global:log_file_max_files = 0
; Truncate the log file every time it is (re) opened - on startup and SIGHUP
global:log_file_truncate = N
; Specify log level (only messages of the specified priority or higer
; will be logged).
; The minimal level is LOG_ERR. LOG_ALL enables debug output if compiled with
; RUNTIME_DEBUG
; Options: LOG_ERR LOG_WARNING LOG_NOTICE LOG_INFO LOG_ALL
global:log_level = LOG_ALL
; Specify statistics log file path. Setting this enables logging of
; statistics but can be overriden with global:log_statistics
global:statistics_file = /var/run/ptpd2.stats.log
; Log timing statistics every n seconds for Sync and Delay Response
; messages (0 - log all)
global:statistics_log_interval = 0
; Maximum statistics log file size (in kB) - log file will be
; truncated if size exceeds the limit.
; 0 - no limit.
global:statistics_file_max_size = 0
; Enable log rotation of the statistics file up to n files. 0 - do not rotate
;
global:statistics_file_max_files = 0
; Truncate the statistics file every time it is (re) opened - on
; startup and SIGHUP
global:statistics_file_truncate = N
; Dump the contents of every PTP packet
global:dump_packets = N
; Run in foreground with statistics and all messages logged to stdout.
; Overrides log file and statistics file settings and disables syslog.
;
global:verbose_foreground = N
; Run in foreground
global:foreground = N
; Log timing statistics for every PTP packet received
global:log_statistics = Y
; Linux only: bind ptpd2 process to a selected CPU core number.
; 0 = first CPU core, etc. -1 = do not bind to a single core.
global:cpuaffinity_cpucore = -1
; Enable control over local NTPd daemon
ntpengine:control_enabled = N
; NTP control check interval in seconds
;
ntpengine:check_interval = 15
; NTP key number - must be configured as a trusted control key in ntp.conf,
; and must be non-zero for the ntpengine:control_enabled setting to take effect.
;
ntpengine:key_id = 0
; NTP key (plain text, max. 20 characters) - must match the key
; configured in ntpd's keys file, and must be non-zero for the
; ntpengine:control_enabled setting to take effect.
ntpengine:key =
; ========= newline required in the end ==========
Thereafter, i started the ptpd2 service ( service start ptpd2) and on my master VM I used the following command as root :
[root@localhost ptpd-2.3.1-rc3]# ethtool -T eth0
Time stamping parameters for eth0:
Capabilities:
software-receive (SOF_TIMESTAMPING_RX_SOFTWARE)
software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
PTP Hardware Clock: none
Hardware Transmit Timestamp Modes: none
Hardware Receive Filter Modes: none [root@localhost ptpd-2.3.1-rc3]# ptpd2 -C -M -i eth0 -f /root/ptpdlog.txt
2015-04-25 11:56:02.156150 ptpd2[6846].startup (info) () Configuration OK
2015-04-25 11:56:02.158470 ptpd2[6846].startup (info) () Successfully acquired lock on /var/run/ptpd2.lock
2015-04-25 11:56:02.158992 ptpd2[6846].startup (notice) (___) PTPDv2 started successfully on eth0 using "masteronly" preset (PID 6846)
.startup (info) () Configuration OK
2015-04-25 11:56:02.158470 ptpd2[6846].startup (info) () Successfully acquired lock on /var/run/ptpd2.lock
2015-04-25 11:56:02.158992 ptpd2[6846].startup (notice) (___) PTPDv2 started successfully on eth0 using "masteronly" preset (PID 6846)
Following is log file entry of Master VM:
2015-04-25 11:54:00.900388 ptpd2[2611].startup (notice) () PTPDv2 started successfully on eth0 using "masteronly" preset (PID 2611)
2015-04-25 11:54:00.902340 ptpd2[2611].eth0 (notice) (lstninit) Now in state: PTP_LISTENING
2015-04-25 11:54:12.919837 ptpd2[2611].eth0 (notice) (mst) Now in state: PTP_MASTER, Best master: 000c29fffe10af9f(unknown)/01 (self)
2015-04-25 11:54:58.064857 ptpd2[2611].eth0 (notice) (_) Shutdown on close signal
2015-04-25 11:56:02.158553 ptpd2[6846].startup (notice) (___) PTPDv2 started successfully on eth0 using "masteronly" preset (PID 6846)
2015-04-25 11:56:02.246421 ptpd2[6846].eth0 (notice) (lstn_init) Now in state: PTP_LISTENING
2015-04-25 11:56:14.174618 ptpd2[6846].eth0 (notice) (mst) Now in state: PTP_MASTER, Best master: 000c29fffe10af9f(unknown)/01 (self)
Thereafter, i started the ptpd2 service on my slave VM and I used the following command as root :
[root@localhost Desktop]# ptpd2 -C -s -i eno16777736 -u 192.168.249.140 -S -L -C -f /root/ptplog.txt -L
Warning: It is recommended to set the delay request interval (ptpengine:log_delayreq_interval) in unicast mode
2015-04-25 06:27:26.224502 ptpd2[3524].startup (info) () Configuration OK
2015-04-25 06:27:26.237711 ptpd2[3524].startup (notice) () PTPDv2 started successfully on eno16777736 using "slaveonly" preset (PID 3524)
The log entry for slave is as follows :
2015-04-25 06:27:26.225890 ptpd2[3524].startup (notice) (___) PTPDv2 started successfully on eno16777736 using "slaveonly" preset (PID 3524)
2015-04-25 06:27:26.248765 ptpd2[3524].eno16777736 (info) (init) Observed_drift loaded from kernel: -37618
2015-04-25 06:27:26.248795 ptpd2[3524].eno16777736 (notice) (lstn_init) Now in state: PTP_LISTENING
2015-04-25 06:28:26.249794 ptpd2[3524].eno16777736 (warning) (lstn_init) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:28:26.255378 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:29:26.255875 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:29:26.256731 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:30:26.256921 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:30:26.259837 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:31:26.260572 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:31:26.265895 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:32:26.266780 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:32:26.270509 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:33:26.270832 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:33:26.271683 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:34:26.272142 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:34:26.284229 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:35:26.347439 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:35:26.383954 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:36:26.384640 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:36:26.390289 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:37:26.390939 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:37:26.396745 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:38:26.397237 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:38:26.402663 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
There is no stats or status file in /var/run folder.
Where am I going wrong?
I am not able to debug the process, neither am i able to see any synchronization happening between my Virtual Machines. I have defined e1000 NIC to be used on VMs. Using VMworkstation 11. Please guide me to the correct path. I am able to see the Master sending Announce, Synch messages on Wireshark and slave sending delay messages too. Also i can see Master responding on wireshark.
OS-CentOS 7.
Also, why is it showing Offset from Kernel??
Regards
Ravish
Last edit: Ravish 2015-04-25
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I made 2 VMs on VMWorkstation and isstalled CentOS 7 on both.
Then i installed PTPd2.3 on both and run following commands :-
ptpd2 -C -M -i eno16777736 -u 192.168.249.145 -S -L (On master - .145 being my slave machine)
ptpd2 -C -s -i eno16777736 -u 192.168.249.142 -S -L (On slave - .142 being my slave machine)
Master displays following messages :-
[root@localhost src]# ptpd2 -C -M -i eno16777736 -u 192.168.249.145 -S -L
2015-04-22 04:57:52.169901 ptpd2[13636].startup (info) () Configuration OK
2015-04-22 04:57:52.172203 ptpd2[13636].startup (info) () Successfully acquired lock on /var/run/ptpd2.lock
2015-04-22 04:57:52.172310 ptpd2[13636].startup (notice) (___) PTPDv2 started successfully on eno16777736 using "masteronly" preset (PID 13636)
2015-04-22 04:57:52.208329 ptpd2[13636].eno16777736 (notice) (lstn_init) Now in state: PTP_LISTENING
2015-04-22 04:57:53.585482 ptpd2[13636].eno16777736 (notice) (mst) Now in state: PTP_MASTER, Best master: 000c29fffe4575a2(unknown)/01 (self)
Slave is able to detect my .145 machine as master clock and displays following :-
[root@localhost Desktop]# ptpd2 -C -s -i eno16777736 -u 192.168.249.142 -S -h -L -a
Warning: It is recommended to set the delay request interval (ptpengine:log_delayreq_interval) in unicast mode
2015-04-22 05:36:11.169388 ptpd2[5779].startup (info) () Configuration OK
2015-04-22 05:36:11.172710 ptpd2[5779].startup (notice) () PTPDv2 started successfully on eno16777736 using "slaveonly" preset (PID 5779)
2015-04-22 05:36:11.188558 ptpd2[5779].eno16777736 (info) (init) Observed_drift loaded from kernel: -18411
2015-04-22 05:36:11.188598 ptpd2[5779].eno16777736 (notice) (lstn_init) Now in state: PTP_LISTENING
2015-04-22 05:36:11.748632 ptpd2[5779].eno16777736 (info) (lstn_init) New best master selected: 000c29fffe4575a2(unknown)/01
2015-04-22 05:36:11.748815 ptpd2[5779].eno16777736 (notice) (slv) Now in state: PTP_SLAVE, Best master: 000c29fffe4575a2(unknown)/01
2015-04-22 05:36:12.747693 ptpd2[5779].eno16777736 (notice) (slv) Received first Sync from Master
2015-04-22 05:36:12.747811 ptpd2[5779].eno16777736 (notice) (slv) Servo: Going to slew the clock with the maximum frequency adjustment
This is the entry on ptpd.log file of slave machine:-
2015-04-22 04:12:34.542680 ptpd2[1938].startup (info) () Info: Now running as a daemon
2015-04-22 04:12:34.561277 ptpd2[1938].startup (info) () Successfully acquired lock on /var/run/ptpd2.lock
2015-04-22 04:12:34.561307 ptpd2[1938].startup (notice) (___) PTPDv2 started successfully on eno16777736 using "slaveonly" preset (PID 1938)
2015-04-22 04:12:34.565580 ptpd2[1938].eno16777736 (info) (init) Observed_drift loaded from kernel: -18411
2015-04-22 04:12:34.649248 ptpd2[1938].eno16777736 (notice) (lstn_init) Now in state: PTP_LISTENING
2015-04-22 04:13:34.567002 ptpd2[1938].eno16777736 (warning) (lstn_init) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-22 04:13:34.659894 ptpd2[1938].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-22 04:14:34.715744 ptpd2[1938].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-22 04:14:34.795028 ptpd2[1938].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-22 04:15:34.909602 ptpd2[1938].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-22 04:15:34.979416 ptpd2[1938].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
Is it the right way? What should I be looking at?
How to determine whether slave machine is synching to master?
Last edit: Ravish 2015-04-22
Turn on the logging and look into the log files. The full conf file lists all the options. Search for "status"
Thanx George for a prompt reply,
I used the 2.3 package used the following commands to build it :-
./configure --enable-statistics --enable-ntpdc
make install
Following was the configuration in client-e2e-socket.conf file :
; ========================================
; PTPDv2 version 2.3.0-svn default configuration
; ========================================
; NOTE: the following settings are affected by ptpengine:preset selection:
; ptpengine:slave_only
; clock:no_adjust
; ptpengine:clock_class - allowed range and default value
; To see all preset settings, run ptpd2 -H (--long-help)
; Network interface to use (required)
ptpengine:interface = eno16777736
; PTP engine preset:
; 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)
;
; Options: none slaveonly masteronly masterslave
ptpengine:preset = slaveonly
; IP transmission mode (requires IP transport) - hybrid mode uses
; multicast for sync and announce, and unicast for delay request /
; response
; Options: multicast unicast hybrid
ptpengine:ip_mode = unicast
; Transport type for PTP packets
; Options: ipv4 ethernet
ptpengine:transport = ipv4
; Use libpcap for sending and receiving traffic (automatically enabled
; in Ethernet mode)
ptpengine:use_libpcap = N
; Delay detection mode used - use DELAY_DISABLED for syntonisation
; only (no synchronisation)
; Options: E2E P2P DELAY_DISABLED
ptpengine:delay_mechanism = E2E
; PTP domain number
ptpengine:domain = 0
; Slave only mode (if set, overrides preset setting and sets clock class to 255)
ptpengine:slave_only = Y
; Specify latency correction for incoming packets
ptpengine:inbound_latency = 0
; Specify latency correction for outgoing packets
ptpengine:outbound_latency = 0
; Compatibility option: In slave state, always respect UTC offset
; announced by best master, even if the the
; currrentUtcOffsetValid flag is announced FALSE
ptpengine:always_respect_utc_offset = N
; PTP announce message interval in master state (expressed as log 2
; i.e. -1=0.5s, 0=1s, 1=2s etc.)
ptpengine:log_announce_interval = 1
; PTP announce receipt timeout announced in master state
ptpengine:announce_timeout = 6
; 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.
ptpengine:announce_timeout_grace_period = 0
; PTP sync message interval in master state (expressed as log 2
; i.e. -1=0.5s, 0=1s, 1=2s etc.)
ptpengine:log_sync_interval = 0
; Initial delay request message interval for slave mode, before first
; delay response is received (expressed as log 2 i.e. -1=0.5s, 0=1s,
; 1=2s etc.)
ptpengine:log_delayreq_interval_initial = 0
; Minimum delay request message interval in master state, in slave
; mode overrides the master interval, required in hybrid mode
; (expressed as log 2 i.e. -1=0.5s, 0=1s, 1=2s etc.)
ptpengine:log_delayreq_interval = 0
; Minimum peer delay request message interval in master state.
; (expressed as log 2 i.e. -1=0.5s, 0=1s, 1=2s etc.)
ptpengine:log_peer_delayreq_interval = 1
; Maximum number of foreign masters (foreign master record size
; allocated at startup)
ptpengine:foreignrecord_capacity = 5
; Specify Allan variance announced in master state
ptpengine:ptp_allan_variance = 28768
; Clock accuracy range announced in master state
; Options: ACC_25NS ACC_100NS ACC_250NS ACC_1US ACC_2.5US ACC_10US
; ACC_25US ACC_100US ACC_250US ACC_1MS ACC_2.5MS ACC_10MS ACC_25MS
; ACC_100MS ACC_250MS ACC_1S ACC_10S ACC_10SPLUS ACC_UNKNOWN
ptpengine:ptp_clock_accuracy = ACC_UNKNOWN
; underlying time source UTC offset announced in master state
ptpengine:utc_offset = 0
; underlying time source UTC offset validity announced in master state
ptpengine:utc_offset_valid = N
; underlying time source time traceability announced in master state
ptpengine:time_traceable = N
; underlying time source frequency traceability announced in master state
ptpengine:frequency_traceable = N
; Time scale announced in master state (with ARB timescale, UTC
; properties are ignored by slaves), when clock class 13 (application
; specific), this value is ignored and ARB is used.
; Options: PTP ARB
ptpengine:ptp_timescale = ARB
; Time source announced in master state
; Options: ATOMIC_CLOCK GPS TERRESTRIAL_RADIO PTP NTP HAND_SET OTHER
; INTERNAL_OSCILLATOR
ptpengine:ptp_timesource = INTERNAL_OSCILLATOR
; Clock class - announced in master state. Always 255 for slave-only mode.
; 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.
ptpengine:clock_class = 255
; Priority 1 value announced in master state and used for Best Master
; Clock selection
ptpengine:priority1 = 128
; Priority 2 value announced in master state and used for Best Master
; Clock selection
ptpengine:priority2 = 128
; Specify unicast destination for unicast master mode (in unicast
; slave mode overrides delay request destination)
ptpengine:unicast_address =
; Send explicit IGMP joins between servo resets
ptpengine:igmp_refresh = Y
; Multicast time to live for multicast PTP packets (ignored and set to
; 1 for peer to peer messages)
ptpengine:multicast_ttl = 64
; DiffServ CodepPoint for packet prioritisation (decimal). When set to
; zero, this option is not used.
; 46 = Expedited Forwarding (0x2e)
ptpengine:ip_dscp = 0
; Enable outlier filter for the Delay Response component in slave state
ptpengine:delay_outlier_filter_enable = N
; Delay Response outlier filter action. If set to 'filter', outliers
; are replaced with moving average
; Options: discard filter
ptpengine:delay_outlier_filter_action = filter
; Number of samples in the Delay Response outlier filter buffer
ptpengine:delay_outlier_filter_capacity = 20
; Delay Response outlier filter threshold: multiplier for the Peirce's
; maximum standard deviation. When set below 1.0, filter is tighter,
; when set above 1.0, filter is looser than standard Peirce's test.
ptpengine:delay_outlier_filter_threshold = 1.000000
; Delay Response outlier weight: if an outlier is detected, this value
; determines the amount of its deviation from mean that is used to
; build the standard deviation statistics and influence further
; outlier detection.
; When set to 1.0, the outlier is used as is.
;
ptpengine:delay_outlier_weight = 1.000000
; Enable outlier filter for the Sync component in slave state
ptpengine:sync_outlier_filter_enable = N
; Sync outlier filter action. If set to 'filter', outliers are
; replaced with moving average
; Options: discard filter
ptpengine:sync_outlier_filter_action = filter
; Number of samples in the Sync outlier filter buffer
ptpengine:sync_outlier_filter_capacity = 20
; Sync outlier filter threshold: multiplier for the Peirce's maximum
; standard deviation. When set below 1.0, filter is tighter, when set
; above 1.0, filter is looser than standard Peirce's test.
ptpengine:sync_outlier_filter_threshold = 1.000000
; Sync outlier weight: if an outlier is detected, this value
; determines the amount of its deviation from mean that is used to
; build the standard deviation statistics and influence further
; outlier detection. When set to 1.0, the outlier is used as is.
ptpengine:sync_outlier_weight = 1.000000
; Delay between moving to slave state and enabling clock updates
; expressed as number of statistics update periods (see
; global:statistics_update_interval). This allows one-way delay to
; stabilise before starting clock updates. Activated when going into
; slave state and during GM failover in slave state.
; 0 - not used.
ptpengine:calibration_delay = 0
; Enable panic mode: when offset from master is above 1 second, stop
; updating the clock for a period of time and then step the clock if
; offset remains above 1 second.
ptpengine:panic_mode = N
; Duration of the panic mode period (no clock updates) when offset
; above 1 second detected
ptpengine:panic_mode_duration = 2
; Use JobID (PID) for UUID
ptpengine:pid_as_clock_idendity = N
; Fail over to NTP when PTP time sync not available - requires
; ntpengine:enabled but does not require the rest of NTP configuration
; - will warn instead of failing over if cannot control ntpd.
ptpengine:ntp_failover = N
; NTP failover timeout in seconds: time between PTP slave going into
; LISTENING state, and failing over to NTP. 0 = fail over immediately.
ptpengine:ntp_failover_timeout = 60
; Prefer NTP time synchronisation when not controlling the clock (all
; states, including slave when clock:no_adjust set)
ptpengine:prefer_ntp = N
; When entering panic mode, fail over to NTP (after the NTP failover
; timeout period) - requires ntpengine:enabled but does not require
; the rest of NTP configuration - will warn instead of failing over if
; it cannot control ntpd.
ptpengine:panic_mode_ntp = N
; Do not adjust the clock
clock:no_adjust = N
; Do not reset the clock - only slew
clock:no_reset = N
; Observed drift handling method between servo restarts:
; reset: set to zero (not recommended)
; preserve: use kernel value,
; file: load and save to drift file on startup/shutdown, use kernel
; value inbetween.
; To specify drift file, use the clock:drift_file setting.
; Options: reset preserve file
clock:drift_handling = preserve
; Specify drift file
clock:drift_file = /etc/ptpd2_kernelclock.drift
; 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.
clock:max_offset_ppm = 500
; One-way delay filter stiffness
servo:delayfilter_stiffness = 6
; Clock servo PI controller proportional component gain (kP)
servo:kp = 0.1
; Clock servo PI controller integral component gain (kI)
servo:ki = 0.001
; Maximum accepted delayMS value in nanoseconds (Sync).
; 0 = not checked.
servo:max_delay = 0
; Enable clock synchronisation servo stability detection
; (based on standard deviation of the observed drift value)
; - drift will be saved to drift file / cached when considered stable,
; also clock stability status will be logged
;
servo:stability_detection = N
; Specify the observed drift standard deviation threshold in parts per billion
; (ppb) - if stanard deviation is within the threshold, servo is considered
; stable.
servo:stability_threshold = 5.000000
; Specify for how many statistics update intervals the observed drift standard
; deviation has to stay within threshold to be considered stable
;
servo:stability_period = 3
; Specify after how many minutes without stabilisation servo is considered
; unstable. Assists with logging servo stability information and
; allows to preserve observed drift if servo cannot stabilise.
;
servo:stability_timeout = 10
; Do not update one-way delay if slave to master delay (from Delay Response)
; is greater than this value (nanoseconds). 0 = not used.
servo:max_delay = 0
; Do not reset the clock if offset from master is greater
; than this value (nanoseconds). 0 = not used.
servo:max_offset = 0
; Send log messages to syslog. Disabling this
; sends all messages to stdout (or speficied log file)
global:use_syslog = N
; Lock file location
global:lock_file =
; Use mode specific and interface specific lock files (overrides
; global:lock_file)
global:auto_lockfile = N
; Lock file directory: used with automatic mode-specific lock files,
; also used when no lock file is specified. When lock file
; is specified, it's expected to be an absolute path.
global:lock_directory = /var/run
; Skip lock file checking and locking
global:ignore_lock = N
; File used to record data about sync packets. Setting this enables recording.
global:quality_file =
; Maximum sync packet record file size (in kB) - file will be
; truncated if size exceeds the limit.
; 0 - no limit.
global:quality_file_max_size = 0
; Enable log rotation of the sync packet record file up to n files.
; 0 - do not rotate.
global:quality_file_max_files = 0
; Truncate the sync packet record file every time it is (re) opened -
; on startup and SIGHUP
global:quality_file_truncate = N
; File used to log ptpd2 status information
global:status_file = /var/run/ptpd2.status.log
; Enable / disable writing status information to file
global:log_status = Y
; Status file update interval in seconds
;
global:status_update_interval = 1
; Specify log file path (event log). Setting this enables logging to file.
global:log_file = /var/run/ptpd2.event.log
; Maximum log file size (in kB) - log file will be truncated if size
; exceeds the limit.
; 0 - no limit.
global:log_file_max_size = 0
; Enable log rotation of the sync packet record file up to n files.
; 0 - do not rotate
global:log_file_max_files = 0
; Truncate the log file every time it is (re) opened - on startup and SIGHUP
global:log_file_truncate = N
; Specify log level (only messages of the specified priority or higer
; will be logged).
; The minimal level is LOG_ERR. LOG_ALL enables debug output if compiled with
; RUNTIME_DEBUG
; Options: LOG_ERR LOG_WARNING LOG_NOTICE LOG_INFO LOG_ALL
global:log_level = LOG_ALL
; Specify statistics log file path. Setting this enables logging of
; statistics but can be overriden with global:log_statistics
global:statistics_file = /var/run/ptpd2.stats.log
; Log timing statistics every n seconds for Sync and Delay Response
; messages (0 - log all)
global:statistics_log_interval = 0
; Maximum statistics log file size (in kB) - log file will be
; truncated if size exceeds the limit.
; 0 - no limit.
global:statistics_file_max_size = 0
; Enable log rotation of the statistics file up to n files. 0 - do not rotate
;
global:statistics_file_max_files = 0
; Truncate the statistics file every time it is (re) opened - on
; startup and SIGHUP
global:statistics_file_truncate = N
; Dump the contents of every PTP packet
global:dump_packets = N
; Run in foreground with statistics and all messages logged to stdout.
; Overrides log file and statistics file settings and disables syslog.
;
global:verbose_foreground = N
; Run in foreground
global:foreground = N
; Log timing statistics for every PTP packet received
global:log_statistics = Y
; Linux only: bind ptpd2 process to a selected CPU core number.
; 0 = first CPU core, etc. -1 = do not bind to a single core.
global:cpuaffinity_cpucore = -1
; Clock synchronisation statistics update interval in seconds
;
global:statistics_update_interval = 5
; Enable NTPd integration
ntpengine:enabled = N
; Enable control over local NTPd daemon
ntpengine:control_enabled = N
; NTP control check interval in seconds
;
ntpengine:check_interval = 15
; NTP key number - must be configured as a trusted control key in ntp.conf,
; and must be non-zero for the ntpengine:control_enabled setting to take effect.
;
ntpengine:key_id = 0
; NTP key (plain text, max. 20 characters) - must match the key
; configured in ntpd's keys file, and must be non-zero for the
; ntpengine:control_enabled setting to take effect.
ntpengine:key =
; ========= newline required in the end ==========
Thereafter, i started the ptpd2 service ( service start ptpd2) and on my master VM I used the following command as root :
[root@localhost ptpd-2.3.1-rc3]# ethtool -T eth0
Time stamping parameters for eth0:
Capabilities:
software-receive (SOF_TIMESTAMPING_RX_SOFTWARE)
software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
PTP Hardware Clock: none
Hardware Transmit Timestamp Modes: none
Hardware Receive Filter Modes: none
[root@localhost ptpd-2.3.1-rc3]# ptpd2 -C -M -i eth0 -f /root/ptpdlog.txt
2015-04-25 11:56:02.156150 ptpd2[6846].startup (info) () Configuration OK
2015-04-25 11:56:02.158470 ptpd2[6846].startup (info) () Successfully acquired lock on /var/run/ptpd2.lock
2015-04-25 11:56:02.158992 ptpd2[6846].startup (notice) (___) PTPDv2 started successfully on eth0 using "masteronly" preset (PID 6846)
.startup (info) () Configuration OK
2015-04-25 11:56:02.158470 ptpd2[6846].startup (info) () Successfully acquired lock on /var/run/ptpd2.lock
2015-04-25 11:56:02.158992 ptpd2[6846].startup (notice) (___) PTPDv2 started successfully on eth0 using "masteronly" preset (PID 6846)
Following is log file entry of Master VM:
2015-04-25 11:54:00.900388 ptpd2[2611].startup (notice) () PTPDv2 started successfully on eth0 using "masteronly" preset (PID 2611)
2015-04-25 11:54:00.902340 ptpd2[2611].eth0 (notice) (lstninit) Now in state: PTP_LISTENING
2015-04-25 11:54:12.919837 ptpd2[2611].eth0 (notice) (mst) Now in state: PTP_MASTER, Best master: 000c29fffe10af9f(unknown)/01 (self)
2015-04-25 11:54:58.064857 ptpd2[2611].eth0 (notice) (_) Shutdown on close signal
2015-04-25 11:56:02.158553 ptpd2[6846].startup (notice) (___) PTPDv2 started successfully on eth0 using "masteronly" preset (PID 6846)
2015-04-25 11:56:02.246421 ptpd2[6846].eth0 (notice) (lstn_init) Now in state: PTP_LISTENING
2015-04-25 11:56:14.174618 ptpd2[6846].eth0 (notice) (mst) Now in state: PTP_MASTER, Best master: 000c29fffe10af9f(unknown)/01 (self)
Thereafter, i started the ptpd2 service on my slave VM and I used the following command as root :
[root@localhost Desktop]# ptpd2 -C -s -i eno16777736 -u 192.168.249.140 -S -L -C -f /root/ptplog.txt -L
Warning: It is recommended to set the delay request interval (ptpengine:log_delayreq_interval) in unicast mode
2015-04-25 06:27:26.224502 ptpd2[3524].startup (info) () Configuration OK
2015-04-25 06:27:26.237711 ptpd2[3524].startup (notice) () PTPDv2 started successfully on eno16777736 using "slaveonly" preset (PID 3524)
The log entry for slave is as follows :
2015-04-25 06:27:26.225890 ptpd2[3524].startup (notice) (___) PTPDv2 started successfully on eno16777736 using "slaveonly" preset (PID 3524)
2015-04-25 06:27:26.248765 ptpd2[3524].eno16777736 (info) (init) Observed_drift loaded from kernel: -37618
2015-04-25 06:27:26.248795 ptpd2[3524].eno16777736 (notice) (lstn_init) Now in state: PTP_LISTENING
2015-04-25 06:28:26.249794 ptpd2[3524].eno16777736 (warning) (lstn_init) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:28:26.255378 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:29:26.255875 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:29:26.256731 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:30:26.256921 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:30:26.259837 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:31:26.260572 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:31:26.265895 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:32:26.266780 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:32:26.270509 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:33:26.270832 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:33:26.271683 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:34:26.272142 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:34:26.284229 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:35:26.347439 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:35:26.383954 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:36:26.384640 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:36:26.390289 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:37:26.390939 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:37:26.396745 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
2015-04-25 06:38:26.397237 ptpd2[3524].eno16777736 (warning) (lstn_reset) Still in LISTENING after 5 restarts - will do a full network reset
2015-04-25 06:38:26.402663 ptpd2[3524].eno16777736 (notice) (lstn_reset) Now in state: PTP_LISTENING
There is no stats or status file in /var/run folder.
Where am I going wrong?
I am not able to debug the process, neither am i able to see any synchronization happening between my Virtual Machines. I have defined e1000 NIC to be used on VMs. Using VMworkstation 11. Please guide me to the correct path. I am able to see the Master sending Announce, Synch messages on Wireshark and slave sending delay messages too. Also i can see Master responding on wireshark.
OS-CentOS 7.
Also, why is it showing Offset from Kernel??
Regards
Ravish
Last edit: Ravish 2015-04-25
Did you disable the firewall that's enabled in CentOS by default? What does "iptables -L" show you?
Thanx Wojciech,
I have the firewalls disabled on both the VMs and iptables -L shows POLICY ACCEPT for all variables.
Whats the next step? :(
Regards