I am currently trying to use ptp4l with a gPTP profile with 3 devices
connected to a switch.
Step 1) Used default ptp4l profile, all 3 devices worked and I was able to
fiddle with master selection and priority levels without any problems.
Step 2) Used gPTP profile, devices B and C worked as slaves and selected
the switch as master. Device A uses its local clock as master and seems
disconnected from device B and C.
Step 3) Used gPTP profile with device A connected directly to B or C. It
works without problems.
Step 4) I switched back to using the default ptp4l profile with the -P
(P2P) flag only. I am able to use any 2 devices together successfully but
as soon as I turn on the third device it fails.
Questions:
1) From step 2, why would A not use the switch as its master clock or react
to the other 2 devices?
2) From step 4, does the failure mean that you cannot use P2P with more
than 2 devices connected through a switch?
3) From step 4, I thought it could mean that the switch does not support
P2P but why would it work with 2 devices then?
4) Could device A be the problem?
Software and hardware details listed below as well as logs from Step 4 and
the gPTP profile used. Any help would be appreciated. Please let me know if
any other information is required.
### SOFRWARE ###
OS: UBUNTU 18.04.1 LTS
PTP4L: 1.92
### HARDWARE ###
Device A: NUC7i3BNH
ethtool -T eno1:
Time stamping parameters for eno1:
Capabilities:
hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE)
software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE)
hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE)
software-receive (SOF_TIMESTAMPING_RX_SOFTWARE)
software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE)
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:
off (HWTSTAMP_TX_OFF)
on (HWTSTAMP_TX_ON)
Hardware Receive Filter Modes:
none (HWTSTAMP_FILTER_NONE)
all (HWTSTAMP_FILTER_ALL)
ptpv1-l4-sync (HWTSTAMP_FILTER_PTP_V1_L4_SYNC)
ptpv1-l4-delay-req (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ)
ptpv2-l4-sync (HWTSTAMP_FILTER_PTP_V2_L4_SYNC)
ptpv2-l4-delay-req (HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ)
ptpv2-l2-sync (HWTSTAMP_FILTER_PTP_V2_L2_SYNC)
ptpv2-l2-delay-req (HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ)
ptpv2-event (HWTSTAMP_FILTER_PTP_V2_EVENT)
ptpv2-sync (HWTSTAMP_FILTER_PTP_V2_SYNC)
ptpv2-delay-req (HWTSTAMP_FILTER_PTP_V2_DELAY_REQ)
Devices B & C: Identical Supermicro X10SDV-4C-TLN4F with Intel I210 network
card
Time stamping parameters for ens2:
Capabilities:
hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE)
software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE)
hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE)
software-receive (SOF_TIMESTAMPING_RX_SOFTWARE)
software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE)
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:
off (HWTSTAMP_TX_OFF)
on (HWTSTAMP_TX_ON)
Hardware Receive Filter Modes:
none (HWTSTAMP_FILTER_NONE)
all (HWTSTAMP_FILTER_ALL)
### STEP 4 LOGS ###
# STARTING DEVICE A #
sudo ./ptp4l -i eno1 -m -P
ptp4l[15537.834]: selected /dev/ptp0 as PTP clock
ptp4l[15537.834]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[15537.834]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[15544.999]: port 1: LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_
EXPIRES
ptp4l[15544.999]: selected local clock 94c691.fffe.1d75f9 as best master
ptp4l[15544.999]: assuming the grand master role
# STARTING DEVICE B #
sudo ./ptp4l -i ens2 -m -P
ptp4l[15077.735]: selected /dev/ptp0 as PTP clock
ptp4l[15077.736]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[15077.736]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[15078.870]: port 1: new foreign master 94c691.fffe.1d75f9-1
ptp4l[15082.870]: selected best master clock 94c691.fffe.1d75f9
ptp4l[15082.870]: assuming the grand master role
ptp4l[15082.870]: port 1: LISTENING to GRAND_MASTER on RS_GRAND_MASTER
### DEVICE A DETECTS NEW MASTER ###
ptp4l[15595.007]: port 1: new foreign master 6805ca.fffe.4ab9c5-1
ptp4l[15599.007]: selected best master clock 6805ca.fffe.4ab9c5
ptp4l[15599.007]: port 1: MASTER to UNCALIBRATED on RS_SLAVE
ptp4l[15600.007]: master offset 5135529 s0 freq -8491 path delay
38425
ptp4l[15601.007]: master offset 5139643 s1 freq -4377 path delay
38439
ptp4l[15602.007]: master offset -359 s2 freq -4736 path delay
38453
ptp4l[15602.007]: port 1: UNCALIBRATED to SLAVE on MASTER_CLOCK_SELECTED
ptp4l[15603.007]: master offset -217 s2 freq -4702 path delay
38453
ptp4l[15604.007]: master offset 8 s2 freq -4542 path delay
38453
ptp4l[15605.007]: master offset 155 s2 freq -4393 path delay
38453
ptp4l[15606.007]: master offset -312 s2 freq -4813 path delay
38462
# STARTING UP DEVICE C #
sudo ./ptp4l -i ens2 -m -P
ptp4l[15185.095]: selected /dev/ptp0 as PTP clock
ptp4l[15185.096]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[15185.096]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[15185.570]: port 1: rogue peer delay response
ptp4l[15185.570]: port 1: LISTENING to FAULTY on FAULT_DETECTED
(FT_UNSPECIFIED)
ptp4l[15201.572]: port 1: FAULTY to LISTENING on INIT_COMPLETE
# DEVICE A ERROR #
ptp4l[15702.882]: port 1: multiple peer responses
ptp4l[15702.882]: port 1: rogue peer delay response
ptp4l[15702.882]: port 1: SLAVE to FAULTY on FAULT_DETECTED (FT_UNSPECIFIED)
# DEVICE B ERROR #
ptp4l[15190.747]: port 1: received pdelay_resp msg with unexpected peer
port id 6805ca.fffe.5a75d6-1
ptp4l[15190.747]: port 1: multiple peer responses
ptp4l[15190.747]: port 1: rogue peer delay response
ptp4l[15190.747]: port 1: GRAND_MASTER to FAULTY on FAULT_DETECTED
(FT_UNSPECIFIED)
ptp4l[15206.748]: port 1: FAULTY to LISTENING on INIT_COMPLETE
### gPTP PROFILE ###
[global]
#
# Default Data Set
#
twoStepFlag 1
gmCapable 1
priority1 248
priority2 248
domainNumber 0
clockClass 248
clockAccuracy 0xFE
offsetScaledLogVariance 0xFFFF
free_running 0
freq_est_interval 1
#
# Port Data Set
#
logAnnounceInterval 1
logSyncInterval -3
logMinPdelayReqInterval 0
announceReceiptTimeout 3
syncReceiptTimeout 3
delayAsymmetry 0
fault_reset_interval 4
neighborPropDelayThresh 800
min_neighbor_prop_delay -20000000
#
# Run time options
#
assume_two_step 1
logging_level 6
path_trace_enabled 1
follow_up_info 1
hybrid_e2e 0
tx_timestamp_timeout 1
use_syslog 1
verbose 0
summary_interval 0
kernel_leap 1
check_fup_sync 0
#
# Servo options
#
pi_proportional_const 0.0
pi_integral_const 0.0
pi_proportional_scale 0.0
pi_proportional_exponent -0.3
pi_proportional_norm_max 0.7
pi_integral_scale 0.0
pi_integral_exponent 0.4
pi_integral_norm_max 0.3
step_threshold 0.0
first_step_threshold 0.00002
max_frequency 900000000
clock_servo pi
sanity_freq_limit 200000000
ntpshm_segment 0
#
# Transport options
#
transportSpecific 0x1
ptp_dst_mac 01:80:C2:00:00:0E
p2p_dst_mac 01:80:C2:00:00:0E
uds_address /var/run/ptp4l
#
# Default interface options
#
network_transport L2
delay_mechanism P2P
time_stamping hardware
tsproc_mode filter
delay_filter moving_median
delay_filter_length 10
egressLatency 0
ingressLatency 0
boundary_clock_jbod 0
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linuxptp-users mailing list
Linuxptp-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-users