美文网首页
PTP (Precise Time Protocol) 使用

PTP (Precise Time Protocol) 使用

作者: Barry_Xu | 来源:发表于2020-03-17 14:09 被阅读0次

为何会出现PTP

NTP的精度很低,只能达到毫秒级别的精度,那么PTP就是为了克服NTP精度不高的问题而出现的。PTP能达到微秒到亚微秒级。

PTP需要硬件支持

在以太网控制器中需要集成一个与时间相关的模块,也就是网卡需要支持PTP,例如,nxp的ls1028a芯片就在其以太网控制器子系统中集成了一个IEEE 1588 定时器模块。

PTP在软件上的构成

Linux下ptp是由以下两部分构成的

  • linux内核支持ptp硬件驱动(也就是linux内核的一个特性)
  • linux用户空间程序Linux PTP Project

如何检查网卡是否支持PTP

$ ethtool -T eth0
Time stamping parameters for eth0:
Capabilities:
 hardware-transmit     (SOF_TIMESTAMPING_TX_HARDWARE)
   software-transmit     (SOF_TIMESTAMPING_TX_SOFTWARE)
   hardware-receive      (SOF_TIMESTAMPING_RX_HARDWARE)
   software-receive      (SOF_TIMESTAMPING_RX_SOFTWARE)
   software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
   hardware-raw-clock    (SOF_TIMESTAMPING_RAW_HARDWARE)
 PTP Hardware Clock: 1
 Hardware Transmit Timestamp Modes:
    off                    (HWTSTAMP_TX_OFF)
    on                    (HWTSTAMP_TX_ON)
 Hardware Receive Filter Modes:
    none               (HWTSTAMP_FILTER_NONE)
    all                   (HWTSTAMP_FILTER_ALL)
  • 软件时间戳需要包括参数

    SOF_TIMESTAMPING_SOFTWARE
    SOF_TIMESTAMPING_TX_SOFTWARE
    SOF_TIMESTAMPING_RX_SOFTWARE
    
  • 硬件时间戳需要包括参数

    SOF_TIMESTAMPING_RAW_HARDWARE
    SOF_TIMESTAMPING_TX_HARDWARE
    SOF_TIMESTAMPING_RX_HARDWARE
    

PTP 工具使用

Ubuntu 下面安装 linuxptp 这个软件包

$ ptp4l -h
 延迟机制选项
  -A            Auto,自动选择延迟机制。,从E2E开始,当收到对等延迟请求时切换到P2P
  -E            E2E,选择延迟请求 - 响应(E2E)机制。 默认是用这个机制。 单个PTP通信路径上的所有时钟必须使用相同的机制。 使用E2E机制在端口上收到对等延迟请求时,将输出warning
  -P            P2P,对等延迟机制
  网络传输选项
  -2            IEEE 802.3
  -4            UDP IPV4(默认)
  -6            UDP IPV6
  时间戳选项
  -H            使用硬件时间戳(默认)
  -S            使用软件时间戳                 
  -L            LEGACY HW时间戳
  其他选项
  -f    [file]  从指定文件file中读取配置。 默认情况下不读取任何配置文件。
  -i    [dev]   选择PTP接口设备,例如eth0(可多次指定)必须至少使用此选项或配置文件指定一个端口。
  -p    [dev]   在Linux内核v3.5之前,无法发现与网络接口关联的PHC设备。 此选项指定在旧内核上运行时要使用的PHC设备(例如/ dev/ptp0)。要使用的时钟设备,默认为auto,忽略软件/ LEGACY HW时间戳(不推荐使用此选项)
  -s            slaveOnly mode,从时钟模式(覆盖配置文件)
  -t            透明时钟模式
  -l    [num]   将日志记录级别设置为'num',默认是6
  -m            将消息打印到stdout
  -q            不打印消息到syslog
  -v            打印软件版本并退出
  -h            help
————————————————
版权声明:本文为CSDN博主「Kujou」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/BUPTOctopus/article/details/86246335

服务端(主钟):

$ sudo ptp4l -i enp0s66 -m -S

客户端(从钟):

sudo ptp4l -i enp0s25 -m -S -s

(https://blog.csdn.net/BUPTOctopus/article/details/86246335

相关文章

网友评论

      本文标题:PTP (Precise Time Protocol) 使用

      本文链接:https://www.haomeiwen.com/subject/heltyhtx.html