工具与软件:
我正在设计 PTP (IEEE 1588-2019)系统、并有要求在保持基于硬件的精确时间戳的同时通过 MACsec 实施 PTP。 为了做到这一点、我需要能够对所有传入和传出的数据包进行时间戳标记、而不仅仅是对 PTP 相关数据包进行时间戳标记、就像对所有通信进行加密一样、CPSW 不会知道这些数据包是 PTP 相关数据包。
CPSW 中是否有这样的选项来为所有传入和传出数据包添加时间戳?
谢谢!
Alexey。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
我正在设计 PTP (IEEE 1588-2019)系统、并有要求在保持基于硬件的精确时间戳的同时通过 MACsec 实施 PTP。 为了做到这一点、我需要能够对所有传入和传出的数据包进行时间戳标记、而不仅仅是对 PTP 相关数据包进行时间戳标记、就像对所有通信进行加密一样、CPSW 不会知道这些数据包是 PTP 相关数据包。
CPSW 中是否有这样的选项来为所有传入和传出数据包添加时间戳?
谢谢!
Alexey。
Alexey、您好!
[quote userid="620385" url="~/support/processors-group/processors/f/processors-forum/1435187/am625-cpsw-ptp-timestamping-all-the-packets CPSW 中是否有这样一个选项可以对所有传入和传出数据包设置时间戳?我相信这应该可以通过 CPSW CPTS 模块实现。 具体指 AM62x TRM 12.3.1.4.7.2。 CPTS 架构部分介绍"记录在 CPSW 外部端口上发送或接收的每个数据包的时间戳值。" 您应该查看 TRM 的这一部分、了解更多有关 CPTS 的信息。
如果您使用的是 Linux 操作系统、此资源还提供了一些关于 Linux 环境中 CPSW CPTS 的其他信息。 https://software-dl.ti.com/processor-sdk-linux-rt/esd/AM62X/10_00_07_04/exports/docs/linux/Foundational_Components Network/CPSW3g.html?highlight=cpts#cpsw3g Kernel_Drivers
如果您有其他后续问题、敬请告知!
-道林
尊敬的 Daolin:
通过进一步的文档阅读、我发现 CPTS 确实会记录每个数据包的时间戳、可以通过软件来获取该时间戳。 第一个选项是通过 DMA 将其附加到每个数据包中(这是我要使用的选项)、但根据 AM62和 AM64勘误表、此函数存在一些错误。 第二个选项是从 CPTS FIFO 获取时间戳、但为了做到这一点、CPTS 应将数据包归类为时间同步数据包、否则它不会保存在 FIFO 中。 问题是、我是否可以让 CPTS 将每个数据包归类为时间同步数据包?
谢谢!
Alexey。
但是根据 AM62和 AM64勘误表、此函数有一些错误。 [报价]正确。 该功能仍然存在、但勘误表 i2401在大多数情况下无法使用它。 可以使用调试和测试、但在以太网流量损坏的情况下、存在以太网端口锁定的风险。 许多环境中都没有锁定、但如果您看到以太网帧由于 CRC 错误而丢失、那么很可能会发生锁定。
[/quote]第二个选项是从 CPTS FIFO 获取时间戳、但为了做到这一点、CPTS 应将数据包归类为时间同步数据包、否则数据包不会保存在 FIFO 中。 问题是我是否可以让 CPTS 将每个数据包归类为时间同步数据包?[/QUOT]否 FIFO 方法仅对 IEEE1588帧(所有附件、如原始以太网、IPv4 UDP、IPv6 UDP)进行分类、以便在 FIFO 中添加时间戳。 在 AM6x 生成之前、这是唯一可用的方法、一些测试程序(如 https://github.com/ikhorn/plget )将其用于非 PTP 流量。 但是、该帧需要是 IEEE1588帧、以便时间戳显示在 FIFO 中。
使用 ICSSG 的 AM64x 系列以太网端口不受勘误表影响、可以对所有内容进行时间戳。