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.

[参考译文] AM2432:AM243x CPSW 到 HSR 网络转发 — ICSS_EMAC 与 Enet ICSS 实现问题

Guru**** 2893300 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1632774/am2432-am243x-cpsw-to-hsr-network-forwarding---icss_emac-vs-enet-icss-implementation-questions

器件型号: AM2432

您好:

我正在使用 AM243x 评估模块、并采用工业通信 SDK。 我的目标是将 CPSW 上接收到的以太网流量转发到由 ICSSG 处理的 HSR 网络、同时更大限度地减少延迟。

目前、我将 ICSS_EMAC 模式与 HSR_PRP 一起使用、因为 SDK 当前似乎不支持与 Enet LLD ICSS 同时运行 Enet LLD CPSW。

有关 ICSS_EMAC + HSR_PRP 模式的问题:

`s在 R θ source/industrial_comms/hsr_prp/ss_fwhal/hsrPrp_red_config.c`中、定义了多种 HSR 模式(MODEH、MODET、MODEMO 等)。
根据我观察到的情况、默认配置使用 MODEH。
其他模式(MODET,调制解调器等)是否在 SDK 中得到完全支持和验证?

2.启用模式 T 会产生无限循环:`RedTxPacketHsrModeT ()`→`ICSS_EMAC_txPacket ()`→`RedTxPacket ()` RedTxPacketHsrModeT ()`→`(无限递归)。 这是已知问题吗?

3.关于卸载功能:

任何 HSR 模式是否允许在 PRU 侧卸载:
HSR 标签插入 (TX)
HSR 标签移除 (RX)
重复放弃

有关 Enet ICSS + HSR_PRP_1G 模式的问题:

1.该解决方案优于 ICSS_EMAC 吗?
2.与 ICSS_EMAC 相比,主要区别是什么?
3.同时使用 Enet CPSW 和 Enet ICSS 的建议策略是什么?

硬件/数据路径问题:

1.是否可以在 CPSW 和 ICSSG (PRU) 之间建立直接 DMA 路径而不进行 CPU 复制?
2.在任何配置中、从 CPSW 到 ICSSG 的直通转发是否可行(有或没有 R5 参与)?

