匆忙翻译了一下linuxptp ptp4l的帮助手册,不尽准确,不尽详细,仅供参考。欢迎留言讨论相关问题。

1 名称

ptp4l - PTP普通时钟/边界时钟/透明时钟协议栈

2 描述

ptp4l是一个Linux上PTP协议(IEEE 1588)的实现,支持普通时钟,边界时钟和透明时钟。

3 配置选项

配置选项描述
-A自动选择延迟测量机制,运行时使用E2E,但接收到peer delay request报文后自动切换到P2P。
-EE2E延迟测量机制 (默认配置)
-PP2P延迟测量机制
-2IEEE 802.3协议
-4UDP/IPv4协议(默认配置)
-6UDP/IPv6协议
-H硬件时间戳(默认配置)
-S软件时间戳
-LLegacy硬件时间戳
-f指定配置文件,若没有指定,则使用默认配置。
-i指定网口(PTP port),可以多次使用指定多个网口,但该选项或配置文件中至少要指定一个。
-p指定PHC (PTP Hardware Clock) device,例如/dev/ptp0,该选项已经不推荐使用,适用于v3.5之前的内核,因为v3.5之前的内核不支持通过网口找到PHC device。
-sslaveOnly模式
-l打印级别 0~7(默认6,LOG_INFO)
-m将信息打印到标准输出
-q不将信息发送到系统logger
-v显示版本号
-h显示help信息

4 长配置选项

下面每一个在配置文件中使用的选项也可以在命令行中使用,例如slaveOnly选项,可以在命令行中以下面的形式使用,

  • --slaveOnly 1
  • --slaveOnly=1

命令行中使用的配置选项的值,会覆盖配置文件中的[global]段配置选项的值。

5 配置文件

配置文件按段划分,空行和#开头的行会被忽略。

有三种段类型:

  • [global]段,用来配置program选项,clock选项,默认port选项。
  • port段使用被配置的网口的名字,如[eth0]段,其配置的选项会覆盖[global]段中默认port选项。port段可以为空内容,作用只是指定网口,这样命令行中不必使用-i选项。
  • [unicast_master_table]段,配置单播table,后面会有介绍。
