各位专家、您好!
我们正在使用 AM4376 CPU 的硬件平台上使用 EtherNet/IP 适配器 v1.0.3.4。
ICSS_EMAC 的接收和发送队列大小受限、由 L3存储器的总大小定义。 当发送长度选项设置为60000字节(ping -l 60000 ...)的 ping 请求时,该请求将使用允许的最大 MTU 大小分成多个片段。 根据网络协议层的数据处理速度、可能会发生两个问题:
- 请求片段以非常短的延迟发送、因此如果 网络协议层无法足够快地处理数据包、传入数据包突发会导致接收队列溢出。 在这种情况下、数据包将在接收端丢弃。 就我在 ICSS-EMAC 设计指南中所读出的内容而言、可以重新分配队列大小以增加 queue_4_size。 是这样吗?
- 如果请求已完全接收、则响应会在 发送队列中生成另一个 IP 片段的突发。 ICSS_EMAC 的发送函数随后返回-1以指示发送队列已满。 在这种情况下、数据包可能会被丢弃。 是否可以检查发送队列是否准备好处理另一个数据包、例如特定大小的数据包?
如果发送队列已满、NIMU_ICSS 只是丢弃数据包是否正确?
提前感谢。
此致
Stefan Pape