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.

[参考译文] AM4376:在 ICSS_EMAC 中处理大量具有有限队列大小的碎片化 IP 数据包

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/942658/am4376-processing-huge-number-of-fragmented-ip-packets-with-limited-queue-size-in-icss_emac

器件型号:AM4376

各位专家、您好!

我们正在使用 AM4376 CPU 的硬件平台上使用 EtherNet/IP 适配器 v1.0.3.4。

ICSS_EMAC 的接收和发送队列大小受限、由 L3存储器的总大小定义。 当发送长度选项设置为60000字节(ping -l 60000 ...)的 ping 请求时,该请求将使用允许的最大 MTU 大小分成多个片段。 根据网络协议层的数据处理速度、可能会发生两个问题:

  1. 请求片段以非常短的延迟发送、因此如果 网络协议层无法足够快地处理数据包、传入数据包突发会导致接收队列溢出。 在这种情况下、数据包将在接收端丢弃。 就我在 ICSS-EMAC 设计指南中所读出的内容而言、可以重新分配队列大小以增加 queue_4_size。 是这样吗?
  2. 如果请求已完全接收、则响应会在 发送队列中生成另一个 IP 片段的突发。 ICSS_EMAC 的发送函数随后返回-1以指示发送队列已满。 在这种情况下、数据包可能会被丢弃。 是否可以检查发送队列是否准备好处理另一个数据包、例如特定大小的数据包?  

如果发送队列已满、NIMU_ICSS 只是丢弃数据包是否正确?

提前感谢。

此致

Stefan Pape

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

    您好 Stefan、

    1.是的、没错。

    2.请参阅 ICSS_emacDrv.c 中的函数 ICSS_EmacTxPacketEnqueue(),该函数/*检查队列是否已满,是否有从第1156行开始的绕过*/。

     如果队列已满,则 hostStatPTR->txDroppedPackings++;并返回((int32_t)ICSS_EMAC_ERR_TX_OUT_OW_BD);您可以更新驱动程序以从本地变量 queue_wr_ptr 获取可用的队列大小。

    此致、

    Garrett

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

    您好、Garrett、

    感谢您的信赖。

    在调整队列大小以增加非实时流量的队列大小(此处为 QUEUE4)时、您会建议对 EtherNet/IP / DLR 设备使用以下哪种选项:

    1.将队列1-3的大小减小相同的值,并将空闲的 elemet 添加到 QUEUE4 (例如 Q1-3 = 64,Q4 = 196)

    2.保持队列1的大小不变,将 QUEUE2-3的大小减小为相同的值 ,并将空闲 elemets 添加到 QUEUE4 (例如,Q1 = 97、Q2-3 = 47、Q4 = 197)

    此致

    Stefan  

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

    Stefan、

    >>processors.wiki.ti.com/.../ICSS_EMAC_LLD_developers_guide

    我认为这应该取决于应用程序中 VLAN 标签的 PCP、您可以检查实时流量是否主要进入队列1、然后选择选项2。

    此致、
    Garrett

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

    您好、Garrett、

    感谢您的支持。

    此致

    Stefan