工具/软件:
您好、
目前、我们正在使用 TI-RTOS 和 NDK(基于 SDK 06.03.00.106)评估 AM3352、并确认有关以太网帧填充的预期行为。
【背景】
我们在 TI-RTOS + NDK (NDK 3.x) 下使用 CPSW 以太网驱动程序。 在我们的 TCP 通信测试中、当发送没有有效载荷的 FIN 数据包时、以太网帧长度小于所需的最小 60 字节。 当[FIN、ACK]数据包出现在 Wireshark 上时、使用的 PC 端应用程序recv()不会接收该数据包、这可能是因为帧长度不足而丢弃帧。
为了对此进行调查、我们检查了 SDK 06.03.00.106 源代码、尤其是eth_cpsw.c以下路径中的文件:
在EMACSend()或类似的 Tx 例程中、我们没有找到任何确保以太网帧填充的逻辑(例如,在 DMA 提交之前用零填充<60 字节的帧)。
【问题】
-
在 TI-RTOS + NDK (SDK 06.03.00.106) 下、CPSW 驱动程序或 NDK 栈内是否有任何自动机制为短于 60 字节的帧添加以太网填充 (0x00)?
-
如果不由应用程序或驱动程序手动处理、CPSW MAC 是否会按原样发送短帧而没有任何填充?
-
是否可以手动修改 CPSW 驱动程序以在时插入填充字节
pktLen < 60(例如,将以下逻辑插入到中)EMACSend()?
希望澄清预期的驱动程序行为、以及 TI 是否建议或支持在此环境中手动添加此类填充逻辑。
提前感谢您的支持。
此致、
Conor