On 06/06/2022 16:10, Jay Shardlow wrote:
Hello all, after a bit of advice/help. I've got some CentOS 7 servers and I need to get them running ptp4l (from linuxptp) as clients, with the grandmaster being a Meinberg appliance. One with an Intel i350 works fine. Another with a Broadcom 5720 does not. Both servers are connected to the same network for their PTP. I suspect I know why the Broadcom doesn't work, but I was wondering if anyone could point me in the right direction on how to get it to do so.

In short the i350's hardware timstamping capabilities say this:

|# ethtool -T lan2 <snip> Hardware Receive Filter Modes: none                  (HWTSTAMP_FILTER_NONE) all (HWTSTAMP_FILTER_ALL) |

But the Broadcom says this:

|# ethtool -T lan2 <snip> Hardware Receive Filter Modes: none                  (HWTSTAMP_FILTER_NONE) ptpv1-l4-event (HWTSTAMP_FILTER_PTP_V1_L4_EVENT) ptpv2-l4-event (HWTSTAMP_FILTER_PTP_V2_L4_EVENT) ptpv2-l2-event (HWTSTAMP_FILTER_PTP_V2_L2_EVENT) |

So I get the feeling that the Broadcom isn't picking up some of the messages coming back from the grandmaster. eg in the logs I can see:

|Jun  3 10:12:37.000 ldalgc01 ptp4l[8290]: ptp4l[601302.197]: selected local clock e43d1a.fffe.acab65 as best master Jun  3 10:12:37.000 ldalgc01 ptp4l: [601302.197] selected local clock e43d1a.fffe.acab65 as best master Jun  3 10:12:38.000 ldalgc01 phc2sys: [601303.026] Waiting for ptp4l... Jun  3 10:12:39.000 ldalgc01 phc2sys: [601304.027] Waiting for ptp4l... |

But a tcpdump shows that such messages are arriving:

|10:12:39.381908 IP gsdgmca01-ptp0.prod.instinet.com.ptp-general > 224.0.1.129.ptp-general: UDP, length 54 10:12:39.398091 IP gsdgmca01-ptp0.prod.instinet.com.ptp-general > 224.0.1.129.ptp-general: UDP, length 54 10:12:39.404572 IP gsdgmca01-ptp0.prod.instinet.com.ptp-general > 224.0.1.129.ptp-general: UDP, length 54 |

The Broadcom 5720 blurb says that it has Hardware support for IEEE 1588 timestamping <https://docs.broadcom.com/doc/5720-PB01-R>, so I guess it might need some tweaking of the ptp4l conf, but I'm not sure where to start. Current config (that works fine on the i350) is:

|[global] # # Default Data Set # twoStepFlag             1 slaveOnly               1 priority1               128 priority2         128 domainNumber            0 #utc_offset             37 clockClass              248 clockAccuracy           0xFE offsetScaledLogVariance 0xFFFF free_running            0 freq_est_interval       1 dscp_event              0 dscp_general            0 dataset_comparison      ieee1588 G.8275.defaultDS.localPriority  128 # # Port Data Set # logAnnounceInterval     1 logSyncInterval         0 logMinDelayReqInterval  0 logMinPdelayReqInterval 0 announceReceiptTimeout  3 syncReceiptTimeout      0 delayAsymmetry          0 fault_reset_interval    4 neighborPropDelayThresh 20000000 masterOnly              0 G.8275.portDS.localPriority     128 # # Run time options # assume_two_step         0 logging_level           6 path_trace_enabled      0 follow_up_info          0 hybrid_e2e              1 inhibit_multicast_service       0 net_sync_monitor        0 tc_spanning_tree        0 tx_timestamp_timeout    1 unicast_listen          0 unicast_master_table    0 unicast_req_duration    3600 use_syslog              1 verbose                 1 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             linreg sanity_freq_limit       200000000 ntpshm_segment          0 # # Transport options # transportSpecific       0x0 ptp_dst_mac             01:1B:19:00:00:00 p2p_dst_mac             01:80:C2:00:00:0E udp_ttl                 32 udp6_scope              0x0E uds_address             /var/run/ptp4l # # Default interface options # clock_type              OC network_transport       UDPv4 delay_mechanism         E2E time_stamping           hardware tsproc_mode             filter delay_filter            moving_median delay_filter_length     10 egressLatency           0 ingressLatency          0 boundary_clock_jbod    0 # # Clock description # productDescription      ;; revisionData            ;; manufacturerIdentity    00:00:00 userDescription         ; timeSource              0xA0 Thanks in advance, J |


_______________________________________________
Linuxptp-users mailing list
Linuxptp-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-users

Apologies for the bad formatting, let me try some of that again with a bit more care with the cut/paste.