感谢您的帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    关于 ICSS_EMAC + HSR_PRP 模式的问题:

    请勿在 AM64/AM243 上使用此表达式 — 此表达式已被弃用

    此解决方案是否优于 ICSS_EMAC?

    是的、它可以通过 DMA 集成等支持高达千兆位的速度和卓越的性能

    同时使用 Enet CPSW 和 Enet ICSS 的建议策略是什么?

    Teja Rowthu 能帮你解决这个问题

    [quote userid=“643222“ url=“~/support/processors-group/processors/f/processors-forum/1632774/am2432-am243x-cpsw-to-hsr-network-forwarding---icss_emac-vs-enet-icss-implementation-questions 是否可以在 CPSW 和 ICSSG (PRU) 之间建立直接 DMA 路径而不进行 CPU 复制?

    直接 DMA 不是选项、但这可以重复使用数据包缓冲区来执行某种零复制实现

    [quote userid=“643222“ url=“~/support/processors-group/processors/f/processors-forum/1632774/am2432-am243x-cpsw-to-hsr-network-forwarding---icss_emac-vs-enet-icss-implementation-questions 在任何配置(有或没有 R5 参与)中、从 CPSW 到 ICSSG 的直通转发是否可行?

    CPSW 无法切换到主机 CPU 接口。 因此,这是不可行的 IMO

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Remi:

    同时使用 Enet CPSW 和 Enet ICSS 的建议策略是什么?

    我们可以有两个不同的 R5 内核、一个处理 CPSW、另一个处理 ICSSG。 我们有一个基于共享存储器的隧道驱动程序、可用于在内核之间转发数据、速度高达 200Mbps @ 100% CPU 负载。 这包括将完整的数据包复制到共享内存池中或从共享内存池中复制出。 这适用于 AM64x EVM、但也可启用以与 AM243x 配合使用。

    您应用中 CPSW 和 ICSSG 之间的预期流量吞吐量是多少?  

    谢谢。此致、
    Teja。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Teja:

    感谢您的回答。

    在前一个工程中、我使用了 lwipif_IC 在两个 R5 内核之间进行通信。
    这是您推荐用于 CPSW <= ICSSG 通信的解决方案吗?或者您是否具有更优化的共享存储器机制? 在该工程中、我们在内核之间实现了 MDIO 共享方面存在一些限制 — 当在两个不同内核上同时使用 CPSW 和 ICSSG 时、是否有建议的方法来正确处理 MDIO?

    我的主要目标是 在 CPSW(以太网入口)和 ICSSG(HSR 转发)之间实现超低延迟。

    您能否提供 共享内存隧道解决方案的测量延迟?

    此外、我正在考虑采用另一种架构:

    是否可以:

    • 将单个 R5 内核用于网络 (ICSS 和 cpsw)
    • 执行最小 CPSW 初始化(不允许链路协商)
    • 将数据包直接转发到 ICSSG(绕过所有高层堆栈)

    您是否有关于此类最小 CPSW 数据路径使用的任何示例或指南?

    我的用例不是以吞吐量为导向、而是对延迟至关重要、因此避免不必要的堆栈层和存储器副本至关重要。

    谢谢。此致、
    R é mi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Remi:

    ]这是您推荐用于 CPSW <=> ICSSG 通信的解决方案吗?还是您有更优化的共享存储器机制?

    可以、但如果应用纯粹是转发数据包、我们可以对此进行优化、以减少读取/写入操作长度并改善总体延迟和开销。 您遇到的 MDIO 问题是否与 CPSW 和 ICSSG 共享其中一个端口有关? 如果是、我们可以配置 ICSSG0 而不是 ICSSG 1、以实现完全独立的 CPSW 和 ICSSG MDIO 链路。

    [引述 userid=“643222“ url=“~/support/processors-group/processors/f/processors-forum/1632774/am2432-am243x-cpsw-to-hsr-network-forwarding---icss_emac-vs-enet-icss-implementation-questions/6305414
    • 将单个 R5 内核用于网络 (ICSS 和 cpsw)
    • 执行最小 CPSW 初始化(不允许链路协商)
    • 将数据包直接转发到 ICSSG(绕过所有高层堆栈)
    [/报价]

    遗憾的是、这目前无法实现、这也是推荐使用两个不同内核而不是单个内核的唯一主要原因。 即使数据包从 CPSW 直接转发到 ICSSG 也无法使用 DMA 完成、而 需要由 R5 完成。 如果工程时间线支持、我们可以跳过 lwip 栈、并在 CPSW 到 ICSS 的内核之间直接在第 2 层共享数据包。

    有一个非常规的想法涉及 DMA 映射以使相同的 R5 同时接收 CPSW 和 ICSSG 流量、但这仅在纸上谈起、并且尚未经过测试。 这可能是我们可以使应用程序达到零副本的最接近值。 如果您想 考虑这些选项、请告诉我、以便我们进一步规划。

    谢谢。此致、
    Teja。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Teja:

    感谢您的详细回答、这对您很有帮助。

    如果是、我们可以配置 ICSSG0 而不是 ICSSG 1、以实现完全独立的 CPSW 和 ICSSG MDIO 链路。

    我使用的是 AM24 EVM。 我必须 在 syscfg 中将 ICSSG 实例从 1 更改为 0 吗?

    es、但如果应用纯粹是转发数据包、我们可以对其进行优化、以减少读取/写入操作长度并改善总延迟和开销。 您遇到的 MDIO 问题是否与 CPSW 和 ICSSG 共享其中一个端口有关?

    在共享内存方法方面、我了解优化的可能性、但由于我的用例对延迟至关重要、而不是以吞吐量为导向、因此我尝试尽可能避免任何额外的存储器副本。

    有一个涉及 DMA 映射的非常规想法、旨在使同一 R5 同时接收 CPSW 和 ICSSG 流量、但这只是纸上谈兵、未经测试。 这可能是我们可以使应用程序达到零副本的最接近值。 如果您想 考虑这些选项、请告诉我、以便我们可以进一步规划。

    我绝对想进一步探索这个选项。 这看起来比双核解决方案更容易、并且与双核解决方案相比、延迟应该得到显著改善。

    谢谢。此致、
    R é mi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Remi:

    我们能否从关于周期时间、延迟要求和预期链路速度的基本线路要求开始? 在此基础上、我们需要考虑新方法的细节。  

    除此之外、您的应用在转发到另一个端口之前、是否需要对 CPSW 端口上收到的数据包进行任何其他更改?

    谢谢。此致、
    Teja。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Teja:

    感谢您的支持。

    以下是我们应用的基本要求:

    •CPSW 以太网帧→ICSSG 上的 HSR 帧、目标延迟为 17µs HSR± 4µs
    •ICSSG→CPSW 以太网帧上的 HSR 帧、目标延迟为 17µs± 4µs

    预期的链路速度为 100Mbps、这对于我们的用例已经足够。 欢迎使用更高的吞吐量、但不是强制性的。

    该应用主要侧重于 CPSW 和 ICSSG 之间的快速 L2 转发、具有极少的处理能力。

    但是、如果我们能够:
    •选择性地处理 R5 上的特定数据包(通过 L2 滤波)
    •同时尽可能快地转发其余部分

    低延迟和确定性比吞吐量更重要。

    谢谢。此致、
    R é mi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Remi:

    由于主机端口开关延迟高于该延迟、因此我们无法满足 CPSW 开关 17us +/–4us @ 100M 的要求。 因此、我们只能考虑 1G 链路速度。 我们计划使用第二个 R5 内核来控制 CPSW init 序列、并且根据设计要求、运行时操作可由两个运行的 R5 内核中的一个来处理。 让我们起草一个最终设计、与您进行讨论。

    如果需要进一步考虑、请告知我们。 我们的一种方法是 对 ICSSG 使用专用的 Tx 和 Rx 通道、这意味着总体 QoS 不会高达 8 个级别。  

    谢谢。此致、
    Teja。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Teja:

    感谢您的更新。

    适用于 1G。

    期待您提出的设计。

    此致、
    R é mi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Remi:  

    很高兴再次与您联系。  

    17us +/–4us @ 100m

    这里的数据包大小是多少?

    [引述 userid=“643222“ url=“~/support/processors-group/processors/f/processors-forum/1632774/am2432-am243x-cpsw-to-hsr-network-forwarding---icss_emac-vs-enet-icss-implementation-questions/6309334

    该应用主要侧重于 CPSW 和 ICSSG 之间的快速 L2 转发、具有极少的处理能力。

    [/报价]

    您能否详细介绍一下“L2 转发和最小处理“的含义? ICSS port1->port-2 L2 HSR 转发方案中、数据包内容保持不变。 无论如何、目前无法在 ICSS -> CPSW 之间实现 L2 转发。

    BR
    Jc.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Jayachadran、

    很高兴再次与您联系。  [/报价]

    谢谢,我也一样:)

    我简要介绍了全球系统:  

    实际上、以黄色显示的是我们使用 ENET LLD CPSW 和 ICSS-EMAC(采用 HSR_PRP)。

    => ICSS 为 100Mb

    ==>我们从 cpsw 到 icssg 端口 200µs 延迟:太多了。

    此处的数据包大小是多少?

    延迟目标为 5 –10µs +帧传输时间。

    根据我们的理解、要实现该目标、需要迁移到 HSR_PRP_1G(采用 ENET LLD 的 ICSSG)。

    但是、这会引入一个关键限制:

    • ENET LLD 无法同时用于单个内核上的 CPSW 和 ICSSG
    • 这意味着使用两个具有内核间通信的 R5 内核来进行数据包传输
    • 这个额外的步骤将增加延迟、这已经是我们的用例需要关注的问题

    为了满足延迟要求、我们认为解决方案需要:

    • CPSW 和 ICSSG 之间的优化数据路径
    • 将 HSR 标签插入/移除转移到 PRU 上、而不是在 R5 上对其进行处理

    希望这一信息澄清了我们努力达成的问题和目标、请告诉我。

    谢谢。此致、

    R é mi

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Remi:  

    感谢您的解释。  

    [报价 userid=“643222“ url=“~/support/processors-group/processors/f/processors-forum/1632774/am2432-am243x-cpsw-to-hsr-network-forwarding---icss_emac-vs-enet-icss-implementation-questions/6313074 ]延迟目标为 5 –10µs +帧传输时间。

    延迟目标将不会完全一样? 因为、这取决于数据包大小、因为这不是真正的直通场景。

    [引述 userid=“643222“ url=“~/support/processors-group/processors/f/processors-forum/1632774/am2432-am243x-cpsw-to-hsr-network-forwarding---icss_emac-vs-enet-icss-implementation-questions/6313074
    • 将 HSR 标签插入/移除转移到 PRU 上、而不是在 R5 上对其进行处理

    [/报价]

    PRU ICSSG 支持 在 PRU ICSSG 中进行 HSR 卸载 — 标签插入/移除。  

    [引述 userid=“643222“ url=“~/support/processors-group/processors/f/processors-forum/1632774/am2432-am243x-cpsw-to-hsr-network-forwarding---icss_emac-vs-enet-icss-implementation-questions/6313074
    • CPSW 和 ICSSG 之间的优化数据路径
    [/报价]

    我会让 Teja 对此发表评论,或者他可能已经在研究架构建议。

    BR
    Jc.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jayachandran:

    延迟目标不会保持不变? 因为它取决于数据包大小、因为这不是真正的直通方案。

    当然,这也是我的理解。 我将在内部进行检查,但我同意您的意见:如果没有 cpsw 直通,延迟会根据帧大小而波动。

    此致、

    R é mi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jayachandran 和 Teja:

    我们的实际红框目标是将 CPSW 用于非 HSR 标记的数据包、将 ICSSG1 用于 HSR 标记的数据包:我们使用 AM24 EVM 允许这样的配置、但我们还有一个问题:如何将 ICSSG0 用于非 HSR 标记的数据包? 如果我们使用 icssg0 <=>1 作为红盒、我们可以改进数据路径并使用直通方式吗?

    此致、

    R é mi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Remi:

    我们的实际红框目标是将 CPSW 用于非 HSR 标记的数据包、将 ICSSG1 用于 HSR 标记的数据包:我们使用的是 AM24 EVM 允许的这种配置、但我们还有一个问题:如何将 ICSSG0 用于非 HSR 标记的数据包? 如果我们将 icssg0 <=>1 用于红框、我们可以改进数据路径并使用直通功能吗?

    是的、这是可以实现的、但需要自定义 PRU 固件来处理 ICSSG 实例之间的数据包转发、因为主机到 ICSSG 数据包接收(用于 TX 甚至 RX)通过 PSIL DMSS 接口进行。

    BR
    Jc.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jayachandran 和 Teja:

    是的、这是可行的、但需要自定义 PRU 固件来处理 ICSSG 实例之间的数据包转发、因为通过 PSIL DMSS 接口进行主机到 ICSSG 数据包接收(用于 TX 甚至 RX)。

    好的、明白。 您是否有使用 ICSSG0 和 ICSSG1 的评估板?

    有一个涉及 DMA 映射的非常规想法、旨在使同一 R5 同时接收 CPSW 和 ICSSG 流量、但这只是纸上谈兵、未经测试。 这可能是我们可以使应用程序达到零副本的最接近值。 如果您想 考虑这些选项、请告诉我、以便我们可以进一步规划。

    请注意、您认为何时能够提供设计的初稿版本?

    此致、

    R é mi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的@Jayachandran 和@Teja,

    您是否有机会根据 Remi 之前的要求检查评估板?

    此外、您能否分享 DMA 映射的任何草稿版本以使同一 R5 同时接收 CPSW 和 ICSSG 流量?

    非常感谢

    Lara

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Lara:  

    您是否有机会按照 Remi 之前的要求检查评估板?

    我正在为您查找此内容、并将在接下来的几天内让您保持发布状态。

    BR
    Jc.