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.

[参考译文] AM3356:CPSW 驱动程序–巨型帧支持(MTU 大小>1500)

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1511287/am3356-cpsw-driver-jumbo-frame-support-mtu-size-1500

器件型号: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 内核源代码和各种论坛、我们确定了以下内容:

  1. 驱动程序定义最大数据包大小、如下所示:  
    #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字节。  
  2. 硬件功能(根据 TI 论坛):  
    CPSW 可以支持最多2016字节(或具有 VLAN 标签的2020字节)的帧。  
    参考: TI E2E 论坛帖子  
  3. 已尝试设置:  
    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—任何尝试都失败或被忽略。


问题:

  1. 对于 AM335x 硬件以及上面提到的支持 Linux 内核和驱动程序、我们的理解是否准确
  2. 是否有任何补丁、fork 或 TI SDK 版本 这包括对 AM335x CPSW 上的巨型帧的支持。如果支持、 支持的最大 MTU 大小是多少

请提供任何指导或参考。

谢谢、

Smrithy TR

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

    您好、

    做得非常好。 您对问题1的理解是正确的。

    对于问题2、没有补丁或任何计划支持任何大于当前正在使用的帧大小。

    此致、

    Schuyler