PTP4L 和 PHC2SYS 系统日志记录的解释

PTP4L 和 PHC2SYS 系统日志记录的解释

我正在使用点对点4lPHC4系统将我的 Centos 7.4 服务器的时钟同步到中央 PTP 源的服务。这些服务定期写入系统日志记录,如下所示。我还没有找到任何文档来解释这里每个字段的含义以及单位是什么。我将不胜感激任何线索!

11 月 14 日 17:07:26 stg1 ptp4l:[718277.895] rms 74 最大 99 频率 +8760 +/- 84 延迟 535 +/- 0
11 月 14 日 17:07:27 stg1 phc2sys:[718278.105] phc 偏移 -62 s2 频率 +14460 延迟 2117

答案1

我从另一个链接得到以下解释:

这些值以纳秒为单位:

主偏移值表示测量到的与主偏移的偏移(以纳秒为单位)。

s0、s1、s2 指示灯显示时钟伺服的不同状态:s0 解锁、s1 时钟步长、s2 锁定。如果舵机处于锁定状态(s2),并且在配置文件中将 pi_offset_const 选项设置为负值(请参阅 man 8 ptp4l 了解更多信息),时钟将不会步进(仅缓慢调整)。

freq 值表示时钟的频率调整(以十亿分之一为单位,ppb)。

路径延迟值表示从主站发送的同步消息的估计延迟(以纳秒为单位)。

端口 0 是用于本地 PTP 管理的 Unix 域套接字。端口 1 是 eth0 接口。

INITIALIZING、LISTENING、UNCALIBRATED 和 SLAVE 是在 INITIALIZE、RS_SLAVE 和 MASTER_CLOCK_SELECTED 事件上更改的端口状态示例。当端口状态从 UNCALIBRATED 更改为 SLAVE 时,计算机已成功与 PTP 主时钟同步。

答案2

查看文件print.c,我在“print”函数中发现了以下代码片段:

if (use_syslog) {
    syslog(level, "[%ld.%03ld] %s%s%s",
           ts.tv_sec, ts.tv_nsec / 1000000,
           message_tag ? message_tag : "", message_tag ? " " : "",
           buf);
}

print.h使用此函数定义更多宏。有些似乎未使用,另一些则与示例中不存在的错误有关,但pr_info在某个时刻以clock.c可以解释这些日志的方式调用宏:

if (!stats_get_result(s->delay, &delay_stats)) {
    pr_info("rms %4.0f max %4.0f "
        "freq %+6.0f +/- %3.0f "
        "delay %5.0f +/- %3.0f",
        offset_stats.rms, offset_stats.max_abs,
        freq_stats.mean, freq_stats.stddev,
        delay_stats.mean, delay_stats.stddev);
} else {
    pr_info("rms %4.0f max %4.0f "
        "freq %+6.0f +/- %3.0f",
        offset_stats.rms, offset_stats.max_abs,
        freq_stats.mean, freq_stats.stddev);
}

我对 PTP4L 不太了解,但希望这些变量名称能为您指明正确的方向。如果你想进一步探索,这里是 github 存储库。

相关内容