In short Intel i350 is fine, Broadcom 5720 is not. The Broadcom is listed as having Hardware support for IEEE 1588 timestamping. But I'm not sure how to get it workimg (like the Intel) with ptp4l.

Intel i350:
# ethtool -T lan2
<snip>
Hardware Receive Filter Modes:
        none                  (HWTSTAMP_FILTER_NONE)
        all                   (HWTSTAMP_FILTER_ALL)

Broadcom 5720:
# ethtool -T lan2
<snip>
Hardware Receive Filter Modes:
        none                  (HWTSTAMP_FILTER_NONE)
        ptpv1-l4-event        (HWTSTAMP_FILTER_PTP_V1_L4_EVENT)
        ptpv2-l4-event        (HWTSTAMP_FILTER_PTP_V2_L4_EVENT)
        ptpv2-l2-event        (HWTSTAMP_FILTER_PTP_V2_L2_EVENT)

ptp4l logs:
Jun 3 10:12:37.000 ldalgc01 ptp4l[8290]: ptp4l[601302.197]: selected local clock e43d1a.fffe.acab65 as best master Jun 3 10:12:37.000 ldalgc01 ptp4l: [601302.197] selected local clock e43d1a.fffe.acab65 as best master
Jun  3 10:12:38.000 ldalgc01 phc2sys: [601303.026] Waiting for ptp4l...
Jun  3 10:12:39.000 ldalgc01 phc2sys: [601304.027] Waiting for ptp4l...
Jun  3 10:12:40.000 ldalgc01 phc2sys: [601305.029] Waiting for ptp4l...

tcpdump snippet:
10:12:39.381908 IP gsdgmca01-ptp0.prod.instinet.com.ptp-general > 224.0.1.129.ptp-general: UDP, length 54 10:12:39.398091 IP gsdgmca01-ptp0.prod.instinet.com.ptp-general > 224.0.1.129.ptp-general: UDP, length 54 10:12:39.404572 IP gsdgmca01-ptp0.prod.instinet.com.ptp-general > 224.0.1.129.ptp-general: UDP, length 54 10:12:39.406287 IP gsdgmca01-ptp0.prod.instinet.com.ptp-general > 224.0.1.129.ptp-general: UDP, length 54 10:12:39.486361 IP gsdgmca01-ptp0.prod.instinet.com.ptp-general > 224.0.1.129.ptp-general: UDP, length 54 10:12:39.499305 IP gsdgmca01-ptp0.prod.instinet.com.ptp-general > 224.0.1.129.ptp-general: UDP, length 54

ptp4l.conf (which works OK on the Intel i350):
[global]
#
# Default Data Set
#
twoStepFlag             1
#slaveOnly              0
slaveOnly               1
priority1               128
priority2               128
domainNumber            0
#utc_offset             37
clockClass              248
clockAccuracy           0xFE
offsetScaledLogVariance 0xFFFF
free_running            0
freq_est_interval       1
dscp_event              0
dscp_general            0
dataset_comparison      ieee1588
G.8275.defaultDS.localPriority  128
#
# Port Data Set
#
logAnnounceInterval     1
logSyncInterval         0
logMinDelayReqInterval  0
logMinPdelayReqInterval 0
announceReceiptTimeout  3
syncReceiptTimeout      0
delayAsymmetry          0
fault_reset_interval    4
neighborPropDelayThresh 20000000
masterOnly              0
G.8275.portDS.localPriority     128
#
# Run time options
#
assume_two_step         0
logging_level           6
path_trace_enabled      0
follow_up_info          0
#hybrid_e2e             0
hybrid_e2e              1
inhibit_multicast_service       0
net_sync_monitor        0
tc_spanning_tree        0
tx_timestamp_timeout    1
unicast_listen          0
unicast_master_table    0
unicast_req_duration    3600
use_syslog              1
#verbose                        0
verbose                 1
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
clock_servo             linreg
sanity_freq_limit       200000000
ntpshm_segment          0
#
# Transport options
#
transportSpecific       0x0
ptp_dst_mac             01:1B:19:00:00:00
p2p_dst_mac             01:80:C2:00:00:0E
#udp_ttl                        1
udp_ttl                 32
udp6_scope              0x0E
uds_address             /var/run/ptp4l
#
# Default interface options
#
clock_type              OC
network_transport       UDPv4
delay_mechanism         E2E
time_stamping           hardware
tsproc_mode             filter
delay_filter            moving_median
delay_filter_length     10
egressLatency           0
ingressLatency          0
boundary_clock_jbod     0
#
# Clock description
#
productDescription      ;;
revisionData            ;;
manufacturerIdentity    00:00:00
userDescription         ;
timeSource              0xA0

Thanks and sorry again for the previous formatting.

J


_______________________________________________
Linuxptp-users mailing list
Linuxptp-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-users

Reply via email to