802.1AS协议是IEEE 1588时钟同步协议的精简版。 支持1588的网卡就可以支持802.1AS,但是运行ptp4l时,还是有一些不同的配置。
TSN网络中最基础的概念和要求是时钟同步,因为在一个网络中,只有时钟达到同步才能进行实时性的评估和处理,如果时钟都不同步,根本无法在时间上达成一致,TSN就无法实现。
本测试网络拓扑:
SIG-0101是一款TSN交换机,swp0 - swp3是TSN网口。
eno0与swp2不需要连接。这个连接只是为了将网关作为一个endpoint而已。
查看网卡是否支持PTP
这种带PTP Hardware clock的网卡支持PTP协议
PTP Hardware Clock:0 ,这个0是时钟的编号。不是0个的意思
这种网卡只能用 ptp4l的软件模式, 运行ptp4l时需要加 -S ,否则会报网口不支持。
软件模式的时钟同步精度会差一些。
PTP Hardware Clock:none
这个none意思就是没有PTP硬件时钟。
在主时钟节点上运行命令:
-l7 可以输出更多日志
./ptp4l -i swp2 -p /dev/ptp1 -f gPTP.cfg -2 -m
gPTP.cfg文件的内容
[global]
gmCapable 1
priority1 128
priority2 248
logAnnounceInterval 0
logSyncInterval -3
syncReceiptTimeout 3
#neighborPropDelayThresh 800
neighborPropDelayThresh 80000
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
network_transport L2
delay_mechanism P2P
在从时钟节点运行
./ptp4l -i eth0 -f gPTP.cfg -2 -m
可以看到,刚开始的时候时钟差距较大,但是很快时钟的差距就降下来了。最低到5,9,6,7ns。
参考: