问题背景

使用linux ptp 测试时间同步报错 rogue peer delay response ,导致linux ptp 停止发送时间同步报文,从而进一步导致 接在网络内的设备不能与linux ptp 保持同步

测试设备网络拓扑

一台linux 电脑上运行linux ptp脚本,通过CANOE(可以认为此设备是个switch)连接两台具有时间同步功能的设备。采用的gPTP时间同步协议。

linux ptp脚本配置

配置如下

#
# 802.1AS example configuration containing those attributes which
# differ from the defaults.  See the file, default.cfg, for the
# complete list of available options.
#
[global]
#gmCapable		1
#priority1		248
#priority2		248
#logAnnounceInterval	0
domainNumber		0
logSyncInterval		-1
syncReceiptTimeout	1
neighborPropDelayThresh	800
#min_neighbor_prop_delay	-20000000
#assume_two_step		1
path_trace_enabled	1
follow_up_info		1
transportSpecific	0x1
ptp_dst_mac		01:80:C2:00:00:0E
#p2p_dst_mac		01:1B:19:00:00:00 
network_transport	L2
delay_mechanism		P2P

masterOnly		1
BMCA			noop
asCapable               true
inhibit_announce	0
inhibit_delay_req	1

问题排查

修改了部分上述配置,例如,将logSyncInterval 从-1 修改为-3,把间隔时间从500ms修改到125ms,多种修改,均没有效果。还是回到错误本身,既然错误是 “失常的peer delay response ”,是不是linux ptp认为 不应该收到此报文呢?

既然有此怀疑,那么动手修改同步设备的代码,让两个同步设备都不再发出 peer delay response 报文,再次连接到网络上,问题竟然就解决了!

再次回到问题,linux ptp作为同步消息的master,只需要收到peer delay req即可,response是master才应该发送的消息,而不是slave。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