5.1 Port选项
配置选项描述默认值
delayAsymmetry非对称延迟,传输路径和接收路径的时间差,单位ns。当server-to-client传输时间更长时为正数,client-to-server传输时间更长时为负数。0
logAnnounceIntervalAnnounce报文发送时间间隔。同一个domain里的PTP设备,应该使用相同的值。时间间隔值为该值的2的次方。1(2秒)
logSyncIntervalSync报文发送时间间隔。时间间隔值为该值的2的次方。0(1秒)
operLogSyncInterval时钟进入SERVO_LOCKED_STABLE状态时,请求的Sync报文时间间隔。如果配置了msg_interval_request选项,本地client port将请求远程server改变Sync报文发送时间间隔。时间间隔值为该值的2的次方。0(1秒)
logMinDelayReqInterval允许的最小Delay_Req报文发送时间间隔。时间间隔值为该值的2的次方。0(1秒)
logMinPdelayReqInterval允许的最小Pdelay_Req报文发送时间间隔。时间间隔值为该值的2的次方。0(1秒)
operLogPdelayReqInterval时钟进入SERVO_LOCKED_STABLE状态时,要使用的Pdelay_Req报文时间间隔。如果配置了msg_interval_request选项,本地client port将使用该Pdelay_Req报文发送时间间隔。时间间隔值为该值的2的次方。0(1秒)
inhibit_delay_req禁止发送任何delay request,需要配置asCapable为true。0(disabled)
announceReceiptTimeout没有收到Announce报文的数目,用来判断Announce报文超时。3
syncReceiptTimeout没有收到sync/follow报文的数目,用于gPTP模式判断Sync是否超时,是否触发best master clock选择。0(disabled)
transportSpecific报文transportSpecific域,范围0~255。0
ignore_transport_specific接收报文的transportSpecific域值,如果和配置的值匹配,则会被丢弃。设置该选项为1可以忽略该值的匹配。0
path_trace_enabled记录Annouce报文的路径。0
follow_up_info在follow_up报文包含802.1AS的数据0
fault_reset_interval重置port错误的时间,单位秒,时间值为该值的2的次方。4(16秒)
fault_badpeernet_interval重置peer网络错误配置的时间,单位秒,时间值为该值的2的次方。4(16秒)
delay_mechanism延迟测量机制,E2E, P2P或者Auto。E2E
hybrid_e2edelay request/response使用单播地址0
inhibit_multicast_service禁止多播,使用单播。0
net_sync_monitor使能NetSync Monitor协议,该选项要求hybrid_e2e被使能。0
unicast_listen单播监听0
unicast_master_table选择用于单播发现的table id0
unicast_req_duration单播发现的时间,单位秒。3600
ptp_dst_macPTP报文发送的MAC地址01:1B:19:00:00:00
p2p_dst_macpeer机制报文发送的MAC地址01:80:C2:00:00:0E
network_transport传输协议,UDPv4, UDPv6或L2UDPv4
neighborPropDelayThreshpeer delay最大阈值,单位ns,超过该值则认为对端设备是非gPTP设备20000000
masterOnly绕过BMCA,使clock工作在master模式0
G.8275.portDS.localPriorityITU-T G.8275.1 and G.8275.2使用128
min_neighbor_prop_delaypeer delay最小阈值,单位ns,低于该值则认为对端设备是非gPTP设备-20000000
tsproc_mode时间戳计算模式,用来计算offset和delay。可选择filter, raw, filter_weight, raw_weight。filter
delay_filter延迟测量的滤波算法,可选择moving_average或moving_median。moving_median
delay_filter_length延迟滤波采样长度10
egressLatency发送延迟补偿,单位ns0
ingressLatency接收延迟补偿,单位ns0
boundary_clock_jbod允许多个PTP时钟,作为一个边界时钟来运行。要有额外的程序保证多个PTP时钟的同步。0
udp_ttlUDP包生存时间值1
5.2 程序选项和时钟选项
配置选项描述默认值
twoStepFlag两步时间戳模式,单步时间戳模式选择1
slaveOnly绕过BMCA,使clock工作在slave模式0
socket_priority报文优先级,0~15,只在L2协议下生效0
gmCapable是否具有master能力,只对gPTP模式生效1
priority1时钟priority1属性,0~255128
priority2时钟priority2属性,0~255128
clockClass时钟clockClass属性248
clockAccuracy时钟clockAccuracy属性0xFE
clockIdentity时钟clockIdentity属性,使用默认值则会在运行时自动生成000000.0000.000000
offsetScaledLogVariance时钟offsetScaledLogVariance属性0xFFFF
G.8275.defaultDS.localPriorityITU-T G.8275.1 and G.8275.2使用128
maxStepsRemovedAnnounce报文的stepsRemoved值大于等于该值时,则不参与BMCA255
domainNumberPTP域0
utc_offsetTAI和UTC时间差37
free_running不调整物理时钟0
freq_est_interval评估本地时钟和对端时钟频率比值的时间间隔,时间间隔值为该值的2的次方。1(2秒)
assume_two_step按两步报文的方式,处理单步报文0
tc_spanning_tree透明时钟生成树模式,在PTP网络中,实现所有透明时钟内增加Announce报文的stepsRemoved值,和相应BMCA,可以避免环形PTP报文循环。0
tx_timestamp_timeout等待发送时间戳的超时时间,单位ms1
check_fup_sync检查sync,follow_up报文顺序0
clock_servo时钟伺服器,可选择pi,ntpshm,nullfpi
clock_type时钟类型,OC,BC,E2E_TC,P2P_TCOC
pi_proportional_constpi算法选项0.0
pi_integral_constpi算法选项0.0
pi_proportional_scalepi算法选项0.0
pi_proportional_exponentpi算法选项-0.3
pi_proportional_norm_maxpi算法选项0.7
pi_integral_scalepi算法选项0.0
pi_integral_exponentpi算法选项0.4
pi_integral_norm_maxpi算法选项0.3
step_threshold步进时钟的阈值,超过阈值,直接调整时钟时间,单位秒0.0
first_step_threshold第一次步进时钟的阈值,超过阈值,直接调整时钟时间,单位秒0.00002
max_frequency最大频率调整值,单位ppb900000000 (90%)
sanity_freq_limitPTP时钟和系统monotonic时钟频率偏差限制,单位ppb200000000 (20%)
initial_delay链路延迟初始值,单位ns。设置为0的话,程序会先测量0
ntpshm_segmentntpshm私服使用的SHM段的数目0
udp6_scopeIPv6多播报文的范围,默认为全局范围0x0E
uds_addressUNIX domain socket地址/var/run/ptp4l
dscp_eventPTP事件报文使用的Differentiated Services Codepoint (DSCP),0~630
dscp_generalPTP通用报文使用的Differentiated Services Codepoint (DSCP),0~630
dataset_comparisonBMCA比较dataset的方法,可选择"ieee1588"或 “G.8275.x”ieee1588
logging_levellog级别6 (LOG_INFO)
message_tag可以添加到所有打印信息中空字符
verbose打印消息到标准输出0
use_syslog打印消息到系统日志1
summary_interval打印统计信息时间间隔,时间间隔值为该值的2的次方。0(1秒)
time_stamping时间戳类型,可选择hardware, software, legacy, onestep, 或p2p1stephardware
productDescription时钟描述;;
revisionData时钟描述;;
userDescription时钟描述空字符
manufacturerIdentity时钟描述00:00:00
kernel_leaplinux内核闰秒1
timeSource时钟类型0xA0
hwts_filter硬件时间戳过滤器设置模式,可选择normal, check, fullnormal
asCapable如果设置为true,就认为是gPTP设备,不再检查。auto
BMCA最优时钟算法,可选择masterOnly,slaveOnly或ptpptp
inhibit_announce禁止发送Annouce报文,需要使能ignore_source_id0
ignore_source_id忽略sync和follow_up报文的source port id检查0
msg_interval_request是否使能请求调整sync和peer delay request报文的发送间隔0
servo_num_offset_values时间偏差值连续小于servo_offset_threshold的数目,达到这个数目伺服器进入stable状态10
servo_offset_threshold时间偏差阈值0
slave_event_monitorslave事件监测的UNIX domain socket地址空字符
write_phase_mode使用PTP硬件写相位功能,代替调整频率偏差0
5.3 单播发现选项
配置选项描述
table_idtable id,正数值
logQueryInterval单播协商时间间隔,时间间隔值为该值的2的次方。
peer_addressP2P单播地址
L2|UDPv4|UDPv6传输协议

6 时间尺度

ptp4l作为PTP域的主时钟时,使用PTP时间还是使用UTC时间取决于时间戳类型。软件时间戳和legacy时间戳模式,使用UTC时间,硬件时间戳使用PTP时间。ptp4l使用硬件时间戳作为主时钟时,由phc2sys程序维护UTC和PTP时间的校正值。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