请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:AM3356 工具/软件:
您好、
我们正在努力实现这一点 巨型帧支持 在上 AM335x CPSW 以太网驱动程序 。
-
内核版本: 4.14.67
-
CPSW 版本: 1.12
尝试将 MTU 设置为1500以上时、会出现以下错误:
# ip link set eth0 mtu 1998
[15957.964059]
eth0: Invalid MTU 1998 requested, hw max 1500
调查结果:
通过查看 Linux 内核源代码和各种论坛、我们确定了以下内容:
- 驱动程序定义最大数据包大小、如下所示:
#define CPSW_MAX_PACKET_SIZE (VLAN_ETH_FRAME_LEN + ETH_FCS_LEN + CPSW_RX_VLAN_encap_hdr_size)
#define VLAN_ETH_FRAME_LEN 1518
#define ETH_FCS_LEN 4.
#define CPSW_RX_VLAN_encap_hdr_size 4.
→可使用1526字节。 - 硬件功能(根据 TI 论坛):
CPSW 可以支持最多2016字节(或具有 VLAN 标签的2020字节)的帧。
参考: TI E2E 论坛帖子 - 已尝试设置:
1.在 U-Boot 中设置 rx_packet_max=2016和 descs_pool_size=4096
2.尝试通过/etc/network/interfaces 和 IP 链路设置 eth0 MTU 1900来设置 MTU
MTU 保持不变、或命令失败
显示驱动程序当前执行的操作 未实施 ndo_change_mtu
在中net_device_ops
、防止从用户空间更改 MTU—任何尝试都失败或被忽略。
问题:
- 对于 AM335x 硬件以及上面提到的支持 Linux 内核和驱动程序、我们的理解是否准确 ?
- 是否有任何补丁、fork 或 TI SDK 版本 这包括对 AM335x CPSW 上的巨型帧的支持。如果支持、 支持的最大 MTU 大小是多少 ?
请提供任何指导或参考。
谢谢、
Smrithy TR